Android6.0权限检测映射封装

权限.png

1.首先判断版本是否是6.0以下,然后通过映射调用方法

   if (PermissionUtils.isOverA_6()) {
            //  如果不是6.0以上  那么直接执行方法   反射获取执行方法
            PermissionUtils.executeMethod(mObject, mRequestCode);
            List<String> permiss = PermissionUtils.getNotPermissions(mObject, mRequestPermission);
            if (permiss == null || permiss.size() <= 0) {
                PermissionUtils.executeMethod(mObject, mRequestCode);
            } else {
                ActivityCompat.requestPermissions(PermissionUtils.getActivity(mObject), permiss.toArray(new String[permiss.size()]), mRequestCode);
            }
            return;
        }

2.通过映射执行对应的注解方法

  /**
     * 执行方法
     *
     * @param object
     * @param method
     */
    public static void startMethod(Object object, Method method) {
        //通过反射执行方法 参数1:方法所在类 参数2:参数
        try {
            //允许执行私有方法
            method.setAccessible(true);
            method.invoke(object, null);
            //有参数的调用
            //            method.invoke(object, new Object() {});
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }
    }

3.Main调用


    @PermissionCallBack(requestCode = CALL_PHONE_REQUEST)
    private void getPermission() {
        Toast.makeText(this,"权限获取成功",Toast.LENGTH_LONG).show();
    }

    @PermissionFailedBack(requestCode = CALL_PHONE_REQUEST)
    private void getPermissionBack() {
        Toast.makeText(this, "失败权限", Toast.LENGTH_SHORT).show();
    }

    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
        PermissionHelper.requestPermissionCallBack(this, CALL_PHONE_REQUEST, permissions);
    }

源码地址:
https://download.csdn.net/download/hanfeifeih/11180329

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容