Skip to content

XPermission 动态权限操作工具

王兴春 edited this page Mar 21, 2017 · 4 revisions

简化Android动态权限管理的操作

使用方法

以拨打电话为例

1、首先AndroidManifest中配置必要的权限

 <uses-permission android:name="android.permission.CALL_PHONE"/>

2、继承XActivity,你也可以用自己的BaseActivity继承XActivity

在XActivity中已经进行了全局onRequestPermissionsResult()方法的回调,避免每个页面都要写。

3、调用申请权限方法

XPermission.requestPermissions(Context context, 
int requestCode, String[] permissions, OnPermissionListener listener)

申请权限方法详解

/**
 申请权限
 参数一:
 这里主要注意这个Context必需是一个Activity
 如果在Activity中可以传this;
 如果在Fragment中传getActivity();
 如果在View中传getContext();
 参数二:
 发起申请的code,在onRequestPermissionsResult时会调用,请不要设置为一样的值
 参数三:
 要申请的权限数组,支持批量申请
 参数四:
 申请结果回调监听
 */
 XPermission.requestPermissions(this, 100, new String[]{Manifest.permission
                .CALL_PHONE}, new XPermission.OnPermissionListener() {
            //权限申请成功时调用
            @Override
            public void onPermissionGranted() {
                Intent intent = new Intent();
                intent.setAction(Intent.ACTION_CALL);
                intent.setData(Uri.parse("tel:18685555855"));
                startActivity(intent);
            }
            //权限被用户禁止时调用
            @Override
            public void onPermissionDenied() {
                //给出友好提示,并且提示启动当前应用设置页面打开权限
                XPermission.showTipsDialog(XPermissionDemoActivity.this);
            }
        });