Android6.0權(quán)限檢測映射封裝

權(quán)限.png

1.首先判斷版本是否是6.0以下,然后通過映射調(diào)用方法

   if (PermissionUtils.isOverA_6()) {
            //  如果不是6.0以上  那么直接執(zhí)行方法   反射獲取執(zhí)行方法
            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.通過映射執(zhí)行對應(yīng)的注解方法

  /**
     * 執(zhí)行方法
     *
     * @param object
     * @param method
     */
    public static void startMethod(Object object, Method method) {
        //通過反射執(zhí)行方法 參數(shù)1:方法所在類 參數(shù)2:參數(shù)
        try {
            //允許執(zhí)行私有方法
            method.setAccessible(true);
            method.invoke(object, null);
            //有參數(shù)的調(diào)用
            //            method.invoke(object, new Object() {});
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        }
    }

3.Main調(diào)用


    @PermissionCallBack(requestCode = CALL_PHONE_REQUEST)
    private void getPermission() {
        Toast.makeText(this,"權(quán)限獲取成功",Toast.LENGTH_LONG).show();
    }

    @PermissionFailedBack(requestCode = CALL_PHONE_REQUEST)
    private void getPermissionBack() {
        Toast.makeText(this, "失敗權(quán)限", 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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。