sdk对target适配之动态权限适配

本文探讨了SDK如何在不同target环境下进行动态权限的适配和兼容问题,建议使用Activity自身的权限检查方法而非v4包,通过反射实现兼容,并提供了检查和请求权限的代码示例,指出在没有权限回调的情况下可能需要采用轮询等策略。
摘要由CSDN通过智能技术生成

作为一个app,target是固定的一个,不用担心是否使用动态权限。但是作为一个sdk可就不那么明朗了,sdk提供给开发者使用,开发者根据自己的应用选择target,sdk就要考虑适配和兼容,那么接下来这里就给出下适配23以上和以下的权限代码,使用反射就可以了,但是注意权限不要使用v4里面的ActivityCompat,因为你不知道开发者是否使用了v4包,也不知道v4包的版本不同对该类是否有影响,所以这里我选择使用Activity里面的现有的权限检查,Activity里面有权限检查也是在target为23的Activity里,因此做下版本判断即可,不然就反射不到喽~

检查权限和请求权限代码,使用Activity自身的方法

检查权限和请求权限的代码,Activity的此方法只在target>=23的时候有

//检查权限
activity.checkSelfPermission(permission);
//请求权限
activity.requestPermissions(permissions,requestCode);

检查权限方法反射

    public static int checkSelfPermission_self(Activity activity,String permission){
   
        Log.d(TAG," checkSelfPermission_self start ");
        if (Build.VERSION.SDK_INT > 22) {
   
            Class clazz = null;
            try {
   
//                activity.checkSelfPermission(permission);
//                clazz = Class.forName(activity.getClass().getCanonicalName());
                ClassLoader classLoader =
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值