Skip to content

权限说明与应用市场审核 ​

客户要按住说话、要拍张照片发给客服,APP 得先拿到麦克风和相机权限。

SDK 只会申请这两个权限 ​

麦克风(发语音消息)和相机(直接拍摄发给客服)。通知、定位、蓝牙、存储,SDK 都不申请,选照片和文件走系统选择器。应用市场要求申报第三方 SDK 的权限清单时,按这两条填。

两个权限都只在客户主动点了对应功能、且尚未授权时才申请。

你要做什么 ​

iOS:在 Info.plist 里填好两条用途说明,见装进 iOS。苹果会审核这句说明写得够不够具体。

Android:不用做任何事,SDK 已经内置了权限说明弹窗。想改文案见下文。

Android 上 SDK 做了什么 ​

应用市场要求申请敏感权限时同步告知用途,而安卓系统的权限弹窗不说用途。所以 SDK 在调用系统权限申请之前,先弹一层说明,写清楚这次要麦克风还是相机、用来做什么:

权限使用说明弹窗,说明发送语音消息需要麦克风权限及其用途

客户点继续才走系统弹窗:

Android 系统的麦克风权限授权弹窗

这层说明只在客户主动点了发语音、拍照这类功能时出现,不会在 APP 启动时弹。

想改说明文案 ​

默认不用配。只想换措辞,在配置里覆盖 permissionRationaleText,按权限分别写:

kotlin
HecongChatConfig("你的渠道ID").apply {
    permissionRationaleText["microphone"] = "发送语音消息需要使用麦克风权限,用于录制您的语音内容。"
    permissionRationaleText["camera"] = "拍摄照片或视频发送给客服需要使用相机权限。"
}

只覆盖其中一个的话,另一个仍用 SDK 内置的话术。

想用自己的弹窗样式,接管整层:

kotlin
override fun onShowPermissionRationale(
    kind: String,
    callback: HecongPermissionRationaleCallback
): Boolean {
    // kind 是 "microphone" 或 "camera"
    // 用你自己的对话框展示说明,用户点确定调 callback.proceed(),点取消调 callback.cancel()
    return true   // 返回 true 表示你接管了,SDK 不再弹自己的层
}

返回 false 时 SDK 继续弹内置的说明层。接管之后要保证说明里写清了权限用途,这是审核要看的。

客户拒绝了权限会怎样 ​

不会崩,也不会卡住。发语音、拍摄用不了,打字、发相册照片和文件照常。

拒绝之后再点同一个功能,说明层会再出现。客户如果在系统弹窗上选了「不再询问」,之后不会再有系统弹窗:发语音会提示权限未开启,拍摄入口没有反应,只能由客户自己去系统设置里打开。

下一步 ​