我正在创建一个需要检查运行时权限的库。我的运行时权限运行良好,并且可以毫无问题地理解用例。
不过,我想确认使用我们库的开发人员已将权限添加到他们的 list 中。
该库是一个基于位置的库,开发人员可以在 list 中输入 ACCESS_FINE_LOCATION
或 ACCESS_COARSE_LOCATION
,我需要能够确定他们使用了哪些(或两者)在运行时。
我虽然使用包管理器来检查权限是可行的,但是这似乎总是失败:
PackageManager pm = getPackageManager();
int granted = pm.checkPermission(
Manifest.permission.ACCESS_COARSE_LOCATION,
getPackageName() );
if (granted == PackageManager.PERMISSION_GRANTED)
{
// Use coarse for runtime requests
}
// granted is always PackageManager.PERMISSION_DENIED
在 Android v23+ 中还有其他方法可以做到这一点吗?
最佳答案
即兴发挥,取回 PackageInfo
通过 PackageManager
and getPackageInfo(getPackageName(), PackageManager.GET_PERMISSIONS)
.然后,看the requestedPermissions
array在PackageInfo
对于所有 <uses-permission>
-请求权限。
关于android - 使用 Android 23+ 确定 list 中是否存在权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39401699/