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.
NovelReader/app/src/main/java/com/monke/monkeybook/utils/PremissionCheck.java

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();
}
}
}