更新记录
1.1.1(2026-07-11)
更新插件使用说明
1.1.0(2026-07-11)
插件简介
aiko-call-recorder 是一款 Android UTS 原生插件,面向 uni-app / uni-app x 项目,提供系统通话录音获取、通话状态监听、通话记录、短信、通讯录、拨打接听挂断等能力。
本插件不自行录制通话音频,而是引导用户开启各厂商「通话自动录音」,在来电/去电/挂断时监听状态,挂断后从系统录音目录匹配并返回录音文件路径,并可按需自动或手动转码为标准 MP3/WAV/M4A。
适配品牌:华为、荣耀、小米、OPPO、vivo、一加、三星、魅族、联想、中兴等(机型与 ROM 差异较大,请真机验证)。
平台与运行要求
- 仅支持 App-Android(不支持 iOS / 小程序 / Web)
- 支持 uni-app(Vue2/Vue3、vue/nvue)与 uni-app x
- 需 HBuilderX 4.25+,修改原生代码后需制作自定义调试基座
- 付费插件云打包需 HBuilderX 3.7.2+,仅支持云端传统打包
引入方式
import * as module from '@/uni_modules/aiko-call-recorder'
统一回调结构:{ code: number, message: string, data: any },code === 0 表示成功。
一、权限与环境
| API | 说明 |
|---|---|
requestPermissions |
批量申请电话、短信、存储、通讯录等相关权限 |
checkAllFilesPermission |
检测是否拥有「所有文件访问」权限(Android 11+ 读取系统录音目录必需) |
toAllFilesPermissionPage |
跳转系统所有文件访问授权页 |
checkPhone |
检测当前机型是否在适配范围内 |
isForegroundPermission |
检测通知权限(前台服务需要) |
toForegroundPage |
跳转通知权限设置页 |
二、系统通话自动录音
| API | 说明 |
|---|---|
checkCallAutoRecorder |
检测是否已开启系统「通话自动录音」 |
toCallAutoRecorderPage |
跳转各厂商通话自动录音设置页 |
setCustomAudioRecorderDir |
设置自定义录音目录(用于匹配系统录音文件) |
getAllRecorderFiles |
获取系统录音目录下全部录音文件列表 |
getRecorderFiles |
按时间范围、关键字搜索录音文件 |
三、通话状态监听
| API | 说明 |
|---|---|
registerListener |
注册通话状态监听(来电、去电、挂断、拒接等) |
unRegisterListener |
取消通话状态监听 |
isRegisterListener |
查询是否已注册监听 |
getCallState |
获取当前通话状态:0 空闲 / 1 响铃 / 2 通话中 |
registerListener 状态码(data.status)
| status | 含义 |
|---|---|
| 1 | 来电响铃 |
| 2 | 去电或来电通话中 |
| 3 | 电话挂断(可带录音路径、时长、转码结果) |
| 4 | 来电拒接或未接听 |
| 5 | 去电对方拒接或未接听 |
| 6 | 通话中时来电占线 |
挂断(status=3)回调字段
| 字段 | 说明 |
|---|---|
audioPath / originalAudioPath |
系统原始录音路径 |
duration |
原始录音时长(毫秒) |
convertedPath |
自动转码后的文件路径(开启自动转码且成功时) |
originalSize / convertedSize |
转码前后文件大小(字节) |
converted |
是否转码成功 |
convertFormat |
目标格式(mp3 / wav / m4a) |
convertMessage |
转码结果说明 |
convertedDuration |
转码后音频时长(毫秒) |
四、拨打 / 接听 / 挂断
| API | 说明 |
|---|---|
callPhone |
拨打电话,支持指定卡槽、是否系统选号 |
answerRingingCall |
接听来电 |
endCall |
挂断当前通话 |
isMultiSim |
是否双卡设备 |
getPhoneNumber |
获取本机号码(部分机型/运营商可能为空) |
getDefaultCallSimCard |
获取默认拨号卡槽 |
五、通话记录
| API | 说明 |
|---|---|
getAllCalls |
获取全部通话记录 |
getCalls |
按姓名、号码、时间范围筛选通话记录 |
六、短信
| API | 说明 |
|---|---|
registerSmsListener |
注册短信接收监听 |
unRegisterSmsListener |
取消短信监听 |
hideSendSms |
发送短信(可指定卡槽 subId) |
getSms |
按内容、号码查询短信记录 |
七、通讯录
| API | 说明 |
|---|---|
getContacts |
按号码或姓名查询联系人 |
addContact |
添加联系人 |
八、录音文件与音频处理
| API | 说明 |
|---|---|
moveFile |
移动文件 |
copyFile |
复制文件(系统录音目录文件可先复制到应用目录再上传) |
deleteFile |
删除文件 |
getDuration |
获取音频文件时长(毫秒) |
convertAudio |
手动音频格式转换,默认 MP3(LAME),另支持 WAV、M4A |
setAutoConvertConfig |
配置挂断后自动转码(enable / format / outputDir,持久化存储) |
getAutoConvertConfig |
读取自动转码配置 |
convertAudio 参数说明
fromFilename或path:源文件绝对路径toFilename:输出路径(不传则在同目录生成*_converted.mp3/wav/m4a)format:目标格式,mp3(默认)/wav/m4a
九、前台保活
| API | 说明 |
|---|---|
startForeground |
启动前台通知服务,提升锁屏/后台存活率 |
stopForeground |
停止前台通知服务 |
推荐使用流程
requestPermissions申请相关权限checkAllFilesPermission/toAllFilesPermissionPage(Android 11+)checkCallAutoRecorder/toCallAutoRecorderPage开启系统通话自动录音startForeground提升后台存活(可选)setAutoConvertConfig({ enable: true, format: 'mp3' })开启挂断自动转 MP3(可选)registerListener注册监听,挂断后读取audioPath/convertedPath
权限声明
插件已在 AndroidManifest.xml 声明以下权限,请在应用隐私政策中说明用途:
电话状态 / 通话记录 / 拨打接听、麦克风(部分 ROM 要求)、存储 / 所有文件访问、短信读写发送、通讯录、通知 / 前台服务。
常见问题
- 挂断后没有 audioPath:确认系统通话自动录音已开;Android 11+ 需所有文件访问权限;部分 ROM 录音落盘较慢。
- 系统目录文件无法上传:先用
copyFile/moveFile复制到应用可访问目录。 - 锁屏后无回调:开启
startForeground,并按厂商要求打开自启动。 - 录音格式无法播放:开启自动转 MP3,或手动调用
convertAudio。
合规提示
请遵守当地法律法规,录音前告知对方并取得同意。上架应用商店时请按商店政策申报敏感权限。
授权与加密
| 授权类型 | 价格 | 说明 |
|---|---|---|
| 普通授权版 | ¥59.90 | 实现层加密,云打包解密使用,绑定 appid 与包名 |
| 源码授权版 | ¥199.00 | 可下载完整 UTS/Kotlin 源码 |
utssdk/interface.uts保留明文 API 声明utssdk/app-android/index.uts及 Kotlin 混编文件上架后加密- 联系 QQ:1074699502
历史版本
1.0.3 — 新增 setAutoConvertConfig / getAutoConvertConfig;挂断回调增加转码字段
1.0.2 — convertAudio 默认格式改为 MP3(LAME)
1.0.1 — 新增 convertAudio 音频格式转换
1.0.0 — 首发:通话/短信监听、系统录音检测与获取
平台兼容性
uni-app(4.23)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| √ | √ | × | × | √ | √ | √ | × | × |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | × | × | × | × | × | × | × |
uni-app x(4.62)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| × | × | - | × | × | × |
aiko-call-recorder
Android 通话录音 / 电话短信监听 UTS 插件。
能力说明
本插件不自行录制通话音频,而是:
- 引导用户开启各厂商「通话自动录音」
- 监听来电 / 去电 / 挂断状态
- 挂断后从系统录音目录匹配并返回录音文件路径
- 提供通话记录、短信、通讯录、拨打/接听/挂断、文件复制移动、前台保活等配套能力
适配品牌:华为、荣耀、小米、OPPO、vivo、一加、三星、魅族、联想、中兴等(机型差异较大,请真机验证)。
仅支持
- App-Android
- uni-app / uni-app x
安装
将本插件放入项目 uni_modules/aiko-call-recorder,制作自定义调试基座后运行。
引入
import * as module from '@/uni_modules/aiko-call-recorder'
推荐使用流程
requestPermissions申请电话/短信/存储等相关权限checkAllFilesPermission/toAllFilesPermissionPage(Android 11+ 读取系统录音目录需要)checkCallAutoRecorder/toCallAutoRecorderPage开启系统通话自动录音startForeground提升锁屏后存活率(可配合保活方案)registerListener注册通话监听,挂断后status=3时读取audioPath- (可选)
setAutoConvertConfig({ enable: true, format: 'mp3' })开启挂断后自动转码
核心 API
| 方法 | 说明 |
|---|---|
requestPermissions |
申请权限 |
checkCallAutoRecorder |
检测是否开启通话自动录音 |
toCallAutoRecorderPage |
跳转开启通话自动录音页面 |
getAllRecorderFiles |
获取所有录音文件 |
getRecorderFiles |
按时间/关键字搜索录音 |
registerListener |
注册通话监听 |
unRegisterListener |
取消通话监听 |
isRegisterListener |
是否已注册监听 |
getCallState |
当前通话状态 0空闲/1响铃/2通话中 |
endCall |
挂断 |
answerRingingCall |
接听 |
callPhone |
拨打 |
getAllCalls / getCalls |
通话记录 |
registerSmsListener / unRegisterSmsListener |
短信监听 |
hideSendSms / getSms |
发短信 / 查短信 |
isMultiSim / getPhoneNumber / getDefaultCallSimCard |
卡槽与号码 |
moveFile / copyFile / deleteFile |
文件操作 |
checkAllFilesPermission / toAllFilesPermissionPage |
所有文件访问权限 |
getDuration |
音频时长(毫秒) |
convertAudio |
音频格式转换(默认 mp3,另支持 wav / m4a) |
setAutoConvertConfig / getAutoConvertConfig |
挂断后自动转码配置 |
getContacts / addContact |
通讯录 |
isForegroundPermission / toForegroundPage |
通知权限 |
startForeground / stopForeground |
前台通知服务 |
checkPhone |
是否适配当前机型 |
setCustomAudioRecorderDir |
自定义录音目录 |
统一回调结构
{
"code": 0,
"message": "",
"data": {}
}
code === 0 表示成功。
registerListener 状态码
| status | 含义 |
|---|---|
| 1 | 来电响铃 |
| 2 | 去电或来电通话中 |
| 3 | 电话挂断(可能带 audioPath/duration) |
| 4 | 来电拒接或未接听 |
| 5 | 去电对方拒接或未接听 |
| 6 | 通话中时来电占线 |
示例
// 开启:通话结束后自动转 MP3(配置会持久化)
module.setAutoConvertConfig({
enable: true,
format: 'mp3',
outputDir: '/storage/emulated/0/aiko_call_recorder'
}, (res) => {
console.log(res)
})
module.registerListener((res) => {
console.log(res)
// status=3 时:
// data.audioPath 原始录音
// data.convertedPath 自动转码结果(开启后才有)
// data.converted / data.convertFormat / data.convertMessage
})
module.callPhone({ number: '10086', slot: 1 }, (res) => {
console.log(res)
})
module.copyFile({
fromFilename: '/storage/emulated/0/Sounds/CallRecord/xxx.m4a',
toFilename: '/storage/emulated/0/aiko_call/xxx.m4a'
}, (res) => {
console.log(res)
})
// 也可手动转换
module.convertAudio({
fromFilename: '/storage/emulated/0/Sounds/CallRecord/xxx.amr',
toFilename: '/storage/emulated/0/aiko_call/xxx.mp3',
format: 'mp3'
}, (res) => {
console.log(res)
})
自动转码回调字段(status=3)
| 字段 | 说明 |
|---|---|
audioPath / originalAudioPath |
系统原始录音路径(转换前) |
convertedPath |
转换后的文件路径(成功时) |
originalSize / convertedSize |
转换前后文件大小(字节) |
converted |
是否转换成功 |
convertFormat |
目标格式 |
convertMessage |
转换结果说明 |
convertedDuration |
转换后音频时长(毫秒) |
权限
插件已在 AndroidManifest.xml 声明常用权限,请在应用隐私政策中说明用途。涉及:
- 电话状态 / 通话记录 / 拨打接听
- 麦克风(部分 ROM 要求)
- 存储 / 所有文件访问
- 短信读写发送
- 通讯录
- 通知 / 前台服务
常见问题
- 挂断后没有 audioPath:先确认系统通话自动录音已开;Android 11+ 需所有文件访问权限;部分 ROM 录音落盘较慢。
- 系统目录文件无法上传:先
copyFile/moveFile到应用可访问目录再上传。 - 锁屏后无回调:开启
startForeground,并按厂商要求打开自启动。 - 录音格式无法播放:系统录音可能非标准封装,开启
setAutoConvertConfig自动转mp3,或手动调用convertAudio。
合规提示
请遵守当地法律法规,录音前告知对方并取得同意。上架应用商店时请按商店政策申报敏感权限,勿滥用无障碍/通话能力。

收藏人数:
购买源码授权版(
试用
使用 HBuilderX 导入示例项目
赞赏(0)
下载 1
赞赏 0
下载 12415980
赞赏 1933
赞赏
京公网安备:11010802035340号