Включение Wi-Fi с помощью WifiManager перестает работать на Android 10 - PullRequest
2 голосов
/ 24 сентября 2019

У меня есть следующий код, который хорошо работал до Android 10. Но он не может включить Wi-Fi на устройствах Android 10.

WifiManager wifiMgr = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
boolean res = wifiMgr.setWifiEnabled(true);
//res value is set to false above because setWifiEnabled returns false on Android 10

Ниже приведены мои разрешения в AndroidManifest.xml

<uses-permission android:name=\"android.permission.ACCESS_WIFI_STATE\"/>
<uses-permission android:name=\"android.permission.CHANGE_WIFI_STATE\"/>
<uses-permission android:name=\"android.permission.CHANGE_NETWORK_STATE\"/>
<uses-permission android:name=\"android.permission.INTERNET\"/>
<uses-permission android:name=\"android.permission.ACCESS_NETWORK_STATE\"/>

Я даже динамически запрашиваю эти разрешения.Но это, похоже, тоже не помогает.

Вопрос:
Что-нибудь изменилось на Android 10?Должен ли я сделать что-то еще для программного включения Wi-Fi из моего приложения?

1 Ответ

3 голосов
/ 24 сентября 2019

public boolean setWifiEnabled (boolean enabled)

Этот метод устарел на уровне API 29. Начиная с Build.VERSION_CODES # Q, приложениям не разрешено включать / отключатьWi-Fi.

Примечание по совместимости: Для приложений, нацеленных на Build.VERSION_CODES.Q или выше, этот API всегда будет возвращать false и не будет иметь никакого эффекта.

Если приложения нацелены на более старый SDK (Build.VERSION_CODES.P или ниже), они могут продолжать использовать этот API.

Согласно документации, Apps не сможет больше превращать Wi-Fi OFF/ON из Android-10 API level 29 [ Пока Google не предоставит альтернативное решение ].

Для получения дополнительной информации см. официальную документацию .

И есть проблема 128554616 имеетбыл создан в Google issuetracker об этом.

...