首页 > 解决方案 > Android WifiManager 未启用/禁用 WiFi 状态

问题描述

我有一个移动应用程序,允许用户通过单击按钮启用/禁用 WiFi。

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

boolean result = wifiManager.setWifiEnabled(true);

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

任何帮助将不胜感激...

谢谢

标签: androidandroid-wifiwifimanager

解决方案


针对 Android 10 或更高版本时不再支持此 API 。

从 Build.VERSION_CODES#Q 开始,不允许应用程序启用/禁用 Wi-Fi。兼容性说明:对于面向 Build.VERSION_CODES.Q 或更高版本的应用程序,此 API 将始终失败并返回 false。如果应用针对的是较旧的 SDK(Build.VERSION_CODES.P 或更低版本),它们可以继续使用此 API。

相反,您应该使用Settings.Panel API 来呈现允许用户启用或禁用 Wi-Fi 的系统 UI。

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

推荐阅读