You need to enable JavaScript to run this app.
智能视频创作SDK

智能视频创作SDK

复制全文
常见问题
EffectOne Android 配置权限使用说明
复制全文
EffectOne Android 配置权限使用说明

EO中如何配置,请求系统权限时弹出使用相关权限的说明。
主要针对部分应用商店apk上架时,要求申请手机权限要对申请的权限做出相关使用场景的说明。

一、SDK版本要求

  • EO版本大于等于181。

二、快速配置

  • 初始化配置时, 将默认的请求权限工厂类换成带弹窗提示的工厂类。
//初始化EffectOneSdk
EffectOneSdk.run  {
    isDebugMode = BuildConfig.DEBUG
    imageLoader = DefaultImageLoader()
    logger = DebugLogger()
    modelPath = EOResourceManager.getModelRootPath()
    photoEditingMode = PhotoEditingMode.MODE_PICTURE
    immersionBar = DefaultImmersionBar()
    permissionFactory = PermissionWithDescDlgFactory()
}

三、自定义弹窗

  • 可以自定义类实现IPermissionFactory接口类并实现对应的接口
class PermissionWithDescDlgFactory: IPermissionFactory {

    override fun createPermission(scene: Scene): List<String> {
        //TODO 根据使用场景构建申请的权限列表
    }
    
    //触发时机:在调用系统API request 请求系统权限前调用该方法
    override fun showPermissionDescriptionDlg(context: Context, permissions: List<String>) {
        //TODO 创建显示自定义的dlg弹窗
    }
    
    //触发时机:在收到请求权限前结果后调用该方法
    override fun hidePermissionDescriptionDlg() {
        //TODO 隐藏自定义的dlg弹窗
    }
}
  • 需要注意事项
    • Android 申请系统权限,无法得知当前是否能(可)显示系统权限弹窗。

    • Android 申请系统权限,用户不手动点击系统弹出的权限的允许(拒绝)时,是无法触onRequestPermissionsResult权限申请结果回调。

    • 针对上面两点会遇到的问题:已经拒绝权限的情况下无法判断出是否该显示弹窗,会有先显示弹窗,收到已经拒绝权限后再隐藏弹窗闪一下的情况。

    • 针对上面两点会遇到的问题,目前SDK的弹窗工厂类PermissionWithDescDlgFactory实现的方式是根据经验采用延时判断的方式来处理已经拒绝的情况(默认已拒绝时,系统的api会立即返回请求权限结果)。如果要自定义的话需要格外注意此中情况要自己去实现处理。

最近更新时间:2026.01.26 11:09:58
这个页面对您有帮助吗?
有用
有用
无用
无用