You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
2.2 KiB
55 lines
2.2 KiB
//Copyright (c) 2017. 章钦豪. All rights reserved.
|
|
package com.monke.monkeybook.utils;
|
|
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
import android.content.pm.PackageInfo;
|
|
import android.content.pm.PackageManager;
|
|
import android.net.Uri;
|
|
import android.os.Build;
|
|
import android.support.v4.content.PermissionChecker;
|
|
|
|
public class PremissionCheck {
|
|
public static Boolean checkPremission(Context context,String permission){
|
|
boolean result = false;
|
|
if (getTargetSdkVersion(context) >= Build.VERSION_CODES.M && Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
|
result = context.checkSelfPermission(permission)
|
|
== PackageManager.PERMISSION_GRANTED;
|
|
} else {
|
|
result = PermissionChecker.checkSelfPermission(context, permission)
|
|
== PermissionChecker.PERMISSION_GRANTED;
|
|
}
|
|
return result;
|
|
}
|
|
|
|
private static int getTargetSdkVersion(Context context) {
|
|
int version = 0;
|
|
try {
|
|
final PackageInfo info = context.getPackageManager().getPackageInfo(
|
|
context.getPackageName(), 0);
|
|
version = info.applicationInfo.targetSdkVersion;
|
|
} catch (PackageManager.NameNotFoundException e) {
|
|
e.printStackTrace();
|
|
}
|
|
return version;
|
|
}
|
|
public static void requestPermissionSetting(Context from) {
|
|
try {
|
|
Intent localIntent = new Intent();
|
|
localIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
|
|
if (Build.VERSION.SDK_INT >= 9) {
|
|
localIntent.setAction("android.settings.APPLICATION_DETAILS_SETTINGS");
|
|
localIntent.setData(Uri.fromParts("package", from.getPackageName(), null));
|
|
} else if (Build.VERSION.SDK_INT <= 8) {
|
|
localIntent.setAction(Intent.ACTION_VIEW);
|
|
localIntent.setClassName("com.android.settings", "com.android.settings.InstalledAppDetails");
|
|
localIntent.putExtra("com.android.settings.ApplicationPkgName", from.getPackageName());
|
|
}
|
|
from.startActivity(localIntent);
|
|
} catch (Exception e) {
|
|
e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
}
|