Appearance
Are you an LLM? You can read better optimized documentation at /channels/app/permissions.md for this page in Markdown format
权限说明与应用市场审核
客户要按住说话、要拍张照片发给客服,APP 得先拿到麦克风和相机权限。
SDK 只会申请这两个权限
麦克风(发语音消息)和相机(直接拍摄发给客服)。通知、定位、蓝牙、存储,SDK 都不申请,选照片和文件走系统选择器。应用市场要求申报第三方 SDK 的权限清单时,按这两条填。
两个权限都只在客户主动点了对应功能、且尚未授权时才申请。
你要做什么
iOS:在 Info.plist 里填好两条用途说明,见装进 iOS。苹果会审核这句说明写得够不够具体。
Android:不用做任何事,SDK 已经内置了权限说明弹窗。想改文案见下文。
Android 上 SDK 做了什么
应用市场要求申请敏感权限时同步告知用途,而安卓系统的权限弹窗不说用途。所以 SDK 在调用系统权限申请之前,先弹一层说明,写清楚这次要麦克风还是相机、用来做什么:

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

这层说明只在客户主动点了发语音、拍照这类功能时出现,不会在 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 继续弹内置的说明层。接管之后要保证说明里写清了权限用途,这是审核要看的。
客户拒绝了权限会怎样
不会崩,也不会卡住。发语音、拍摄用不了,打字、发相册照片和文件照常。
拒绝之后再点同一个功能,说明层会再出现。客户如果在系统弹窗上选了「不再询问」,之后不会再有系统弹窗:发语音会提示权限未开启,拍摄入口没有反应,只能由客户自己去系统设置里打开。
下一步
- 隐私合规与信息公示 —— 上架前还要在隐私政策里公示 SDK
- 装进 Android
- 装进 iOS