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?
发布于 2021-02-05 05:01:23
这是一种更简单的检测操作系统版本的方法:
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。
发布于 2020-04-18 13:25:18
在Android (Android10,API 29)中,您不能再以编程方式启用/禁用wifi了。使用设置面板切换wifi连接:
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*/ }
}
发布于 2020-04-18 13:30:06
Android限制了这一点,开发者不能以编程方式禁用wifi。您的应用程序将继续工作,如果您的targetSdkVersion <= 28可以禁用wifi。
https://stackoverflow.com/questions/58006340
复制相似问题