у этого есть много подобных вопросов (google для: "не обнаружен интернет-доступ. не будет автоматически повторно подключаться".: или: соединение с Wi-Fi силой wili программно).
Я думал, что у меня был ответ здесь, но он прекратил работу после установки обновлений 6.0.1 (у меня есть 1 патчи безопасности).
похоже, что это изменение .
У меня есть некоторая нексуса 2013 2013 года с 6.0.1, которая запускает приложение типа киоска и хочет программно подключиться к конкретной беспроводной сети, у которой нет подключения к Интернету. каждая таблетка имеет уникальный статический IP-адрес формы: 192.168.0.xx. Я использую обычные конструкторы сокетов java и проверяю, работает ли интерфейс: NetworkInterface.getNetworkInterfaces().
выполнено ручное подключение. иногда появляется диалоговое окно, в котором спрашивается, хотите ли вы всегда подключаться. я всегда проверяю да.
но Wi-Fi говорит: "Неизвестный интернет-доступ не будет автоматически подключаться" после питания маршрутизатора.
выполнение отключения, включения, повторного подключения не работает. в лучшем случае он получает: ip6-localhost/:: 1.
Кому-нибудь удавалось использовать объект запроса или bindProcessToNetwork?
edit: .
edit: проблема, похоже, связана с: CAPTIVE_PORTAL_DETECTION_ENABLED - эта строка, по-видимому, определена в источнике:
public static final String
CAPTIVE_PORTAL_DETECTION_ENABLED = "captive_portal_detection_enabled";
...
MOVED_TO_GLOBAL.add(Settings.Global.CAPTIVE_PORTAL_DETECTION_ENABLED);
но бросает "android.provider.Settings $SettingNotFoundException: captive_portal_detection_enabled при явном использовании и не отображается в студии android.
также, если список настроек global не содержит константу.
edit Выполнение настроек оболочки adb put global captive_portal_detection_enabled 0 похоже на работу, но это невозможно сделать в поле, когда маршрутизатор запускает питание. это значение, по-видимому, сохраняется, когда питание планшета. и теперь это значение отображается в списке настроек global. также, используя необработанную строку: Settings.Global.getInt(getContentResolver(), "captive_portal_detection_enabled" ); теперь возвращает 0.
edit: похоже, что для его установки требуется: android.permission.WRITE_SECURE_SETTINGS, но, конечно, это не удается, если вы помещаете в манифест, так как мы не являемся системным приложением.
edit: пытается выполнить команду командной строки throw: java.lang.SecurityException, поэтому похоже, что вам нужно выдать команду из adb: (
спасибо