Android WifiManager 不是 enabling/disabling WiFi 状态

Android WifiManager not enabling/disabling WiFi state

我有一个移动应用程序,允许用户单击按钮 enable/disable WiFi。

但是我今天注意到我的应用程序不再能够更改 WiFi 状态。它从几周前开始工作。我试着调试它,但下面的方法总是 returns false.

boolean result = wifiManager.setWifiEnabled(true);

我正在三星 Galaxy Note 9 和 Android 10 上进行测试。

当目标 Android 10 或更高时,此 API 是 no longer supported

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 fail and return false. If apps are targeting an older SDK (Build.VERSION_CODES.P or below), they can continue to use this API.

相反,您应该使用 Settings.Panel API 来展示一个系统 UI 允许用户启用或禁用 Wi-Fi。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
  startActivity(Intent(Settings.Panel.ACTION_INTERNET_CONNECTIVITY))
}