更新记录
1.2.1(2024-06-20)
解决targetSdkVersion>=30的时候,提示没有权限获取录音文件的问题
1.2.0(2024-02-02)
- 通话记录中添加SIM卡信息
- 获取通话记录列表的方法进行录音文件匹配
1.1.2(2024-01-06)
优化部分手机拨号状态监听权限问题
查看更多平台兼容性
Android | Android CPU类型 | iOS |
---|---|---|
适用版本区间:6.0 - 12.0 | armeabi-v7a:支持,arm64-v8a:支持,x86:支持 | × |
原生插件通用使用流程:
- 购买插件,选择该插件绑定的项目。
- 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
- 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
- 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
- 开发完毕后正式云打包
付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios
注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择
监听通话状态,获取通话记录和录音文件插件使用说明
- 在Uni项目中引入插件:const muCall = uni.requireNativePlugin('Mu-Call')
目录
[TOC]
muCall.init(params, callback)
初始化。
参数说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
params | Object | 是 | 初始化参数 |
- simId | int | 是 | 拨号卡序号,默认-1 |
- recordFolder | String | 是 | 系统录音文件目录 针对特殊机型 |
- count | int | 是 | 通话记录最多查询次数,默认10 |
- saveFlag | boolean | 是 | 是否保存录音临时文件,默认false |
- recordFolderTemp | String | 是 | 录音临时保存目录 |
callback | Function | 是 | 初始化回调 |
示例
var recordFolderTemp = plus.io.convertLocalFileSystemURL("_www");
muCall.init({
simId: -1, // -1默认SIM卡拨号, 0卡1拨号, 1卡2拨号
count: 10, // 通话记录最多查询次数
saveFlag: true, // 是否保存录音临时文件
recordFolderTemp // 录音临时保存目录
}, res => {
uni.showToast({
title: res.message,
icon: 'none'
})
})
muCall.setSimId(simId)
设置拨号SIM卡(0卡1, 1卡2)。
参数说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
simId | int | 是 | 拨号卡序号 |
示例
muCall.setSimId(1);
muCall.setRecordFolder(recordFolder)
设置系统录音文件目录(主流手机无需设置,目前已适配小米、华为、OPPO、VIVO、魅族、酷我等等)。
参数说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
recordFolder | String | 是 | 系统录音文件目录 针对特殊机型 |
示例
muCall.setRecordFolder('系统录音文件目录');
muCall.setSaveFlag(saveFlog)
是否保存录音临时文件。
参数说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
saveFlag | boolean | 是 | 是否保存录音临时文件 |
示例
muCall.setSaveFlag(true);
muCall.setRecordFolderTemp(recordFolderTemp)
设置录音临时保存目录。
参数说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
recordFolderTemp | String | 是 | 录音临时保存目录 |
示例
var recordFolderTemp = plus.io.convertLocalFileSystemURL("_www");
muCall.setRecordFolderTemp(recordFolderTemp);
muCall.requestIgnoreBattery()
请求加入电池优化。
示例
muCall.requestIgnoreBattery();
muCall.startForegroundService()
开启前台服务。
示例
muCall.startForegroundService();
muCall.stopForegroundService()
关闭前台服务。
示例
muCall.stopForegroundService();
muCall.startPermissionSetting()
打开权限设置页面。
示例
muCall.startPermissionSetting();
muCall.checkAutoRecordEnableStatus()
检测自动录音是否开启:1开启, 0未开启, -1检测失败。
示例
let status = muCall.checkAutoRecordEnableStatus();
console.log(status)
muCall.startSystemRecordSetting()
打开自动录音设置界面。
示例
let success = muCall.startSystemRecordSetting();
if(!success) {
console.log("请前往系统拨号打开通话录音")
}
muCall.hasSimCard(simId)
判断SIM卡是否存在:0表示卡1,1表示卡2。
参数说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
simId | int | 是 | 拨号卡序号 |
示例
if(muCall.hasSimCard(0)) {
console.log('SIM卡1存在')
} else {
console.log('SIM卡1不存在')
}
muCall.getSimInfo(simId)
获取SIM卡信息(注意:需要开启手机状态信息权限,小米、红米手机需要手动进入权限设置页面将手机状态权限设置为始终允许)。
参数说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
simId | int | 是 | 拨号卡序号 |
示例
let simInfo = muCall.getSimInfo(0)
console.log("本机号码:" + simInfo.number)
muCall.registerCallListener(callback)
注册通话监听。
响应结果说明
字段 | 类型 | 说明 |
---|---|---|
code | int | 响应码:200状态, 0获取通话记录失败, 1获取通话记录成功 |
status | int | 通话状态:0通话结束, 1响铃, 2拨号/接通 |
message | String | 响应消息 |
data | Object | 通话记录 |
- number | String | 被叫号码 |
- talkTime | long | 拨号时间戳 |
- lastModified | long | 通话结束时间戳 |
- duration | long | 通话时间 |
- type | int | 通话类型 |
- location | String | 被叫号码归属地 |
- simInfo | Object | 主叫SIM卡信息 |
-- number | String | 主叫号码 |
-- operatorName | String | 主叫号码运营商 |
-- iccId | String | 主叫SIM卡的iccId |
-- simSlotIndex | int | 主叫simId |
recordFile | Object | 系统录音文件 |
- name | String | 文件名称 |
- size | long | 文件大小 |
- path | String | 文件路径 |
- lastModified | long | 文件保存时间戳 |
tempFile | String | 临时录音文件路径 |
示例
muCall.registerCallListener(res => {
let {
code, // 响应码(200状态, 0获取通话记录失败, 1获取通话记录成功)
status, // 通话状态(0通话结束, 1响铃, 2拨号/接通)
message, // 响应消息
data, // 通话记录
recordFile, // 系统录音文件
tempFile // 临时录音文件
} = res
})
muCall.makePhoneCall(phoneNumber)
拨号。
参数说明
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
phoneNumber | String | 是 | 被叫号码 |
示例
muCall.makePhoneCall("手机号码")
muCall.getRecordFileList()
获取系统录音文件列表。
示例
let recordFileList = muCall.getRecordFileList()
console.log(recordFileList)
muCall.getLatestRecordFile()
获取最新一条系统录音文件。
示例
let recordFile = muCall.getLatestRecordFile()
console.log(recordFile)
muCall.getCallLogList()
获取通话记录。
示例
let callLogList = muCall.getCallLogList()
console.log(callLogList)
muCall.uploadFile()
文件上传。
示例
muCall.uploadFile({
url: "上传服务地址",
filePath: "录音文件本地路径",
name: "文件二进制字段, 默认file",
header: {
// 请求头
},
formData: {
// 请求表单数据
},
timeout: 60000 // 响应超时时间, 单位ms
}, res => {
let {
code, // 响应码
message, // 响应消息
data // 接口响应数据
} = res
console.log(res)
})
muCall.endCall()
挂断电话。
示例
muPhoneCall.endCall()