问题描述
如果用户启用了 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 (将#修改为@)