2016-09-27 5 views
2

У меня есть приложение, которое я использую для подключения к сети Wi-Fi, у которой нет подключения к Интернету. Он отлично работает с версиями до Nougat. Поскольку несколько недель назад я обновил свой телефон до Нуги, я больше не могу подключиться к той же сети WiFi. Он коротко подключился и отключился, а затем вернулся к предыдущей сети, имеющей подключение к Интернету. Ниже приведен код, который отлично работал перед Нугой.Больше не может подключиться к сети Wi-Fi с Android Nougat

WifiManager manager = (WifiManager) activity.getSystemService(Context.WIFI_SERVICE); 
WifiConfiguration selectedConfig = new WifiConfiguration(); 
selectedConfig.SSID = ssid; 
selectedConfig.allowedKeyManagement.set(WifiConfiguration.KeyMgmt.NONE); 
manager.addNetwork(selectedConfig); 

List<WifiConfiguration> cofigs = manager.getConfiguredNetworks(); 
for(WifiConfiguration config : cofigs) 
{ 
    if(config.SSID != null && config.SSID.equals(selectedConfig.SSID)) 
    { 
     manager.disconnect(); 
     manager.enableNetwork(config.networkId, true); 
     break; 
    }   
} 

В прошлом настройка верно в manager.enableNetwork (config.networkId, правда), казалось, чтобы соединение оставаться в сети, которая не имеет подключения к Интернету. Однако, так как Нугат, похоже, это больше не работает.

Кто-нибудь знает, что происходит и как это работает?

Спасибо.

ответ

0

Boolean параметр из метода enableNetwork предназначен для блокировки других сетей. На самом деле, вы не можете сообщить устройству о подключении к определенной сети, единственное, что вы можете сделать, это заблокировать другие сети и таким образом, единственный способ подключения устройства - это тот, который вы не отключился (тот, у которого идентификатор по первому параметру).

Я бы порекомендовал вам попробовать и проверить, что возвращается из addNetwork, и проверить этот вопрос в google Google issue.

Если это не поможет решить вашу проблему, проверьте, сканируете ли вы где-то в другом месте. Если вы сканируете доступные сети, ваше устройство будет включать другие сети, поэтому остальные больше не будут отключены, и ваше устройство будет подключаться к тому, которое было в начале или в том, которое имеет более высокий приоритет.

Надеюсь, что это помогло