黑名单挂断电话及删除电话记录:
- 挂断电话
挂断电话需要申请权限android.permission.CALL_PHONE
对于黑名单号码的来电如何挂断,由于监听来电时在TelephonyManager
中进行监听的,在Android1.5
之前,
TelephonyManager
中有一个endCall()
方法能够直接挂断电话,但是后来谷歌工程师认为这样挂断电话是不安全的,所以就隐藏了这个方法。
挂断电话是Android中的一个远程服务,必须要拷贝系统的aidl文件,ITelephony.aidl,在自己的工程中新建一个包(com.android.internal.telephony)
然后将ITelephony.aidl放到这个包中,但是发现报错了,原因是还要再考一个aidl文件NeighboringCellInfo.aidl,
然后新建一个包(android.telephony)将这个aidl文件放入到这个包中。在程序中怎么使用呢?(这个ITelephony接口通常都是由TelephonyManager使用)一般都是在电话来电状态监听的时候监听到了响铃状态时就挂断电话,但是仍会在来电记录中有记录
- 删除电话记录
删除通话记录要申请权限android.permission.WRITE_CONTACTS
而且通话记录并不是在挂断电话后立即生成的,所以这里要对通话记录的内容提供者注册一个内容观察者,在内容观察者观察到内容变化的时候再删除其中的数据。