Skip to content

LimeCallLogs

  • lime-call-logs 安卓端获取通话记录,搜索通话录音,监听通话状态的UTS API, 兼容uniappx
  • 目前只在小米华为上测试,由于隐私限制越来越严格,不一定能搜到录音文件。

安装

插件市场入口 导入,自定义基座后使用,请试用后再谨慎购买或也可以购买源码版本自行修改。

代码演示

获取通话记录

js
import { queryCallLogs, CallLogsOptions } from '@/uni_modules/lime-call-logs'

queryCallLogs({
	// number: '指定号码',
	// name: '指定名称',
	// date: '指定时间戳 Date.now',
	limit: 10, //搜索多少条,不填则全部返回
	success(res) {
		// Map[]
		// id,number,date,duration,cachedName
		console.log('res', res)
	}
} as CallLogsOptions)

监听通话状态

js
import { onPhoneCallState, offPhoneCallState } from '@/uni_modules/lime-call-logs'

// 开始监听
onPhoneCallState((res) => {
	console.log('res', res)
	const state = res.get('state')
	if(state == 0) {
		console.log('电话挂断')
	} else if(state == 1) {
		console.log('电话响铃')
	} else if(state == 2) {
		console.log('通话中')
	} else {
		console.log('无权限')
	}
})

// 取消监听
offPhoneCallState()

判断是否开启通话录音

js
import { isOpenRecord } from '@/uni_modules/lime-call-logs'
// 仅做了小米,华为,oppo ,vivo,其他手机需要你自行添加,添加的方法就是使用PhoneUtils.getSettingsKeyValue()获取返回的value再给phoneSettingsMap加上相应的key,value.
// true 为 开启 false 为未开启
console.log(isOpenRecord())

跳转到通话自动录音页面

js
import { openRecordSetting } from '@/uni_modules/lime-call-logs'
// 也仅做了小米,华为,oppo ,vivo
openRecordSetting()

搜索录音文件

js
import { searchRecorderFile, SearchRecorderFileOptions } from '@/uni_modules/lime-call-logs'
// 现在的高版本安卓很难搜索到,所以可忽略吧这功能。
searchRecorderFile({
	time: 10000,//搜索最近10000毫秒内的录音文件
	success(res:string) {
		console.log('找到音频')
	},
	fail(err) {
		console.log('未找到')
	}
} as SearchRecorderFileOptions)

源代码

组件源码