这里有新鲜出炉的精品教程,程序狗速度看过来!
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。
这篇文章主要介绍了Android开发实现删除联系人通话记录的方法,较为详细的分析了Android删除通话记录的原理、步骤与相关实现技巧,需要的朋友可以参考下
本文实例讲述了Android开发实现删除联系人通话记录的方法。分享给大家供大家参考,具体如下:
1. 负责存放呼叫记录的内容提供者源码在 ContactsProvider 项目下:
源码路径:
com/Android/providers/contacts/CallLogProvider.Java
使用到的数据库在:
/data/data/com.android.providers.contacts/databases/contacts2.db
表名:calls
呼叫记录有三种类型:
来电:CallLog.Calls.INCOMING_TYPE (常量值:1)
已拨:CallLog.Calls.OUTGOING_TYPE(常量值:2)
未接:CallLog.Calls.MISSED_TYPE(常量值:3)
查看源码中的声明:
- <provider android:name="CallLogProvider"
- android:authorities="call_log"
- android:syncable="false" android:multiprocess="false"
- android:readPermission="android.permission.READ_CONTACTS"
- android:writePermission="android.permission.WRITE_CONTACTS">
- </provider>
2.需要声明的权限
- <uses-permission android:name="android.permission.READ_CONTACTS" />
- <uses-permission android:name="android.permission.WRITE_CONTACTS" />
3. 系统的通话记录,是通过 ContentProvider 来对外共享的
4. Uri
CallLog.Calls.CONTENT_URI : 等价于:Uri.parse("content://call_log/calls");
5. 查询出所有记录
- ContentResolver resolver = getContentResolver();
- resolver.query(CallLog.Calls.CONTENT_URI, null, null, new String[]{"15101689022"}, null);
6. 查询某一个联系人的所有记录(按电话号码)
- resolver.query(CallLog.Calls.CONTENT_URI, null, "number=?", new String[]{"15101689022"}, null);
7. 查询某一个联系人的所有未接电话记录(按电话号码)
- resolver.query(CallLog.Calls.CONTENT_URI, null, "number=? and type=3", new String[]{"15101689022"}, null);
8. 删除某联系人最近的一次来电
- /* 本代码因为在 Activity 中,所以可以直接调用 getContentResolver()。这个方法实际上是 Context 中定义的。 */
- ContentResolver resolver = getContentResolver();
- /* 这里涉及到内容提供者的知识,其实这里是直接在操作 Android 的数据库,十分痛苦 */
- Cursor cursor = resolver.query(CallLog.Calls.CONTENT_URI, new String[]{"_id"}, "number=? and (type=1 or type=3)", new String[]{"15101689022"}, "_id desc limit 1");
- if(cursor.moveToFirst()) {
- int id = cursor.getInt(0);
- resolver.delete(CallLog.Calls.CONTENT_URI, "_id=?", new String[] {id + ""});
- }
希望本文所述对大家Android程序设计有所帮助。
来源: http://www.phperz.com/article/17/0917/347958.html