插件地址 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})},