android 7.0系统怎么让应用开机就自动设置访问权限。
2017-12-08 15:46
1041 查看
现在7.0系统的权限,对于系统默认的应用都要手动去授权,有点烦。体验也不好。目前改了一下可以指定哪个应用不要手动去授权。
说下我的写法,只是粗略的写了下,肯定有很多优化空间。
\packages\apps\PackageInstaller\AndroidManifest.xml
添加一个广播 。我这个广播是第一次开机启动launcher就会发送
+
+
+ <receiver
+ android:name=".OpenPermissionReceiver"
+ android:enabled="true"
+ android:exported="true">
+
+ <intent-filter>
+ <action android:name="intent.action.vlauncher" />
+ </intent-filter>
+
+ </receiver>
OpenPermissionReceiver.java的写法
+package com.android.packageinstaller;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.net.Uri;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import com.android.packageinstaller.permission.model.AppPermissions;
+import com.android.packageinstaller.permission.model.AppPermissionGroup;
+
+public class OpenPermissionReceiver extends BroadcastReceiver {
+
+ private static final String LOG_TAG = "OpenPermissionReceiver";
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ if ("intent.action.vlauncher".equals(intent.getAction())) {
+ +
+ String packageName = "com.xx.xxx";//这里填写包名就可以了
+ PackageInfo packageInfo = getPackageInfo(context, packageName);
+ AppPermissions mAppPermissions = new AppPermissions(context, packageInfo, null, true, new Runnable() {
+ @Override
+ public void run() {
+ // getActivity().finish();
+ }
+ });
+
+
+
+ for (AppPermissionGroup group : mAppPermissions.getPermissionGroups()) {
+ if(!group.areRuntimePermissionsGranted())
+ group.grantRuntimePermissions(false);
+ }
+ }
+ }
+
+
+
+ private static PackageInfo getPackageInfo(Context context, String packageName) {
+ try {
+ return context.getPackageManager().getPackageInfo(packageName, PackageManager.GET_PERMISSIONS);
+ } catch (PackageManager.NameNotFoundException e) {
+ //android.util.Log.i(LOG_TAG, "No package:");
+ return null;
+ }
+ }
+}
说下我的写法,只是粗略的写了下,肯定有很多优化空间。
\packages\apps\PackageInstaller\AndroidManifest.xml
添加一个广播 。我这个广播是第一次开机启动launcher就会发送
+
+
+ <receiver
+ android:name=".OpenPermissionReceiver"
+ android:enabled="true"
+ android:exported="true">
+
+ <intent-filter>
+ <action android:name="intent.action.vlauncher" />
+ </intent-filter>
+
+ </receiver>
OpenPermissionReceiver.java的写法
+package com.android.packageinstaller;
+
+import android.content.BroadcastReceiver;
+import android.content.Context;
+import android.content.Intent;
+import android.content.SharedPreferences;
+import android.net.Uri;
+import android.content.pm.ApplicationInfo;
+import android.content.pm.PackageInfo;
+import android.content.pm.PackageManager;
+import com.android.packageinstaller.permission.model.AppPermissions;
+import com.android.packageinstaller.permission.model.AppPermissionGroup;
+
+public class OpenPermissionReceiver extends BroadcastReceiver {
+
+ private static final String LOG_TAG = "OpenPermissionReceiver";
+
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ if ("intent.action.vlauncher".equals(intent.getAction())) {
+ +
+ String packageName = "com.xx.xxx";//这里填写包名就可以了
+ PackageInfo packageInfo = getPackageInfo(context, packageName);
+ AppPermissions mAppPermissions = new AppPermissions(context, packageInfo, null, true, new Runnable() {
+ @Override
+ public void run() {
+ // getActivity().finish();
+ }
+ });
+
+
+
+ for (AppPermissionGroup group : mAppPermissions.getPermissionGroups()) {
+ if(!group.areRuntimePermissionsGranted())
+ group.grantRuntimePermissions(false);
+ }
+ }
+ }
+
+
+
+ private static PackageInfo getPackageInfo(Context context, String packageName) {
+ try {
+ return context.getPackageManager().getPackageInfo(packageName, PackageManager.GET_PERMISSIONS);
+ } catch (PackageManager.NameNotFoundException e) {
+ //android.util.Log.i(LOG_TAG, "No package:");
+ return null;
+ }
+ }
+}
相关文章推荐
- Android设置系统开机自动永不休眠
- android 当系统存在多个Launcher时,如何设置开机自动进入默认的Launcher?
- Win8.1开机自动联网效果怎么实现 Win8.1系统自动宽带连接设置教程图解
- android应用怎么获取系统权限
- Android设置系统开机自动永不休眠
- android 当系统存在多个Launcher时,如何设置开机自动进入默认的Launcher2
- android 当系统存在多个Launcher时,如何设置开机自动进入默认的Launcher?
- Android系统:当系统存在多个Launcher时,如何设置开机自动进入默认的Launcher?
- android 当系统存在多个Launcher时,如何设置开机自动进入默认的Launcher2
- Android应用获取通知栏权限是否开启--以及跳转到系统设置界面--解决方案
- Android设置系统开机自动永不休眠
- Android应用获取通知栏权限是否开启--以及跳转到系统设置界面--解决方案
- Android 自己的应用中,跳转到该应用的详细设置页面,设置权限页面--以及跳转到系统的设置页面
- Android 当系统存在多个Launcher时,如何设置开机自动进入默认的Launcher?
- android 系统存在多个Launcher时,设置开机自动进入默认的Launcher
- android 当系统存在多个Launcher时,如何设置开机自动进入默认的Launcher?
- Android应用获取通知栏权限是否开启--以及跳转到系统设置界面--解决方案
- android应用内获取系统权限,来设置一些系统开关
- Android设置系统开机自动永不休眠
- 安装程序制作之网站系统安装过程中给系统中应用到的数据库文件设置访问权限