当拦截到黑名单电话后,即使挂断了电话,也会在通话记录中留下记录,因此还要将黑名单的通话记录删除。
**一、找到系统存放通话记录的表,用内容提供者监听该表的变化。**
Uri uri = Uri.parse("content://call_log/calls");
ContentResolver resolver = context.getContentResolver();
resolver.registerContentObserver(uri, true, new PhoneObserver(new Handler()));
private class PhoneObserver extends ContentObserver {
public PhoneObserver(Handler handler) {
super(handler);
}
@Override
public void onChange(boolean selfChange) {
resolver.delete(uri, null, null);
super.onChange(selfChange);
}
}
以上是简单删除通话记录的原理,具体细节可由读者自己完善;通常将这段逻辑放到服务中,删除的通话记录也只是黑名单号码,而不是全部删除。