一、背景
当拿到很多个app的时候需要检测哪些app申明了哪些权限,这时就要根据包名来检测是否申明了某个权限。
二、代码实现
/**
* 根据app包名检测是否含有该权限
* @param context 上下文
* @param packageName 包名
* @param permission 权限
*/
fun hasPermission(context: Context, packageName: String, permission: String):Boolean {
if (Utils.isAppInstalled(packageName)) {
val packageManager: PackageManager = context.packageManager
try {
val packageInfo = packageManager.getPackageInfo(packageName, PackageManager.GET_PERMISSIONS)
val permissions = packageInfo.requestedPermissions
return permissions.contains(permission)
} catch (e: PackageManager.NameNotFoundException) {
e.printStackTrace()
}
}
return false
}