package com.yuyh.library.permission; import android.app.Activity; import android.content.Context; import android.content.pm.PackageInfo; import android.content.pm.PackageManager; import android.os.Build; import android.support.v4.app.ActivityCompat; import android.support.v4.content.ContextCompat; import android.support.v4.content.PermissionChecker; import android.util.Log; /** * Created by hupei on 2016/4/26. */ class AcpService { private static final String TAG = "AcpService"; /** * 检查权限授权状态 * * @param context * @param permission * @return */ int checkSelfPermission(Context context, String permission) { try { final PackageInfo info = context.getPackageManager().getPackageInfo( context.getPackageName(), 0); int targetSdkVersion = info.applicationInfo.targetSdkVersion; if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { if (targetSdkVersion >= Build.VERSION_CODES.M) { Log.i(TAG, "targetSdkVersion >= Build.VERSION_CODES.M"); return ContextCompat.checkSelfPermission(context, permission); } else { return PermissionChecker.checkSelfPermission(context, permission); } } } catch (PackageManager.NameNotFoundException e) { e.printStackTrace(); } return ContextCompat.checkSelfPermission(context, permission); } void requestPermissions(Activity activity, String[] permissions, int requestCode) { ActivityCompat.requestPermissions(activity, permissions, requestCode); } boolean shouldShowRequestPermissionRationale(Activity activity, String permission) { boolean rationale = ActivityCompat.shouldShowRequestPermissionRationale(activity, permission); Log.i(TAG, "rationale = " + rationale); return rationale; } }