1. 程式人生 > >當Android targetSdkVersion小於23時如何檢查許可權

當Android targetSdkVersion小於23時如何檢查許可權

問題:

在Android M(API 23)及更高版本機器上執行targetSdkVersion < 23的應用時,當呼叫checkSelfPermission,返回值始終為PERMISSION_GRANTED,即使使用者關閉了該許可權,返回值還是PERMISSION_GRANTED。

解決辦法:

1、獲取應用的 targetSdkVersion 值

PackageInfo info = mContext.getPackageManager().getPackageInfo(mContext.getPackageName(),0);

targetSdkVersion = info.applicationInfo.targetSdkVersion;

2、當targetSdkVersion >= 23時,用mContext.checkSelfPermission檢查許可權;

當targetSdkVersion < 23時,用PermissionChecker.checkSelfPermission檢查許可權

PermissionChecker.checkSelfPermission(mContext,permission)

注意:要想正常使用PermissionChecker.checkSelfPermission方法,必需依賴support v4包中的:support-core-utils-25.1.0和support-compat-25.1.0,版本號25.1.0及以上都可以,25.1.0以下會出現Do not find class AppOpsManagerCompat23的錯誤。