Android组件化开发实战:封装权限管理请求框架,挥泪整理面经

最近看到群里看到一个女生,讲述了她从开始选择Android,经过非常努力的学习和挣扎,然而最后面对当前的环境却不得不放弃。看完以后真的非常替她感觉惋惜,如果早几年入行可能结果会比现在好很多,但可惜,这就是现实。

这是一个做精品的时代了,不是当年出个产品就能拉投资骗点击的时代了。精品需要的是更专业的人才,也就是对APP开发人员的素质要求会更高,这个市场会回归一个正常的节奏,拿多少钱就是看能力,看产品。

  • @version 1.0

  • @team 美奇软件开发工作室

  • @date 2020/11/23 12:54

*/

public final class Permission {

public static final String[] CALENDAR;

public static final String[] CAMERA;

public static final String[] CONTACTS;

public static final String[] LOCATION;

public static final String[] MICROPHONE;

public static final String[] PHONE;

public static final String[] SENSORS;

public static final String[] SMS;

public static final String[] STORAGE;

//安装应用权限

public static final String[] PACKAGES;

//通知栏权限

public static final String[] NOTIFICATION;

//悬浮窗权限

public static final String[] ALERTWINDOW;

//系统设置权限

public static final String[] SETTINGS;

static {

/**

  • Android系统从6.0开始将权限分为一般权限和危险权限:

  • 1、一般权限指不涉及用户隐私的一些权限,比如Internet权限。

  • 2、危险权限指涉及获取用户隐私的一些操作所需要的权限,比如读取用户地理位置的权限。

  • Android在对权限进行分类的同时,还将危险类型的权限进行了分组划分,因此我们在申请权限的时候要一组一组的申请。

*/

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M) {

CALENDAR = new String[]{};

CAMERA = new String[]{};

CONTACTS = new String[]{};

LOCATION = new String[]{};

MICROPHONE = new String[]{};

PHONE = new String[]{};

SENSORS = new String[]{};

SMS = new String[]{};

STORAGE = new String[]{};

PACKAGES=new String[]{};

NOTIFICATION=new String[]{};

ALERTWINDOW=new String[]{};

SETTINGS=new String[]{};

} else {

CALENDAR = new String[]{

Manifest.permission.READ_CALENDAR,

Manifest.permission.WRITE_CALENDAR};

CAMERA = new String[]{

Manifest.permission.CAMERA};

CONTACTS = new String[]{

Manifest.permission.READ_CONTACTS,

Manifest.permission.WRITE_CONTACTS,

Manifest.permission.GET_ACCOUNTS};

//Android10及以上版本,新增2种权限

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

LOCATION = new String[]{

Manifest.permission.ACCESS_FINE_LOCATION,

Manifest.permission.ACCESS_COARSE_LOCATION,

Manifest.permission.ACCESS_BACKGROUND_LOCATION,//在后台获取位置(Android 10.0及以上)

Manifest.permission.ACCESS_MEDIA_LOCATION//读取照片中的地理位置(Android 10.0及以上)

};

}else{

LOCATION = new String[]{

Manifest.permission.ACCESS_FINE_LOCATION,

Manifest.permission.ACCESS_COARSE_LOCATION};

}

MICROPHONE = new String[]{

Manifest.permission.RECORD_AUDIO};

//Android8以上版本PROCESS_OUTGOING_CALLS换成了ANSWER_PHONE_CALLS。

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

PHONE = new String[]{

Manifest.permission.READ_PHONE_STATE,

Manifest.permission.CALL_PHONE,

Manifest.permission.READ_CALL_LOG,

Manifest.permission.WRITE_CALL_LOG,

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值