權(quán)限檢測生效條件:
- targetSdkVersion 以及 compileSdkVersion 升級到 23 及以上
- 運行 Android 系統(tǒng) 6.0 及以上
三種檢測權(quán)限寫法:
public static boolean checkPermission1(Context context, String[] permissions) {
PackageManager packageManager = context.getPackageManager();
String packageName = context.getPackageName();
for (String permission : permissions) {
int per = packageManager.checkPermission(permission, packageName);
if (PackageManager.PERMISSION_DENIED == per) {
Log.w(TAG, "required permission not granted . permission = " + permission);
return false;
}
}
return true;
}
public static boolean checkPermission2(Context context, String[] permissions) {
for (String permission : permissions) {
int per =context.checkPermission(permission, Process.myPid(),Process.myUid());
if (PackageManager.PERMISSION_GRANTED != per) {
Log.w(TAG, "required permission not granted . permission = " + permission);
return false;
}
}
return true;
}
public static boolean checkPermission3(Context context, String[] permissions) {
for (String permission : permissions) {
int per = ContextCompat.checkSelfPermission(context, Manifest.permission.CAMERA);
if (PackageManager.PERMISSION_GRANTED != per) {
Log.w(TAG, "required permission not granted . permission = " + permission);
return false;
}
}
return true;
}
推薦閱讀:
Unity 下集成第三方原生 SDK,以極光廠商通道為例
如何修改 Android 編譯 Java 源文件的 JDK 版本 原生和 Cordova 為例
谷歌將對歐洲 Android 設(shè)備制造商收取其應(yīng)用服務(wù)費用