Android - 利用内容提供者删除通话记录

Posted 来世当猪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android - 利用内容提供者删除通话记录相关的知识,希望对你有一定的参考价值。

在我们拦截了电话之后,但是会在通话记录里面显示,我们将使用内容提供者进行删除

ContentResolver contentResolver = getContentResolver();

获取内容提供者

		// 呼叫记录的Uri路径
		Uri uri = Uri.parse("content://call_log/calls");
		contentResolver.delete(uri, "number = ?",new String[]  incomingNumber );
需要加入权限
    <uses-permission android:name="android.permission.READ_CALL_LOG"/>
    <uses-permission android:name="android.permission.WRITE_CALL_LOG"/>

虽然删除了电话号码记录,但是会有延迟,所以我们查询电话号码表是否改变了

					Uri uri = Uri.parse("content://call_log/calls");
					//观察呼叫记录数据库内容是否发生了变化
					getContentResolver().registerContentObserver(uri, true,
							new CallLogObserver(incomingNumber, new Handler()));
					//ContentObserver 上下文观察者
创建一个类,并继承ContentObserver 

public class CallLogObserver extends ContentObserver 
		private String incomingNumber;

		public CallLogObserver(String incomingNumber, Handler handler) 
			super(handler);
			// TODO Auto-generated constructor stub
			this.incomingNumber = incomingNumber;
		
		
		//改变删除
		@Override
		public void onChange(boolean selfChange) 
			// TODO Auto-generated method stub
			super.onChange(selfChange);
			getContentResolver().unregisterContentObserver(this);
			deletecalllog(incomingNumber);
		
	
现在在打一个电话,就不会在有电话记录了

以上是关于Android - 利用内容提供者删除通话记录的主要内容,如果未能解决你的问题,请参考以下文章

Android笔记——对系统通话记录的删除操作

删除短信和通话记录权限后无法更新 APK [重复]

android之ContentProvider和Uri具体解释

如何读取和删除通话记录中的消息?

我如何更新数据库中的通话记录数据(java android)

由于“使用短信或通话记录”权限,如何解决删除应用程序?