Android代码创建热点申请权限失败
稚元君 2017-12-28 03:10:42 7.0怎么申请android.permission.WRITE_SETTINGS,android.permission.WRITE_SECURE_SETTINGS这两个权限
开发背景:定制的Android系统,只支持7.0以上,root过,插线联网
新项目公司要求在定制的系统上创建一个热点给用户使用,贴出创建热点的代码↓↓↓
public boolean createWifi(String ssid, String psw) {
if (wifiManager.isWifiEnabled()) {
//WIFI与热点不能共存,如果WIFI是活动的,则关闭
wifiManager.setWifiEnabled(false);
}
try {
WifiConfiguration configuration = new WifiConfiguration();
//设置WIFI用户名
configuration.SSID = ssid;
//设置WIFI密码
configuration.preSharedKey = psw;
//反射调用设置热点
Method method = wifiManager.getClass().getMethod("setWifiApEnabled", WifiConfiguration.class, Boolean.TYPE);
return (boolean) method.invoke(wifiManager, configuration, true);
} catch (NoSuchMethodException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
Logger.e("↓↓↓invoke↓↓↓");
e.getTargetException().printStackTrace();
}
return false;
}
然后手动开了WRITE_SECURE_SETTINGS权限之后抛出的异常
12-28 14:50:46.879 10289-10289/com.aands.audio W/System.err: java.lang.SecurityException: Permission denial: writing to settings requires:android.permission.WRITE_SECURE_SETTINGS
12-28 14:50:46.879 10289-10289/com.aands.audio W/System.err: at android.os.Parcel.readException(Parcel.java:1684)
12-28 14:50:46.880 10289-10289/com.aands.audio W/System.err: at android.os.Parcel.readException(Parcel.java:1637)
12-28 14:50:46.880 10289-10289/com.aands.audio W/System.err: at android.net.wifi.IWifiManager$Stub$Proxy.setWifiApEnabled(IWifiManager.java:1514)
12-28 14:50:46.880 10289-10289/com.aands.audio W/System.err: at android.net.wifi.WifiManager.setWifiApEnabled(WifiManager.java:1547)
12-28 14:50:46.880 10289-10289/com.aands.audio W/System.err: at java.lang.reflect.Method.invoke(Native Method)
12-28 14:50:46.880 10289-10289/com.aands.audio W/System.err: at com.aands.audio.utils.HotspotManager.createWifi(HotspotManager.java:64)
12-28 14:50:46.880 10289-10289/com.aands.audio W/System.err: at com.aands.audio.activity.MainActivity.doSomething(MainActivity.java:305)
12-28 14:50:46.880 10289-10289/com.aands.audio W/System.err: at java.lang.reflect.Method.invoke(Native Method)
12-28 14:50:46.880 10289-10289/com.aands.audio W/System.err: at kr.co.namee.permissiongen.PermissionGen.executeMethod(PermissionGen.java:105)
12-28 14:50:46.880 10289-10289/com.aands.audio W/System.err: at kr.co.namee.permissiongen.PermissionGen.doExecuteSuccess(PermissionGen.java:91)
12-28 14:50:46.880 10289-10289/com.aands.audio W/System.err: at kr.co.namee.permissiongen.PermissionGen.requestPermissions(PermissionGen.java:82)
12-28 14:50:46.880 10289-10289/com.aands.audio W/System.err: at kr.co.namee.permissiongen.PermissionGen.request(PermissionGen.java:47)
12-28 14:50:46.880 10289-10289/com.aands.audio W/System.err: at com.aands.audio.activity.MainActivity.requsetPermission(MainActivity.java:233)
12-28 14:50:46.880 10289-10289/com.aands.audio W/System.err: at com.aands.audio.activity.MainActivity.access$000(MainActivity.java:53)
12-28 14:50:46.880 10289-10289/com.aands.audio W/System.err: at com.aands.audio.activity.MainActivity$1.onClick(MainActivity.java:82)
12-28 14:50:46.880 10289-10289/com.aands.audio W/System.err: at android.view.View.performClick(View.java:5637)
12-28 14:50:46.880 10289-10289/com.aands.audio W/System.err: at android.view.View$PerformClick.run(View.java:22445)
12-28 14:50:46.880 10289-10289/com.aands.audio W/System.err: at android.os.Handler.handleCallback(Handler.java:755)
12-28 14:50:46.880 10289-10289/com.aands.audio W/System.err: at android.os.Handler.dispatchMessage(Handler.java:95)
12-28 14:50:46.880 10289-10289/com.aands.audio W/System.err: at android.os.Looper.loop(Looper.java:154)
12-28 14:50:46.881 10289-10289/com.aands.audio W/System.err: at android.app.ActivityThread.main(ActivityThread.java:6121)
12-28 14:50:46.881 10289-10289/com.aands.audio W/System.err: at java.lang.reflect.Method.invoke(Native Method)
12-28 14:50:46.881 10289-10289/com.aands.audio W/System.err: at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:905)
12-28 14:50:46.881 10289-10289/com.aands.audio W/System.err: at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:795)
这个两个权限的问题要怎么解决?还有就是android.permission.WRITE_SETTINGS能不能自动开启