文档章节

Android监控来电/通话中的状态

郏高阳
 郏高阳
发布于 2013/10/17 09:35
字数 320
阅读 1294
收藏 9

使用场景:

现在在做一个功能是这样的,如果有未读订单要求设备就要响铃/获取未读订单是个线程每隔几秒钟就会获取一次,如果有未读订单就会通知铃声响起,可是在通话中的时间后天通知了设备响铃就会在通话中有铃声,导致叠加一起了,很混乱……为了解决这个所以…… 

原文链接:http://my.oschina.net/jgy/blog/169447

获取电话服务

在启动Activity时间获取电话服务:代码如下:

TelephonyManager telephonyManager = (TelephonyManager) this.getSystemService(Context.TELEPHONY_SERVICE);
		MyPhoneStateListener myPhoneStateListener = new MyPhoneStateListener();
		// 手动注册对PhoneStateListener中的listen_call_state状态进行监听通話
		telephonyManager.listen(myPhoneStateListener, PhoneStateListener.LISTEN_CALL_STATE);

MyPhoneStateListener类

/**
 * 继承PhoneStateListener类,我们可以重新其内部的各种监听方法
 * 然后通过手机状态改变时,系统自动触发这些方法来实现我们想要的功能
 */
public class MyPhoneStateListener extends PhoneStateListener {
	/**
	 * @param state 通話狀態
	 * @param incomingNumber   手機號碼
	 */
	@Override
	public void onCallStateChanged(int state, String incomingNumber) {
		switch (state) {
			case TelephonyManager.CALL_STATE_IDLE:
				Log.e("---------", "挂掉");
				break;
			case TelephonyManager.CALL_STATE_RINGING:
				Log.e("---------", "有来电,号码是:" + incomingNumber);
				break;
			case TelephonyManager.CALL_STATE_OFFHOOK:
				Log.e("---------", "通話中");
			default:
				break;
		}
		super.onCallStateChanged(state, incomingNumber);
	}
}

相关权限

<uses-permission android:name="android.permission.READ_PHONE_STATE"/>

山人郏高阳亲测Android2.3/4.2/4.3 木有问题!!

❤犒劳一杯咖啡❤

OVER!!!

© 著作权归作者所有

共有 人打赏支持
郏高阳

郏高阳

粉丝 99
博文 153
码字总数 112268
作品 1
黄浦
程序员
私信 提问
android 电话状态监听(来电和去电)实现代码

从事android开发的朋友们可能电话状态监听不是很擅长,接下来将详细介绍电话状态监听功能的实现步骤,需要了解的朋友可以参考下。 实现手机电话状态的监听,主要依靠两个类:TelephoneManger...

天王盖地虎626
01/11
0
0
转 Android 实现自动接听和挂断电话功能

添加权限 main.xml PhoneUtils.java是手机功能类,从TelephonyManager中实例化ITelephony并返回,源码如下: package com.testTelephony; import java.lang.reflect.Field; import java.lan......

bidaround
2014/09/03
352
0
android phone剖析细节

本人毕业可快一年了。一直从事android方面的研究。感觉对phone的理解是最为深刻的阿。首先,我不讲那些具体的框架了,大家上网随便搜搜都有,主要讲些细节的吧。可能是些小东西吧。 首先,界...

找骨头的啊呜
2011/04/09
0
0
工信部叫停苹果 Callkit,微信不能直接接听视频了

苹果有 ARkit、Classkit、Homekit 和 Sirikit 等开发工具,但 Callkit 却并不被人们所熟知。简单来说,这是一款能够将微信等网络电话整合到手机本身的通话功能中的工具,是不是听起来很方便?...

h4cd
2018/05/15
11.5K
99
在安卓底层加入APP,能做的朋友联系一下

我自己想开发一个安卓平板,与普通平板没有什么区别。主要是: 1,通话自动录音。包括来电和去电。现在华为vivo,都有自动通话录音设置。 2,将我们自行开发的app,加入到系统底层(也许我这...

tlte
01/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

C++ vector和list的区别

1.vector数据结构 vector和数组类似,拥有一段连续的内存空间,并且起始地址不变。 因此能高效的进行随机存取,时间复杂度为o(1); 但因为内存空间是连续的,所以在进行插入和删除操作时,会造...

shzwork
今天
3
0
Spring之invokeBeanFactoryPostProcessors详解

Spring的refresh的invokeBeanFactoryPostProcessors,就是调用所有注册的、原始的BeanFactoryPostProcessor。 相关源码 public static void invokeBeanFactoryPostProcessors(Configu......

cregu
昨天
4
0
ibmcom/db2express-c_docker官方使用文档

(DEPRECIATED) Please check DB2 Developer-C Edition for the replacement. What is IBM DB2 Express-C ? ``IBM DB2 Express-C``` is the no-charge community edition of DB2 server, a si......

BG2KNT
昨天
3
0
Ubuntu 18.04.2 LTS nvidia-docker2 : 依赖: docker-ce (= 5:18.09.0~3-0~ubuntu-bionic)

平台:Ubuntu 18.04.2 LTS nvidia-docker2 版本:2.0.3 错误描述:在安装nvidia-docker2的时候报dpkg依赖错误 nvidia-docker2 : 依赖: docker-ce (= 5:18.09.0~3-0~ubuntu-bionic) 先看一下依......

Pulsar-V
昨天
4
0
学习笔记1-goland结构体(struct)

写在前面:若有侵权,请发邮件by.su@qq.com告知。 转载者告知:如果本文被转载,但凡涉及到侵权相关事宜,转载者需负责。请知悉! 本文永久更新地址:https://my.oschina.net/bysu/blog/3036...

不最醉不龟归
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部