无法在某些设备上以编程方式启用Wifi

时间:2019-08-16 10:20:55

标签: java android

我有此代码:

WifiManager wifiManager = (WifiManager) this.getSystemService(Context.WIFI_SERVICE); 
wifiManager.setWifiEnabled(true);

此代码不能在任何设备上正常工作是否正确? 有什么方法可以达到目的?

2 个答案:

答案 0 :(得分:2)

docs

  

此方法在API级别29中已弃用。   从Build.VERSION_CODES#Q开始,不允许应用程序启用/禁用Wi-Fi。兼容性说明:对于面向Build.VERSION_CODES.Q或更高版本的应用程序,此API始终返回false,并且无效。如果应用程序针对较旧的SDK(Build.VERSION_CODES.P或更低版本),则可以继续使用此API。

还要确保您已请求权限Manifest.permission.CHANGE_WIFI_STATE

答案 1 :(得分:0)

只要应用清单具有以下权限,它就可以在任何设备上工作:

 <manifest>
     <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>
     <uses-permission android:name="android.permission.INTERNET"/>
     <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
 </manifest>