当前位置: 首页 > news >正文

UNI-APP uts插件 支持ANDROID 监听手机状态

插件地址 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 = res
					uni.showToast({
						title: JSON.stringify(res),
						duration: 2000
					})
				})
			},
			jumpToPermissionPage() {
				jumpToPermissionPage()
			},
			navigateToCallRecordingSettings() {
				navigateToCallRecordingSettings()
			},
			toCallAutoRecorderPage() {
				toCallAutoRecorderPage()
			},
			checkIsAutoRecord() {
				let checkRecord = checkIsAutoRecord()
				uni.showToast({
					title: checkRecord ? "已开启电话录音" : "未开启电话录音",
					duration: 2000
				})
			},
http://www.dtcms.com/a/74938.html

相关文章:

  • 分布式锁: 并发时,redis如何避免删别人的锁
  • uniapp笔记-底部和首部标签页菜单生成
  • Matlab 汽车ABS实现pid控制
  • SpringBoot桂林旅游景点导游平台开发与设计
  • 【第14届蓝桥杯】软件赛CB组省赛
  • Cannl 数据同步-ES篇
  • Git 常用命令完全指南:从入门到高效协作
  • 【商城实战(39)】Spring Boot 携手微服务,商城架构焕新篇
  • 华为OD机试 - 九宫格按键输入 - 逻辑分析(Java 2023 B卷 200分)
  • helm部署metricbeat
  • 巧用 VSCode 与 AI 编码提升 Vue 前端开发效率
  • Vue 登录 记住密码,设置存储时间
  • R语言——变量
  • 计算机网络笔记
  • CI/CD 全流程全解
  • 提升AI性能的秘密武器:量化、蒸馏与剪枝全面解析
  • conda、poetry,pip相关
  • 计算机网络进化论:从比特流到量子通信的深层解构
  • ZSL多个session
  • 软考笔记——计算机系统知识
  • 5.建造者模式
  • vSphere 克隆 Windows 虚拟机后无法访问文件共享的解决方案
  • Maven | 站在初学者的角度配置
  • vue3单独引用element-plus的Infinite Scroll无限滚动;vue3自定义指令
  • 一、Redis简介篇
  • 【操作系统安全】任务5:Windows 文件与文件系统
  • 解锁淘宝分类宝藏:深入探索“cat_get”接口的力量
  • vue3 elementUi table自由渲染组件
  • 使用computed计算属性实现购物车勾选
  • 【leetcode hot 100 105】从前序与中序遍历序列构造二叉树