如何以编程方式关闭Android设备上的WiFi?

J.O*_*sen 94 android

按下"关闭屏幕"按钮后,我需要关闭WiFi一段时间.我的平板电脑需要这个应用程序,因为有时我只是忘记关闭WiFi,这会非常快地释放电池.它的寿命是没有WiFi的10倍以上.是否有任何解决方案可用作.apk?我可以在屏幕关闭时间和5分钟后跟踪吗?我可以在Android设备上以编程方式关闭WiFi吗?怎么样?

J. *_*aes 217

您需要在清单文件中具有以下权限:

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission>
Run Code Online (Sandbox Code Playgroud)

然后,您可以在活动类中使用以下内容:

WifiManager wifiManager = (WifiManager) this.getApplicationContext().getSystemService(Context.WIFI_SERVICE); 
wifiManager.setWifiEnabled(true);
wifiManager.setWifiEnabled(false);
Run Code Online (Sandbox Code Playgroud)

使用以下内容检查是否已启用

boolean wifiEnabled = wifiManager.isWifiEnabled()
Run Code Online (Sandbox Code Playgroud)

你会在这个网站上找到关于这个主题的很好的教程.

  • 为什么需要唤醒锁定呢? (11认同)
  • 似乎只需要`CHANGE_WIFI_STATE`而'ACCESS_WIFI_STATE`不是. (3认同)
  • 请注意,这在 Android 10 中不再有效。您需要在那里使用“Settings.Panel.ACTION_WIFI”。 (3认同)
  • 我假设额外的权限只是直接从他提供的链接复制代码的结果,但即便如此,UPDATE_DEVICE_STATS仅为系统应用程序保留,应用程序甚至不会使用该权限进行编译. (2认同)
  • 从 Android 10(Q) 开始,应用程序不允许启用/禁用 Wi-Fi。因此,每当我们从 android 10 或更高版本执行 wifiManager.setWifiEnabled(true) 时,它都不允许启用/禁用 wifi。 (2认同)