插件地址 https://ext.dcloud.net.cn/plugin?id=22646 模块
import {startPhoneListener,stopPhoneListener,checkIsAutoRecord,toCallAutoRecorderPage,navigateToCallRecordingSettings,jumpToPermissionPage,makePhoneCall,allRecorderFilesAction,registerSmsReceiver,} from '@/uni_modules/yao-lister';
对应的权限不能忘记
async initPhoneStateListener() {// 动态申请权限const permissions = ["android.permission.READ_PHONE_STATE","android.permission.ANSWER_PHONE_CALLS", "android.permission.CALL_PHONE","android.permission.MANAGE_EXTERNAL_STORAGE","android.permission.READ_EXTERNAL_STORAGE","android.permission.READ_CALL_LOG","android.permission.READ_PHONE_NUMBERS","android.permission.FOREGROUND_SERVICE","android.permission.RECEIVE_SMS","android.permission.READ_SMS"]const result = await plus.android.requestPermissions(permissions, 1001)if (result.granted) {startListening()// 监听原生事件uni.$on('PHONE_STATE_CHANGE', (state) => {this.phoneState = state})}}
开启,关闭电话监听
startListerPhone() {startPhoneListener(res => {uni.showToast({icon: 'success',title: '电话监听开启',duration: 2000});this.phoneState = res + "012"})},stopListerPhone() {stopPhoneListener(res => {uni.showToast({icon: 'success',title: res,duration: 2000});})},
其他的demo里面 可以直接查看
allRecorderFilesAction() {const _this = this;allRecorderFilesAction(res => {console.log("录音文件输入", JSON.stringify(res))_this.toggle('bottom');_this.Filelist = resuni.showToast({title: JSON.stringify(res),duration: 2000})})},jumpToPermissionPage() {jumpToPermissionPage()},navigateToCallRecordingSettings() {navigateToCallRecordingSettings()},toCallAutoRecorderPage() {toCallAutoRecorderPage()},checkIsAutoRecord() {let checkRecord = checkIsAutoRecord()uni.showToast({title: checkRecord ? "已开启电话录音" : "未开启电话录音",duration: 2000})},