我想动态添加自定义权限,因为我想更改代码中的文本。 在清单中,我定义了权限树:
<permission-tree android:name="com.example.permission" >
</permission-tree>
在片段中,我动态添加权限:
val pm: PackageManager = requireactivity().packageManager
val permission: PermissionInfo = PermissionInfo()
permission.name = "com.example.permission.TEST"
permission.labelRes = R.string.app_name
permission.descriptionRes = R.string.app_name
permission.protectionLevel = PermissionInfo.PROTECTION_DANGEROUS
pm.addPermission(permission)
try
{
val info : PackageInfo = requireactivity().packageManager.getPackageInfo("com.example",PackageManager.GET_PERMISSIONS)
val permissions = info.requestedPermissions
requestPermissions( permissions,PERMISSIONS_REQUEST )
}
catch (e: PackageManager.NameNotFoundException)
{
e.printStackTrace()
}
在try块中,我看到添加了我的自定义权限,但是尽管我将保护级别设置为“ PROTECTION_DANGEROUS”,但没有调用该对话框。也许问题是PermissionInfo中的保护级别设置器方法已被弃用? 能为我提供有关如何动态添加运行时权限和请求的建议,或指出我做错了什么地方。
预先感谢, 盔甲