在開發之中我們可能需要實作關閉個人熱點的功能 ,下面的代碼是原來項目中的一個功能,但是在高版本的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);
}