android6.0申请权限工具类

简单整理,可能不怎么好

public class PermissionUtils {

	public final static String[] ContactsPermissions = new String[] { Manifest.permission.WRITE_CONTACTS,
			Manifest.permission.GET_ACCOUNTS, Manifest.permission.READ_CONTACTS };

	/**
	 * 通讯录权限
	 * 
	 * @param context
	 * @return
	 */
	public static boolean checkContactsPermissions(Context context) {
		if (ContextCompat.checkSelfPermission(context,
				Manifest.permission.WRITE_CONTACTS) != PackageManager.PERMISSION_GRANTED
				|| ContextCompat.checkSelfPermission(context,
						Manifest.permission.GET_ACCOUNTS) != PackageManager.PERMISSION_GRANTED
				|| ContextCompat.checkSelfPermission(context,
						Manifest.permission.READ_CONTACTS) != PackageManager.PERMISSION_GRANTED) {// 没有权限
			return false;
		} else {
			return true;
		}
	}

	public static void requestContactsPermissions(Activity context, int requestCode) {
		ActivityCompat.requestPermissions(context, ContactsPermissions, requestCode);
	}

	public final static String[] PhonePermissions = new String[] { Manifest.permission.READ_CALL_LOG,
			Manifest.permission.READ_PHONE_STATE, Manifest.permission.CALL_PHONE, Manifest.permission.WRITE_CALL_LOG,
			Manifest.permission.USE_SIP, Manifest.permission.PROCESS_OUTGOING_CALLS,
			Manifest.permission.ADD_VOICEMAIL };

