在开发之中我们可能需要实现关闭个人热点的功能 ,下面的代码是原来项目中的一个功能,但是在高版本的android中不起作用,查找了资料之后将我关闭个人热点的方法分享给大家,下面的代码大家可以直接复制使用,但是记得申请相关的权限哦(如果不知道申请那些可以看一下warn日志一般都会有提示的).想了解更多之前低版本的android是如何关闭个人热点的大家可以google一下,网上也有很多解决方案
/**
* 8.0 之后用于关闭个人热点,需要申请下面的权限
* <uses-permission android:name="android.permission.WRITE_SETTINGS"></uses-permission>
* */
@TargetApi(Build.VERSION_CODES.M)
public void stopHotPoint(Context context) {
try {
ConnectivityManager manager = (ConnectivityManager) context.getApplicationContext().getSystemService(ConnectivityManager.class);
Method method = manager.getClass().getDeclaredMethod("stopTethering", int.class);
if (method == null) {
} else {
method.invoke(manager, 0);
}
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (Exception e){
e.printStackTrace();
}
}
public void closeWifiAp(Context context) {
try {
WifiManager mWifiManager = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
Method method2 = mWifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, boolean.class);
method2.invoke(mWifiManager, null, false);
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
}
stopHotPoint(context);
}