Android9.0给系统应用添加默认权限的方法

软件平台:Android9.0

硬件平台:Mtk6771

        近来做产品需求开发,发现首次起机或者恢复出厂设置之后,app首次启动的时候,会触发权限申请的提示弹窗,用户可以选择授权或者拒绝,会给用户造成不良体验,于是琢磨了一套Framework层默认给app授权的机制,具体操作如下:

diff --git a/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java b/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java
index 1c40347f..a1b37a1a 100644
--- a/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java
+++ b/services/core/java/com/android/server/pm/permission/DefaultPermissionGrantPolicy.java
@@ -359,6 +359,25 @@ public final class DefaultPermissionGrantPolicy {
         String[] calendarSyncAdapterPackages = (syncAdapterPackagesProvider != null) ?
                 syncAdapterPackagesProvider.getPackages(CalendarContract.AUTHORITY, userId) : null;
 
+        // IflyIME
+        final String iflyimePackageName = "com.iflytek.inputmethod";
+        PackageParser.Package iflyimePackage = getSystemPackage(iflyimePackageName);
+        if (iflyimePackage != null
+                && doesPackageSupportRuntimePermissions(iflyimePackage)) {
+            grantRuntimePermissions(iflyimePackage, STORAGE_PERMISSIONS, true, userId);
+            grantRuntimePermissions(iflyimePackage, MICROPHONE_PERMISSIONS, true, userId);
+        }
+
+        // IflyOCR
+        final String iflytekOcrPackageName = "com.iflytek.ocr";
+        PackageParser.Package iflyOcrPackage = getSystemPackage(iflytekOcrPackageName);
+        if (iflyOcrPackage != null
+                && doesPackageSupportRuntimePermissions(iflyOcrPackage)) {
+            grantRuntimePermissions(iflyOcrPackage, STORAGE_PERMISSIONS, true, userId);
+            grantRuntimePermissions(iflyOcrPackage, CAMERA_PERMISSIONS, true, userId);
+            grantRuntimePermissions(iflyOcrPackage, PHONE_PERMISSIONS, true, userId);
+        }
+

         // Installer
         final String installerPackageName = mServiceInternal.getKnownPackageName(
                 PackageManagerInternal.PACKAGE_INSTALLER, userId);

做如上修改,即可给相应的app添加默认授权~

MARK 一下。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值