Android 可以通过编程方式打开WiFi,但可以';不要关掉它

Android 可以通过编程方式打开WiFi,但可以';不要关掉它,android,debugging,Android,Debugging,因此,我搜索了如何在Android中通过编程切换wifi状态,我发现: case R.id.drawer_item1: Intent i; WifiManager wifiManager = (WifiManager) MainActivity.this.getApplicationContext().getSystemService(Context.WIFI_SERVICE

因此,我搜索了如何在Android中通过编程切换wifi状态,我发现:

                case R.id.drawer_item1:
                    Intent i;

                        WifiManager wifiManager = (WifiManager) MainActivity.this.getApplicationContext().getSystemService(Context.WIFI_SERVICE);

                        wifiManager.setWifiEnabled(true);


                    break;
                case R.id.drawer_item2:

                    wifiManager = (WifiManager) MainActivity.this.getApplicationContext().getSystemService(Context.WIFI_SERVICE);

                    wifiManager.setWifiEnabled(false);

                    break;
这实际上可以打开WiFi,但我无法关闭它

这是我的舱单:

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


有人有什么想法但可能会发生吗?谢谢。

这是因为在这两种情况下(开/关),您应该使用相同的对象(
WifiManager
reference),如下所示:

            case R.id.drawer_item1:
                wifiManager.setWifiEnabled(true);
                break;
            case R.id.drawer_item2:
                wifiManager.setWifiEnabled(false);
                break;
并将对象定义为全局对象:

 WifiManager wifiManager = (WifiManager) MainActivity.this.getApplicationContext().getSystemService(Context.WIFI_SERVICE);

尝试使用相同的wifiManager实例打开和关闭。