当前位置:   article > 正文

uniapp 安卓如何获取通话权限,监听通话情况_uniapp telephony_service

uniapp telephony_service

本篇文章还是主要讲解uniapp知识,那么在uniapp中如何去实现监听通话的权限?接下来请看代码

// 可以放在App.vue当中 也可以放在页面的onload里面
if (plus.os.name == 'Android') {
	plus.android.requestPermissions(
		[	'android.permission.ANSWER_PHONE_CALLS', //手动 挂断和接听 需要这个权限
			"android.permission.MODIFY_AUDIO_SETTINGS", //手动 挂断和接听 需要这个权限
			"android.permission.CALL_PHONE", //手动 挂断和接听 需要这个权限
			"android.permission.READ_PHONE_STATE", //>监听电话状态 需要这个权限
			"android.permission.READ_CALL_LOG", //获取号码需要这个权限
			"android.permission.READ_AUDIO" // 录音权限
		],
		function(resultObj) {
			var result = 0;
			for (var i = 0; i < resultObj.granted.length; i++) {
				var grantedPermission = resultObj.granted[i];
				console.log('已获取的权限:' + grantedPermission);
				result = 1
			}
			for (var i = 0; i < resultObj.deniedPresent.length; i++) {
				var deniedPresentPermission = resultObj.deniedPresent[i];
				console.log('拒绝本次申请的权限:' + deniedPresentPermission);
				result = 0
			}
			for (var i = 0; i < resultObj.deniedAlways.length; i++) {
				var deniedAlwaysPermission = resultObj.deniedAlways[i];
				console.log('永久拒绝申请的权限:' + deniedAlwaysPermission);
				result = -1
			}
		},
		function(error) {
			console.log('申请权限错误:' + error.code + " = " + error.message);
	});
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32

!](https://img-blog.csdnimg.cn/57decf59db934c018db6961f3f0d7914.png)

在页面中调用方法 监听通话状态

onLoad() {
	this.getCallStatus()
},
methods: {
	getCallStatus() {
		let that = this;
		let maintest = plus.android.runtimeMainActivity();//获取activity
		let Contexttest = plus.android.importClass("android.content.Context");// 上下文
		let telephonyManager = plus.android.importClass("android.telephony.TelephonyManager"); //通话管理
		let telManager = plus.android.runtimeMainActivity().getSystemService(Contexttest.TELEPHONY_SERVICE);
		let receiver = plus.android.implements('io.dcloud.android.content.BroadcastReceiver', {
			onReceive: function(Contexttest, intent) {
				plus.android.importClass(intent);
				let phoneStatus = telManager.getCallState();
				that.callStatus = phoneStatus; //电话状态 0->空闲状态 1->振铃状态 2->通话存在
				switch (phoneStatus) {
					case 0:
						console.log("电话挂断")
						break;
					case 1:
						console.log('振铃状态');
						break;
					case 2:
						console.log('通话存在')
						break;
				}
			}
		});
		let IntentFilter = plus.android.importClass('android.content.IntentFilter');
		let filter = new IntentFilter();
		filter.addAction(telephonyManager.ACTION_PHONE_STATE_CHANGED); // 监听电话状态
		maintest.registerReceiver(receiver, filter); // //注册监听
	}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/42130
推荐阅读
相关标签
  

闽ICP备14008679号