Android 手机卫士8--删除通话记录

Posted 安卓笔记侠

tags:

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

1.编写代码需要注意bug:

再删除通话记录的时候,删除的是以前的通话记录,本次拦截下来的电话号码,通话记录没有删除??????
问题原因:数据库中本次通话记录的电话号码还没有插入,就做了删除操作

2.bug解决方法:

内容提供者:对外提供数据库的访问方式
内容解析器:用内容提供者提供的访问方式Uri,访问数据库(增删改查)
内容观察者:观察数据库的变化,一旦数据发生改变,调用相应方法

通过内容观察者,观察数据库的插入,一旦有插入,则做删除此条插入数据操作

public void endCall(String phone) {
	......

		//6,在内容解析器上,去注册内容观察者,通过内容观察者,观察数据库(Uri决定那张表那个库)的变化
		mContentObserver = new MyContentObserver(new Handler(),phone);
		getContentResolver().registerContentObserver(
				Uri.parse("content://call_log/calls"), true, mContentObserver);
	}
}

 

class MyContentObserver extends ContentObserver{
	private String phone;
	public MyContentObserver(Handler handler,String phone) {
		super(handler);
		this.phone = phone;
	}
	//数据库中指定calls表发生改变的时候会去调用方法
	@Override
	public void onChange(boolean selfChange) {
		//插入一条数据后,再进行删除
		getContentResolver().delete(
				Uri.parse("content://call_log/calls"), "number = ?", new String[]{phone});
		super.onChange(selfChange);
	}
}

  

  




以上是关于Android 手机卫士8--删除通话记录的主要内容,如果未能解决你的问题,请参考以下文章

如何设置drawer layout覆盖状态栏之上 android

Android 手机卫士--home页面

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

[android] 手机卫士项目

Android 项目实战--手机卫士(实现splash)

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