一个懒人创造的价值是无法想象的,
因为一个懒人会把5个小时的工作量整理成简洁高效的工具类,然后下次一个小时就OK了。
一个勤快的程序猿身边有一个懒人那效率直接就可以爆表到整个宇宙。
so ,以下就是这次的主题,懒人笔记第一章:权限工具类
一、使用
第一步:定义要申请的权限
String location = Manifest.permission.ACCESS_COARSE_LOCATION;
String storage=Manifest.permission.WRITE_EXTERNAL_STORAGE;
String camera =Manifest.permission.CAMERA;
第二步: 定义方法,供外部使用
//定位权限
public boolean location(Context context,int code){
return PermissionUtil.getInstance()
.checkPermission(context,location,code);
}
//照相机和文件
public boolean cam_sto(Context context,int code){
return PermissionUtil.getInstance().
checkPermission(context,
new String[]{storage,camera},code);
}
二、源码
由于源码非常简单,就两个工具类,直接贴在上面供大家Ctrl C
1. activity 中使用
//权限申请
PermissionManager.getInstance().location(context,1);
@Override
public void onRequestPermissionsResult(int requestCode,
String[] permissions,int[] grantResults) {
super.onRequestPermissionsResult
(requestCode, permissions, grantResults);
if (requestCode == 1) {
if(newIndex==0){
if (grantResults[0] == PackageManager.PERMISSION_DENIED) {
MyToast.showToastShort(context, "定位权限未开启!!!");
} else {
init();
}
}else{
fragments[newIndex].onRequestPermissionsResult(requestCode, permissions, grantResults);
}
}
}
2.manager 类
package com.xdx.hostay.utils.common.permission;
import android.Manifest;
import android.content.Context;
/**
* Created by biyunlong on 2017/7/7.
* Make progress every day
*/
public class PermissionManager {
//定位权限
String location = Manifest.permission.ACCESS_COARSE_LOCATION;
String storage=Manifest.permission.WRITE_EXTERNAL_STORAGE;
String camera =Manifest.permission.CAMERA;
String phone=Manifest.permission.CALL_PHONE;
private static PermissionManager permissionManager;
public static PermissionManager getInstance(){
if(null==permissionManager){
permissionManager=new PermissionManager();
}
return permissionManager;
}
//定位权限
public boolean location(Context context,int code){
return PermissionUtil.getInstance().checkPermission(context,location,code);
}
//照相机和文件
public boolean cam_sto(Context context,int code){
return PermissionUtil.getInstance().checkPermission(context,new String[]{storage,camera},code);
}
}
3.utils 类
package com.xdx.hostay.utils.common.permission;
import android.app.Activity;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Build;
import android.support.v4.content.ContextCompat;
/**
* Created by biyunlong on 2017/7/7.
* Make progress every day
*/
public class PermissionUtil {
public static PermissionUtil permissionUtil;
public static PermissionUtil getInstance(){
if(permissionUtil==null){
permissionUtil=new PermissionUtil();
}
return permissionUtil;
}
public boolean checkPermission(Context context, String[] permissions,int code) {
int length = permissions.length;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
((Activity) context).requestPermissions(permissions, code);
}
for (int i = 0; i < length; i++) {
if (ContextCompat.checkSelfPermission(context, permissions[i]) == PackageManager.PERMISSION_DENIED) {
return false;
}
}
return true;
}
public boolean checkPermission(Context context, String permission,int code) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
((Activity) context).requestPermissions(new String[]{permission}, code);
}
if (ContextCompat.checkSelfPermission(context, permission) == PackageManager.PERMISSION_DENIED) {
return true;
} else {
return false;
}
}
}