在 Android 中,如果要使用系统限制的权限(比如 android.permission.WRITE_SECURE_SETTINGS),我们需要把程序安装到 /system/app/ 下
比如,我写了一个APK ,其中的主 Activity中用到以下代码:
。。。。
ContentResolver resolver = context.getContentResolver();
// 获得gps当前的状态,若为true表示打开, false 为关闭
boolean assisted_gps_enabled = Settings.Secure.isLocationProviderEnabled(resolver, LocationManager.GPS_PROVIDER);
// 如果关闭, 则打开
if(!assisted_gps_enabled)
Settings.Secure.setLocationProviderEnabled(resolver, LocationManager.GPS_PROVIDER, true);
。。。
然后在AndroidManifest.xml 中声明权限
这时,无论通过 adb push 还是 adb install 或者是 之间修改mk文件将apk集成进系统(当然指定到 /data/app下),运行apk是总会报
java.lang.SecurityException: Permission denial: writing to secure settings requires android.permission.WRITE_SECURE_SETTINGS
这个错误
这是因为android.permission.WRITE_SECURE_SETTINGS是系统限制的权限。所以apk需要是系统的apk (/system/app下才可以)。可以把apk 通过 adb push “你的apk” system/app 或者 修改mk文件将其编入system镜像