Я сталкиваюсь с очень странным поведением. Я включаю точку доступа Wi-Fi программно, используя следующую функцию
public static boolean onTethering(Context context) {
WifiManager wifimanager = (WifiManager) context.getApplicationContext().getSystemService(Context.WIFI_SERVICE);
WifiConfiguration wificonfiguration = null;
try {
// if WiFi is on, turn it off
if(isApOn(context)) {
if (wifimanager != null) {
wifimanager.setWifiEnabled(false);
}
}
Method method = wifimanager != null ? wifimanager.getClass().getMethod("startTethering", WifiConfiguration.class, boolean.class) : null;
// Method method = wifimanager.getClass().getDeclaredMethod("startTethering",int.class,boolean.class,callbackClass,Handler.class);
if (method != null) {
method.invoke(wifimanager, null, !isApOn(context));
}else{
return false;
}
return true;
}
catch (Exception e) {
e.printStackTrace();
}
return false;
}
Функция работает довольно хорошо в Android Lollipop, а также в Marshmallow. Но когда я установил свое приложение в Android 7.0, оно показывает очень странное поведение. Hotspot включен и, кажется, работает нормально, но когда я пытаюсь подключить свои устройства к точке доступа, она застревает в получении петли IP-адреса. Требуется очень много времени, чтобы подключиться к другому устройству Android, а иногда он полностью выходит из строя.
Я пытаюсь подключить NodeMCU к этой точке доступа.
Примечание Если я вручную отключаю Hotspot от настроек, устройства подключаются к нему мгновенно.
Есть что-то, чего мне не хватает?