Android 手机来电 获取来电信息,接听/挂断电话
目录
1.需求描述
2.实现原理
第一个:手机来电状态
第二个:获取手机来电号码
第三个:接听和挂断电话
1.需求描述
监听用户手机来电,弹起App内自定义的来电展示,并且展示来电电话,用户可以接通和挂断。
2.实现原理
这儿我就总结下手机来电、获取手机号码和接听/挂断电话,弹起App的来电展示界面使用的windowmanager。
第一个:手机来电状态
权限
private lateinit var telephonyManager: TelephonyManager
private lateinit var mPhoneListener: PhoneStateListener
//在你的onCreate里
......
telephonyManager = getSystemService(Context.TELEPHONY_SERVICE) as TelephonyManager
//在注册监听的时候就会走一次回调,后面通话状态改变时也会走
//如下面的代码,在启动服务时如果手机没有通话相关动作,就会直接走一次TelephonyManager.CALL_STATE_IDLE
mPhoneListener = object : PhoneStateListener() {
override fun onCallStateChanged(state: Int, phoneNumber: String?) {
super.onCallStateChanged(state, phoneNumber)
when (state) {
//挂断
TelephonyManager.CALL_STATE_IDLE -> {
//toast("挂断${phoneNumber}")
Log.i("TAG", "onCallStateChanged: 挂断${phoneNumber}")
}
//接听
TelephonyManager.CALL_STATE_OFFHOOK -> {
Log.i("TAG", "onCallStateChanged: 接听${phoneNu