	/**
	 * 通话权限
	 * 
	 * @param context
	 * @return
	 */
	public static boolean checkPhonePermissions(Context context) {
		if (ContextCompat.checkSelfPermission(context,
				Manifest.permission.READ_CALL_LOG) != PackageManager.PERMISSION_GRANTED
				|| ContextCompat.checkSelfPermission(context,
						Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED
				|| ContextCompat.checkSelfPermission(context,
						Manifest.permission.CALL_PHONE) != PackageManager.PERMISSION_GRANTED
				|| ContextCompat.checkSelfPermission(context,
						Manifest.permission.WRITE_CALL_LOG) != PackageManager.PERMISSION_GRANTED
				|| ContextCompat.checkSelfPermission(context,
						Manifest.permission.USE_SIP) != PackageManager.PERMISSION_GRANTED
				|| ContextCompat.checkSelfPermission(context,
						Manifest.permission.PROCESS_OUTGOING_CALLS) != PackageManager.PERMISSION_GRANTED
				|| ContextCompat.checkSelfPermission(context,
						Manifest.permission.ADD_VOICEMAIL) != PackageManager.PERMISSION_GRANTED) {// 没有权限
			return false;
		} else {
			return true;
		}
	}

	public static void requestPhonePermissions(Activity context, int requestCode) {
		ActivityCompat.requestPermissions(context, PhonePermissions, requestCode);
	}

	public final static String[] CalendarPermissions = new String[] { Manifest.permission.READ_CALENDAR,
			Manifest.permission.WRITE_CALENDAR };

	/**
	 * 日历权限
	 * 
	 * @param context
	 * @param requestCode
	 * @return
	 */
	public static boolean checkCalendarPermissions(Context context) {
		if (ContextCompat.checkSelfPermission(context,
				Manifest.permission.READ_CALENDAR) != PackageManager.PERMISSION_GRANTED
				|| ContextCompat.checkSelfPermission(context,
						Manifest.permission.WRITE_CALENDAR) != PackageManager.PERMISSION_GRANTED) {// 没有权限
			return false;
		} else {
			return true;
		}
	}

	public static void requestCalendarPermissions(Activity context, int requestCode) {
		ActivityCompat.requestPermissions(context, CalendarPermissions, requestCode);
	}

	public final static String[] CameraPermissions = new String[] { Manifest.permission.CAMERA };

	/**
	 * 相机权限
	 * 
	 * @param context
	 * @return
	 */
	public static boolean checkCameraPermissions(Context context) {
		if (ContextCompat.checkSelfPermission(context,
				Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {// 没有权限
			return false;
		} else {
			return true;
		}
	}

	public static void requestCameraPermissions(Activity context, int requestCode) {
		ActivityCompat.requestPermissions(context, CameraPermissions, requestCode);
	}

	public final static String[] BodySensorsPermissions = new String[] { Manifest.permission.BODY_SENSORS };

	/**
	 * 身体传感器权限
	 * 
	 * @param context
	 * @return
	 */
	public static boolean checkBodySensorsPermissions(Context context) {
		if (ContextCompat.checkSelfPermission(context,
				Manifest.permission.BODY_SENSORS) != PackageManager.PERMISSION_GRANTED) {// 没有权限
			return false;
		} else {
			return true;
		}
	}

	public static void requestBodySensorsPermissions(Activity context, int requestCode) {
		ActivityCompat.requestPermissions(context, BodySensorsPermissions, requestCode);
	}

	public final static String[] LocationPermissions = new String[] { Manifest.permission.ACCESS_FINE_LOCATION,
			Manifest.permission.ACCESS_COARSE_LOCATION };

	/**
	 * 定位权限
	 * 
	 * @param context
	 * @return
	 */
	public static boolean checkLocationPermissions(Context context) {
		if (ContextCompat.checkSelfPermission(context,
				Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED
				|| ContextCompat.checkSelfPermission(context,
						Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {// 没有权限
			return false;
		} else {
			return true;
		}
	}

	public static void requestLocationPermissions(Activity context, int requestCode) {
		ActivityCompat.requestPermissions(context, LocationPermissions, requestCode);
	}

	public final static String[] MicrophonePermissions = new String[] { Manifest.permission.RECORD_AUDIO };

	/**
	 * 录音权限
	 * 
	 * @param context
	 * @return
	 */
	public static boolean checkMicrophonePermissions(Context context) {
		if (ContextCompat.checkSelfPermission(context,
				Manifest.permission.RECORD_AUDIO) != PackageManager.PERMISSION_GRANTED) {// 没有权限
			return false;
		} else {
			return true;
		}
	}

	public static void requestMicrophonePermissions(Activity context, int requestCode) {
		ActivityCompat.requestPermissions(context, MicrophonePermissions, requestCode);
	}

	public final static String[] SmsPermissions = new String[] { Manifest.permission.READ_SMS,
			Manifest.permission.RECEIVE_WAP_PUSH, Manifest.permission.RECEIVE_MMS, Manifest.permission.RECEIVE_SMS,
			Manifest.permission.SEND_SMS };

	/**
	 * 短信权限
	 * 
	 * @param context
	 * @return
	 */
	public static boolean checkSmsPermissions(Context context) {
		if (ContextCompat.checkSelfPermission(context,
				Manifest.permission.READ_SMS) != PackageManager.PERMISSION_GRANTED
				|| ContextCompat.checkSelfPermission(context,
						Manifest.permission.RECEIVE_WAP_PUSH) != PackageManager.PERMISSION_GRANTED
				|| ContextCompat.checkSelfPermission(context,
						Manifest.permission.RECEIVE_MMS) != PackageManager.PERMISSION_GRANTED
				|| ContextCompat.checkSelfPermission(context,
						Manifest.permission.RECEIVE_SMS) != PackageManager.PERMISSION_GRANTED
				|| ContextCompat.checkSelfPermission(context,
						Manifest.permission.SEND_SMS) != PackageManager.PERMISSION_GRANTED) {// 没有权限
			return false;
		} else {
			return true;
		}
	}

	public static void requestSmsPermissions(Activity context, int requestCode) {
		ActivityCompat.requestPermissions(context, SmsPermissions, requestCode);
	}

	public final static String[] StoragePermissions = new String[] { Manifest.permission.READ_EXTERNAL_STORAGE,
			Manifest.permission.WRITE_EXTERNAL_STORAGE };

	/**
	 * 存储权限
	 * 
	 * @param context
	 * @return
	 */
	public static boolean checkStoragePermissions(Context context) {
		if (ContextCompat.checkSelfPermission(context,
				Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED
				|| ContextCompat.checkSelfPermission(context,
						Manifest.permission.WRITE_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {// 没有权限
			return false;
		} else {
			return true;
		}
	}

	public static void requestStoragePermissions(Activity context, int requestCode) {
		ActivityCompat.requestPermissions(context, StoragePermissions, requestCode);
	}

	/**
	 * http://www.cnblogs.com/fangyucun/p/4027750.html
	 * 
	 * @param context
	 */
	public static void getAppDetailSettingIntent(Context context) {
		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", context.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", context.getPackageName());
		}
		if (isIntentAvailable(context, localIntent)) {
			context.startActivity(localIntent);
		}
	}

	/**
	 * 判断是否有可以接受的Activity
	 * 
	 * @param context
	 * @param action
	 * @return
	 */
	public static boolean isIntentAvailable(Context context, Intent intent) {
		if (intent == null)
			return false;
		return context.getPackageManager().queryIntentActivities(intent, PackageManager.GET_ACTIVITIES).size() > 0;
	}

}

 

转载于:https://my.oschina.net/moziqi/blog/783683

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值