我有以下代码,在 Android 10 之前运行良好。但它无法在 Android 10 设备中打开 wifi。
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 有什么变化吗?我应该做更多的事情来从我的应用程序中以编程方式打开 wifi 吗?
最佳答案
public boolean setWifiEnabled( bool 值启用)
This method was deprecated in API level 29. Starting with Build.VERSION_CODES#Q, applications are not allowed to enable/disable Wi-Fi.
Compatibility Note: For applications targeting Build.VERSION_CODES.Q or above, this API will always return false and will have no effect.
If apps are targeting an older SDK ( Build.VERSION_CODES.P or below), they can continue to use this API.
根据文档,Apps
将无法从 Android-10 API level 29
开始 Wi-Fi OFF/ON
[ 直到谷歌提供替代解决方案]。
有关详细信息,请参阅 official documentation .
还有一个 issue 128554616已在 google issuetracker
中创建了关于此的内容。
关于android - 使用 WifiManager 打开 wifi 停止在 Android 10 上工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58075596/