第三方apk打开热点
作者:互联网
android:sharedUserId="andorid.uid.system"
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<!--You either need MANAGE_USERS or CREATE_USERS permission to: query user-->
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
<uses-permission android:name="android.permission.MANAGE_USERS" />
wifiManager = (WifiManager)getApplicationContext().getSystemService(WIFI_SERVICE);
setWifiApEnabled(true);
public void setWifiApEnabled(boolean enabled) {
Handler handler = new Handler(getMainLooper());
if (enabled) { // disable WiFi in any case
wifiManager.setWifiEnabled(false);
}
try {
ResultReceiver mResultReceiver = new ResultReceiver(handler);
WifiConfiguration apConfig = new WifiConfiguration();
apConfig.SSID = "meigsmart";
apConfig.preSharedKey = "12345678";
apConfig.allowedKeyManagement.set(4);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) {
Method mMethod = wifiManager.getClass().getMethod("setWifiApConfiguration", WifiConfiguration.class);
mMethod.invoke(wifiManager,apConfig);
ConnectivityManager connectivityManager = (ConnectivityManager)MainActivity.this.getSystemService(Context.CONNECTIVITY_SERVICE);
Field mField = connectivityManager.getClass().getDeclaredField("TETHERING_WIFI");
mField.setAccessible(true);
//WriteToLog.writeToLog("field.setAccessible ");
int mTETHERING_WIFI = (int)mField.get(connectivityManager);
Log.v("mTETHERING_WIFI:",String.valueOf(mTETHERING_WIFI));
Field iConnMgrField = connectivityManager.getClass().getDeclaredField("mService");
iConnMgrField.setAccessible(true);
Object iConnMgr = iConnMgrField.get(connectivityManager);
Class<?> iConnMgrClass = Class.forName(iConnMgr.getClass().getName());
Method mStartTethering1 = iConnMgrClass.getMethod("startTethering", int.class,ResultReceiver.class,boolean.class);
mStartTethering1.setAccessible(true);
mStartTethering1.invoke(iConnMgr, mTETHERING_WIFI,new ResultReceiver(handler){
@Override
protected void onReceiveResult(int resultCode, Bundle resultData) {
super.onReceiveResult(resultCode, resultData);
}
},true);
} else {
Method method = wifiManager.getClass().getMethod(
"setWifiApEnabled", WifiConfiguration.class, Boolean.TYPE);
method.invoke(wifiManager, apConfig, enabled);
}
} catch (NoSuchMethodException e) {
e.printStackTrace();
//WriteToLog.writeToLog("setWifiApEnabled Exception1: " + e.getMessage());
} catch (InvocationTargetException e) {
e.printStackTrace();
//WriteToLog.writeToLog("setWifiApEnabled Exception2: " + e.getMessage());
} catch (IllegalAccessException e) {
e.printStackTrace();
//WriteToLog.writeToLog("setWifiApEnabled Exception3: " + e.getMessage());
} catch (ClassNotFoundException e) {
e.printStackTrace();
//WriteToLog.writeToLog("setWifiApEnabled Exception4: " + e.getMessage());
} catch (NoSuchFieldException e) {
e.printStackTrace();
//WriteToLog.writeToLog("setWifiApEnabled Exception5: " + e.getMessage());
}
}
标签:writeToLog,WIFI,apConfig,apk,wifiManager,WriteToLog,热点,第三方,setWifiApEnabled 来源: https://blog.csdn.net/weixin_44008788/article/details/117388816