更多导航首页资讯中心软件下载单机游戏手机应用源码下载驱动下载

资讯教程业界新闻 互联网 硬件数码 安全资讯 游戏资讯 游戏攻略 手机相关 软件报道

软件下载网络软件 系统工具 应用软件 联络聊天 图形图像 多媒体类 手机软件 游戏娱乐

单机游戏动作射击 策略战略 角色扮演 体育竞技 冒险解密 模拟养成 棋牌益智 其它游戏

手机应用iPhoneSymbianWP7PPCJAVA

源码下载ASP源码 PHP源码 CGI源码 JSP源码 .Net源码 VC/C++ VB源码 C#源码

硬件驱动驱动下载硬件工具

您的位置:首页新闻编程开发网络编程编程其它

Android开发实例删除联系人通话记录实现方法

来源:维维整理作者:维维时间:2016-10-21 9:53:13我要评论(0)

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 + ""});
}

[访问统计:]
上一篇:基于java连接mysql数据库单元测试查询数据示例代码分享
下一篇:Oracle数据库ORA 54013错误怎么解决办法

相关推荐

相关软件

文章评论
发表评论