在Marshmallow中以编程方式断开WiFi网络

3
 Disconnect from a wifi network programmatically in Marshmallow 

无法在Marshmallow中以编程方式断开与wifi网络的连接,找不到任何解决方案。如果有任何解决方案,将会是巨大的帮助。谢谢。

1个回答

1

UPDATE

WifiManager wm = (WifiManager) getSystemService(WIFI_SERVICE);
    wm.disconnect();

在 Android 6.0 及以上的设备中,还需在 Manifest 文件和运行时设置权限以更改 WiFi 状态。

Manifest.xml 中操作。

<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

检查运行时权限:
if (ActivityCompat.checkSelfPermission(SmsOtpCheck.this, Manifest.permission.CHANGE_WIFI_STATE) != PackageManager.PERMISSION_GRANTED)
        ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.CHANGE_WIFI_STATE}, CODE);

批准或拒绝权限后:

@Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        switch (requestCode) {
            case CODE:
                if (grantResults[0] == PackageManager.PERMISSION_GRANTED)
                    //PERMISSION GRANTED
                else
                    Toast.makeText(this, "Permission not granted", Toast.LENGTH_SHORT).show();
        }
    }

不想关闭WiFi,只是想从特定的网络断开连接。 - Spartak Team
在Marshmallow中,即使在运行时授予权限并使用removNetwork(networkId),也无法正常工作。 - Spartak Team
一次只能连接一个wifi网络。您没有选择特定wifi网络并断开连接的选项。 - Geet Choubey
如果你所说的“断开连接”是指从已保存的wifi列表中删除该wifi配置,那么这个问题本身就是错误的。 - Geet Choubey
每当我尝试连接到其他网络时,我的应用程序就会卡住,并显示以下问题:“Failed to chmod(/sdcard/appName):android.system.ErrnoException: chmod failed: EPERM (Operation not permitted)”。 - Spartak Team
显示剩余4条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接