跨端权限sdk使用说明
ChangeLog
Version 0.0.4-SNAPSHOT
提供以下接口
- 获取请求权限的intent
- 获取当前权限
- 跳转到跨端权限的设置页
- 监听权限的变化
接入方式
Gradle接入
增加maven仓库地址
maven {
url = "https://pkgs.d.xiaomi.net:443/artifactory/maven-snapshot-virtual/"
}dependencies增加依赖
implementation("com.mi.car.acrossterminal:api:0.0.4-SNAPSHOT")BP接入
static_libs: [
"across-terminal-perms-api"
]接口说明
- 请求权限
val intent = AcrossPermissionManager.getInstance().requestPermissionsIntent(
arrayOf(AcrossPermissionManager.Permissions.PERMISSION_CAMERA),
"deviceUidName",
0,
"设备名称",
"com.mi.car.pkgName")
startActivityForResult(context as Activity, intent, 123, null) //业务方自己调用- 跳转设置页
AcrossPermissionManager.getInstance().jumpToSettingsPage(context as Activity)- 检查权限
val permissionState = AcrossPermissionManager.
getInstance().
checkPermission(context,"deviceUidName",AcrossPermissionManager.Permissions.PERMISSION_CAMERA)返回值对应的权限状态,AcrossPermissionManager中的内部类定义了权限值对应的含义
public static class PermissionState {
public static final int PERMISSION_GRANTED = 0; //同意授权
public static final int PERMISSION_DENIED = 1; //拒绝授权
public static final int PERMISSION_ONETIME = 2; //本次授权
public static final int PERMISSION_PROMPT = 3; //弹窗询问
public static final int PERMISSION_DENY_WITHOUT_PROMPT = 4; //拒绝授权且不再询问
}- 权限变化的监听
注意:注销监听,防止内存泄露
val listener = object : PermissionChangeListener {
override fun onPermissionChange(p0: String?, p1: String?, p2: String?, p3: Int, p4: Int) {
Log.d("MainActivity", "onPermissionChange $p0 $p1 $p2 $p3 $p4")
}
}
//注册监听
AcrossPermissionManager.getInstance().addPermissionChangeListener(listener)
//注销监听
AcrossPermissionManager.getInstance().removePermissionChangeListener(listener)- 权限开始使用
mBinder是作为客户端请求权限的连接token,当客户端被kill时,能够使系统感知。
AcrossPermissionManager.getInstance().startPermission(this@PermissionMonitorService,
"com.mi.car.packageName",
AcrossPermissionManager.Permissions.PERMISSION_CAMERA,
"deviceUidName",
"设备名称",
mBinder
)- 权限停止使用
传入开始权限时传入的Binder
AcrossPermissionManager.getInstance().stopPermission(this@PermissionMonitorService,
"com.mi.car.packageName",
AcrossPermissionManager.Permissions.PERMISSION_CAMERA,
"deviceUidName",
"设备名称",
mBinder
)📥 抓取自飞书 wiki 空间 7541192071952990209,obj_token: OXdHdCAVJoc8vCx8NkvcKnayngc