您的位置:首页 > 移动开发 > Android开发

android 动态申请权限

2017-02-06 14:17 387 查看
需要申请的权限:

group:android.permission-group.CONTACTS

permission:android.permission.WRITE_CONTACTS

permission:android.permission.GET_ACCOUNTS

permission:android.permission.READ_CONTACTS

group:android.permission-group.PHONE

permission:android.permission.READ_CALL_LOG

permission:android.permission.READ_PHONE_STATE

permission:android.permission.CALL_PHONE

permission:android.permission.WRITE_CALL_LOG

permission:android.permission.USE_SIP

permission:android.permission.PROCESS_OUTGOING_CALLS

permission:com.android.voicemail.permission.ADD_VOICEMAIL

group:android.permission-group.CALENDAR

permission:android.permission.READ_CALENDAR

permission:android.permission.WRITE_CALENDAR

group:android.permission-group.CAMERA

permission:android.permission.CAMERA

group:android.permission-group.SENSORS

permission:android.permission.BODY_SENSORS

group:android.permission-group.LOCATION

permission:android.permission.ACCESS_FINE_LOCATION

permission:android.permission.ACCESS_COARSE_LOCATION

group:android.permission-group.STORAGE

permission:android.permission.READ_EXTERNAL_STORAGE

permission:android.permission.WRITE_EXTERNAL_STORAGE

group:android.permission-group.MICROPHONE

permission:android.permission.RECORD_AUDIO

group:android.permission-group.SMS

permission:android.permission.READ_SMS

permission:android.permission.RECEIVE_WAP_PUSH

permission:android.permission.RECEIVE_MMS

permission:android.permission.RECEIVE_SMS

permission:android.permission.SEND_SMS

permission:android.permission.READ_CELL_BROADCASTS

checkSelfPermission:判断是否有该权限。

shouldShowRequestPermissionRationale:在用户选择不再提醒后,返回false。

requestPermissions:弹框提示申请权限。

简单封装工具类:

public class PermissionUtils {

public static void requestPermission(Activity act, String permission, int code, String msg) {

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {

if (ContextCompat.checkSelfPermission(act, permission) != PackageManager.PERMISSION_GRANTED) {

if (ActivityCompat.shouldShowRequestPermissionRationale(act, permission)) {

ToastUtil.showToastBottom(SzjjApp.getAppContext(), msg);

} else {

ActivityCompat.requestPermissions(act, new String[]{permission}, code);

}

}}}}

权限枚举

public enum PermissionType {
CONTACTS("android.permission.READ_CONTACTS", 0), PHONE("android.permission.READ_PHONE_STATE", 1), CALENDAR("android.permission.READ_CALENDAR", 2),
CAMERA("android.permission.CAMERA", 3), SENSORS("android.permission.BODY_SENSORS", 4), LOCATION("android.permission.ACCESS_FINE_LOCATION", 5),
STORAGE("android.permission.READ_EXTERNAL_STORAGE", 6), MICROPHONE("android.permission.RECORD_AUDIO", 7), SMS("android.permission.RECEIVE_SMS", 8);
private String permisson;
private int i;

PermissionType(String permisson, int i) {
this.permisson = permisson;
this.i = i;
}

public String getPermisson() {
return permisson;
}

public int getCode() {
return i;
}
}


onRequestPermissionsResult:弹框后的回调,可写在baseActivity里面。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android