# XXPermissions
**Repository Path**: HarmonyOS-tpc/XXPermissions
## Basic Information
- **Project Name**: XXPermissions
- **Description**: XxPermissions权限请求框架 一键式权限请求框架
- **Primary Language**: Unknown
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 15
- **Forks**: 4
- **Created**: 2021-02-23
- **Last Updated**: 2025-08-22
## Categories & Tags
**Categories**: harmonyos-permission
**Tags**: None
## README
# XxPermissions
XxPermissions权限请求框架
一键式权限请求框架
##图片示例
引用:
方式一:
通过library生成har包,添加har包到libs文件夹内
在entry的gradle内添加如下代码
implementation fileTree(dir: 'libs', include: ['*.jar', '*.har'])
方式二:
allprojects{
repositories{
mavenCentral()
}
}
implementation 'io.openharmony.tpc.thirdlib:XXPermissions:1.0.3'
用法:
第一步:
XXPermissions.with(getAbility())
.permission(Permission.CAMERA)
.request(new OnPermission() {
@Override
public void hasPermission(List granted, boolean all) {
if (all) {
toast("获取拍照权限成功");
}
}
@Override
public void noPermission(List denied, boolean never) {
if (never) {
toast("被永久拒绝授权,请手动授予拍照权限");
// 如果是被永久拒绝就跳转到应用权限系统设置页面
String[] permissions = new String[denied.size()];
denied.toArray(permissions);
XXPermissions.startPermissionActivity(MainAbilitySlice.this,permissions, this);
} else {
toast("获取拍照权限失败");
}
}
});
第二步:在当前的ability重写onRequestPermissionsFromUserResult方法, 调用如下方法:
XXPermissions.addPermissionsForResult(this,requestCode, permissions, grantResults);
例如:
@Override
public void onRequestPermissionsFromUserResult(int requestCode, String[] permissions, int[] grantResults) {
super.onRequestPermissionsFromUserResult(requestCode, permissions, grantResults);
XXPermissions.addPermissionsForResult(this,
requestCode, permissions, grantResults);
}
若:权限被永久的拒绝,跳转应用列表返回
XXPermissions.startPermissionActivity(MainAbilitySlice.this);
或者
XXPermissions.startPermissionActivity(MainAbilitySlice.this,permissions, this);
其接收返回,需在其ability或者abilitySince中重写onAbilityResult(...)方法
如:
@Override
protected void onAbilityResult(int requestCode, int resultCode, Intent resultData) {
super.onAbilityResult(requestCode, resultCode, resultData);
XXPermissions.onAbilityResult(requestCode);
}