Android 无法禁用 Wifi 热点

问题描述

如果用户启用了 Wifi 热点,我想禁用它。检测热点是否启用没有问题,但我无法禁用它...

我试过这个代码

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

    if (wifiManager.isWifiEnabled()) {
        wifiManager.setWifiEnabled(false);
    }

    WifiConfiguration apConfig = null;
    Method method = null;
    try {
        method = wifiManager.getClass().getmethod("setWifiApEnabled",WifiConfiguration.class,Boolean.TYPE);
    } catch (NoSuchMethodException e) {
        e.printstacktrace();
    }
    try {
        method.invoke(wifiManager,apConfig,false);
    } catch (illegalaccessexception e) {
        e.printstacktrace();
    } catch (InvocationTargetException e) {
        e.printstacktrace();
    }

我没有遇到任何异常。但什么也没有发生。 我也试过这个代码

WifiManager wifiManager = (WifiManager) getApplicationContext().getSystemService(Context.WIFI_SERVICE);
    wifiManager.startLocalOnlyHotspot(new WifiManager.LocalOnlyHotspotCallback() {

        @Override
        public void onStarted(WifiManager.LocalOnlyHotspotReservation reservation) {
            super.onStarted(reservation);
            hotspotReservation = reservation;
            currentConfig = hotspotReservation.getWifiConfiguration();

        }

        @Override
        public void onStopped() {
            super.onStopped();
            Log.v("DANG","Local Hotspot Stopped");
        }

        @Override
        public void onFailed(int reason) {
            super.onFailed(reason);
            Log.v("DANG","Local Hotspot Failed to start");
        }
    },new Handler());

这是有效的,但我只能在启动时禁用热点。

hotspotReservation.close();

是否可以在不启动的情况下禁用热点?问题还在于,如果用户启用了热点,我将无法启用它。然后我遇到了 onFailed()

在 Android 11、Android 9 和 Android 8 上测试

权限:

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />

该应用程序还可以访问系统设置。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)