Open haruue opened 5 years ago
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.myapp" >
<permission
android:name="com.example.myapp.permission.DEADLY_ACTIVITY"
android:label="@string/permlab_deadlyActivity"
android:description="@string/permdesc_deadlyActivity"
android:permissionGroup="android.permission-group.COST_MONEY"
android:protectionLevel="dangerous" />
...
设备厂商: 小米
设备型号: MI MIX 2, MI 6
设备 ROM: MIUI 10 9.8.22 Beta
Android 版本:9, 10
涉及的 Android API:
Activity.requestPermissions()
预期表现:
dangerous
的权限, 其它应用也能通过requestPermissions()
来请求此权限,此时的行为应该与请求系统权限时的行为一致。实际表现:
第三方应用能够定义保护级别为
dangerous
的权限, 但是当其它应用尝试请求时,「权限管理」应用发生了崩溃。即使在关闭 「MIUI 优化」的情况下也是如此。这个问题实际上是「权限管理」的一个 BUG,详细原因和崩溃时堆栈追踪可参考这里的分析。当开启 「MIUI 优化」时(此选项默认启用,并且只能在开发者选项中关闭),在「应用详情」->「权限」里看不到申请的自定义权限,并且即使使用
Settings.ACTION_APPLICATION_DETAILS_SETTINGS
也无法跳转到原生的权限设置界面,这使得用户无法手动授予权限。总之,为了手动授予此权限,用户必须先关掉 「MIUI 优化」,然后到应用详情中手动授予相应的权限。
相关 logcat 日志:无
补充说明: