Ade*_*erg 5 android wifimanager android-10.0
我有以下代码在 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
Run Code Online (Sandbox Code Playgroud)
以下是我的权限 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\"/>
Run Code Online (Sandbox Code Playgroud)
我什至动态请求这些权限。但这似乎也无济于事。
问:
Android 10 有什么变化吗?我应该做更多的事情来从我的应用程序以编程方式打开 wifi 吗?
public boolean setWifiEnabled(启用布尔值)
此方法在 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 中创建了一个问题 128554616issuetracker。
| 归档时间: |
|
| 查看次数: |
5727 次 |
| 最近记录: |