Пишу программное подключение к wifi устройству.Делаю через Broadcast Recessiver. Убил уже кучу времени в итоге добился стабильной работы на всех андроидах кроме 8. На 8 стандартный код не работает! Вот код самого подключения:
public void setWifiConnection1(View view){
WifiManager wifi = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
WifiConfiguration conf = new WifiConfiguration();
WifiInfo wifiInfo = wifiManager.getConnectionInfo();
conf.SSID = "\"NETWORK_NAME\"";
conf.preSharedKey = "\"PASSWORD\"";
int netId = wifi.addNetwork(conf);
if (netId == -1) {
netId = getExistingNetworkId(conf.SSID);
}
wifi.enableNetwork(netId, true);
wifi.reconnect();
}
private int getExistingNetworkId(String SSID) {
WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
List
Добавляю строчку wifi.disconnect(); Коннектиться только на 35 секунд.
wifi.disconnect();
wifi.enableNetwork(netId, true);
wifi.reconnect();
Вот весь код подключения с формой ввода
Буду очень благодарен за любые советы и подсказки как добиться стабильной работы на 8-ке!
Ответ
Восьмерка просто экономит батарею, если трафика никакого нету, то все логично. Можно сделать бесконечный поток, и в нем уже вызывать то, что необходимо, либо имплементься через Runnable и писать в run() то, что нужно для логики приложения
Комментариев нет:
Отправить комментарий