首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Android 29上启用禁用WiFi

在Android 29上启用禁用WiFi
EN

Stack Overflow用户
提问于 2019-09-19 07:57:50
回答 5查看 8.3K关注 0票数 8
代码语言:javascript
运行
复制
public boolean WifiManager.setWifiEnabled (boolean enabled)

这个方法在API级别29中被废弃了。从Build.VERSION_CODES#Q开始,不允许应用程序启用/禁用Wi。兼容性注意:对于以Build.VERSION_CODES.Q或更高版本为目标的应用程序,此API将始终返回false,并且不会产生任何影响。如果应用程序以较旧的SDK ( Build.VERSION_CODES.P或更低版本)为目标,它们可以继续使用此API。

我们如何在安卓29上禁用WiFi?

EN

回答 5

Stack Overflow用户

发布于 2021-02-05 05:01:23

这是一种更简单的检测操作系统版本的方法:

代码语言:javascript
运行
复制
if (Build.VERSION.SDK_INT<Build.VERSION_CODES.Q)
   wifiManager.setWifiEnabled(status);
else
{
   Intent panelIntent = new Intent(Settings.Panel.ACTION_WIFI);
   startActivityForResult(panelIntent,1);
}

基本上,如果OS版本小于Android,那么使用WifiManager类对象来启用/禁用Wi的使用;否则,使用隐式意图禁用Wi。

票数 3
EN

Stack Overflow用户

发布于 2020-04-18 13:25:18

Android (Android10,API 29)中,您不能再以编程方式启用/禁用wifi了。使用设置面板切换wifi连接:

代码语言:javascript
运行
复制
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
    val panelIntent = Intent(Settings.Panel.ACTION_INTERNET_CONNECTIVITY)
    startActivityForResult(panelIntent, 0)
} else {
    // add appropriate permissions to AndroidManifest file (see https://stackoverflow.com/questions/3930990/android-how-to-enable-disable-wifi-or-internet-connection-programmatically/61289575)
    (this.context?.getSystemService(Context.WIFI_SERVICE) as? WifiManager)?.apply { isWifiEnabled = true /*or false*/ }
}
票数 2
EN

Stack Overflow用户

发布于 2020-04-18 13:30:06

Android限制了这一点,开发者不能以编程方式禁用wifi。您的应用程序将继续工作,如果您的targetSdkVersion <= 28可以禁用wifi。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58006340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档