[Android编程]如何操作通话记录

Android的通话记录都实现在静态类android.provider.CallLog.Calls中。

首先需要读写通话记录的的权限

<uses-permission android:name="android.permission.READ_CALL_LOG"/>
<uses-permission android:name="android.permission.WRITE_CALL_LOG"/>

?

读取



Cursor cursor = context.getContentResolver()
.query(CallLog.Calls.CONTENT_URI,
new String[] { CallLog.Calls.NUMBER,
CallLog.Calls.CACHED_NAME,
CallLog.Calls.TYPE,
CallLog.Calls.DATE,
CallLog.Calls.DURATION}, null,
null, CallLog.Calls.DEFAULT_SORT_ORDER);

写入

ContentValues values = new ContentValues();
values.put(CallLog.Calls.NUMBER, "13200000002");
values.put(CallLog.Calls.TYPE, CallLog.Calls.OUTGOING_TYPE);
values.put(CallLog.Calls.DATE, System.currentTimeMillis());
values.put(CallLog.Calls.DURATION, 1);
context.getContentResolver().insert(CallLog.Calls.CONTENT_URI, values);

解释一下各字段的含义:

public static final String NUMBER:电话号码,TEXT

public static final String TYPE: 通话记录类型,可为呼入INCOMING_TYPE,呼出OUTGOING_TYPE和未接MISSED_TYPE。

public static final String CACHED_NAME:缓存的联系人名字, TEXT

public static final String DATE: 发生通话的时间,INTEGER

public static final String DURATION: 通话进行的时间,INTEGER

常用的应该就这么多。

[Android编程]如何操作通话记录

时间: 2024-10-08 21:04:50

[Android编程]如何操作通话记录的相关文章

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

手机通话记录是保存在数据库中的,位置:  /data/data/com.android.providers.contacts/databases/calllog.db ,表名:calls 这张表中有个type字段,属性值为常量值: 来电:CallLog.Calls.INCOMING_TYPE (常量值:1) 已拨:CallLog.Calls.OUTGOING_TYPE(常量值:2) 未接:CallLog.Calls.MISSED_TYPE(常量值:3) 这是最常见的,number字段表示电话号码

操作Android中联系人,通话记录,短息,的URI,和具体的查询语句,字段注解。(根据自己需求)

记住读取联系人需要配置权限:<uses-permission android:name="android.permission.READ_CONTACTS" /> <uses-permission android:name="android.permission.WRITE_CONTACTS" /> 读取联系人的URI: /** * 所有联系人的查询语句 * cotacts2联系人数据库中 * 与联系人相关的几张数据表 * contacts

Android通讯录管理二之通话记录获取

上一篇博客讲的是获取联系人信息,这篇是获取通话记录 同样你可以在这里下载http://download.csdn.net/detail/waniu123/8554533 package cn.zxw.contact.domain; /** * 通话记录 * @author zhan * */ public class CallLogInfo { public String number; public long date; public int type; public CallLogInfo(

Android批量添加通话记录

在前面有提到批量添加联系人:Android批量添加联系人到通讯录,通话记录和通讯录一样都是直接操作ContentProvider.为了使批量更新.插入.删除数据更加方便,android系统引入了 ContentProviderOperation类,使用ContentProviderOperation的理由 1.所有的操作都在一个事务中执行,这样可以保证数据完整性 2.由于批量操作在一个事务中执行,只需要打开和关闭一个事务,比多次打开关闭多个事务性能要好些 3.使用批量操作和多次单个操作相比,减少

【工作记录】android手势事件操作记录

/* 用户按下触摸屏.快速移动后松开 public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { //参数解释: // e1:第1个ACTION_DOWN MotionEvent // e2:最后一个ACTION_MOVE MotionEvent // velocityX:X轴上的移动速度,像素/秒 // velocityY:Y轴上的移动速度,像素/秒 // 触发条件 : /

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

1.编写代码需要注意bug: 再删除通话记录的时候,删除的是以前的通话记录,本次拦截下来的电话号码,通话记录没有删除?????? 问题原因:数据库中本次通话记录的电话号码还没有插入,就做了删除操作 2.bug解决方法: 内容提供者:对外提供数据库的访问方式 内容解析器:用内容提供者提供的访问方式Uri,访问数据库(增删改查) 内容观察者:观察数据库的变化,一旦数据发生改变,调用相应方法 通过内容观察者,观察数据库的插入,一旦有插入,则做删除此条插入数据操作 public void endCall

Android通讯录管理(获取联系人、通话记录、短信消息)(二)

http://blog.csdn.net/wwj_748/article/details/19970271 Android通讯录管理(获取联系人.通话记录.短信消息)(二) 2014-02-26 11:40 9076人阅读 评论(11) 收藏 举报  分类: [Android通讯录模块开发](10)  版权声明:本文为博主原创文章,未经博主允许不得转载. Android通讯录管理(获取联系人.通话记录.短信消息)(二) 前言:上一篇博客介绍的是获取联系人的实现,本篇博客将介绍通话记录的实现. 同

android 通话记录条数的限制

在frameworks\base\core\java\android\provider下面有CallLog.java,这支文件里,每当完成一通电话向call表中插入一条callLog记录后,调用removeExpiredEntries这个函数将超过500条的那条记录 如果要对其限制条件进行修改的话,可以对这个函数进行 E.g:根据不同类型的通话记录对其进行限制,步骤如下: 1.首先对函数添加一个callType的参数(INCOMING_TYPE = 1; OUTGOING_TYPE = 2; M

Android 插入数据工具 实现无限制条数插入通话记录、联系人、短息和彩信

1.支持无限制条数批量高效写入通话记录.联系人.彩信等. 2.支持写入过程中实时显示进度提示. 3.支持写入过程中手动停止写入操作. 4.设置中可以打开或关闭声音和震动提示. 效果图如下:   下载地址: http://pan.baidu.com/s/1rvNdk 需要源码的请在评论区留下邮箱.