android 7.0系统怎么让应用开机就自动设置访问权限。

现在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;
+        }
+    }
+}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值