经过一下午的研究,终于弄明白了android中,关于通话记录取得的方法。下边是自己的一点心得。

final Cursor cursor = cr.query(CallLog.Calls.CONTENT_URI, new

String[] {

CallLog.Calls.NUMBER, CallLog.Calls.CACHED_NAME,

CallLog.Calls.TYPE, CallLog.Calls.DATE }, null, null,

CallLog.Calls.DEFAULT_SORT_ORDER);

final Cursor cursor =

cr.query(数据库表名,取得的数据数组(里边包含字段名称),条件,参数组,排序等信息)

//这就相当于一条SQL语句//取得所有通话信息  这里边稍微有点复杂

for (int i = 0; i < cursor.getCount(); i++)

{

cursor.moveToPosition(i);

str =

cursor.getString(0);

type =

cursor.getInt(2);

if (type == 3) {

tel = str;

break;

}

} //取得值

final Cursor cursor = cr.query(CallLog.Calls.CONTENT_URI, new

String[] {

CallLog.Calls.NUMBER }, "type=3", null,

"date desc limit 1");

//这个就是取得最近的一次未接来电的电话号码。

if(cursor.moveToFirst()){

tel =

cursor.getString(0);

}

这个取值之后和最上边的值是一样的。

CallLog.Calls.CONTENT_URI

(通话记录数据库)

CallLog.Calls.NUMBER

(通话号码)

CallLog.Calls.CACHED_NAME

(通话人姓名)

CallLog.Calls.TYPE

(通话类型)

呼叫记录有三种类型:

来电:CallLog.Calls.INCOMING_TYPE (常量值:1)

已拨:CallLog.Calls.OUTGOING_TYPE(常量值:2)

未接:CallLog.Calls.MISSED_TYPE(常量值:3)

其实还有一种类型-拒接 系统未给出常量。但经测试后得出结论为4.

CallLog.Calls.DATE

(通话时间)

需要声明的权限 在AndroidManifest.xml中加入

android:name="android.permission.READ_CONTACTS"

/>读记录

android:name="android.permission.WRITE_CONTACTS"

/>写记录

这两条是和节点同级的

如果想加入呼叫权限,还要加上

android:name="android.permission.CALL_PHONE" />

还有发送短信权限

android:name="android.permission.SEND_SMS" />

还有连接互联网权限

CallLog.Calls.CONTENT_URI

: 等价于:Uri.parse("content://call_log/calls");

android p获取通话记录_[android] 取得最近通话记录的方法相关推荐

  1. android平台获取手机IMSI,IMEI ,序列号,和 手机号的方法

    android平台获取手机IMSI,IMEI ,序列号,和 手机号的方法 1)获取运营商sim卡imsi号: String android_imsi = telephonyManager.getSub ...

  2. android 动态获取权限有哪些,Android 6.0+ 动态获取权限

    Android 6.0+ 动态获取权限 这里有一个现成的库,可以直接拿来用.方便简单 1.向app下的gradle添加依赖: dependencies{ // android 6.0+ 动态获取权限 ...

  3. android平台获取手机IMSI,IMEI ,序列号,和 手机号的方法

    1)获取运营商sim卡imsi号, String IMSI =android.os.SystemProperties.get( android.telephony.TelephonyPropertie ...

  4. android 获取粗略位置_在Android上获取用户当前位置的最简单,最强大的方法是什么?...

    在搜索最佳实现后,如何获得最佳的精确用户位置,我设法结合所有最好的方法,并提出以下类:/** * Retrieve accurate location from GPS or network serv ...

  5. android nfc识别身份正_[Android] NFC卡模拟专业版 用手机自带NFC开小区门禁 刷食堂饭卡...

    声明:免费分享,请勿买卖 Card Emulator Pro是一个功能强大且免费的NFC卡模拟器,可模拟各类门禁卡.电梯卡.部分公司工厂工卡或饭卡.部分学校饭卡.部分图书馆借书卡 等各类IC卡,用手机 ...

  6. android 数组获取指定字符串位置,android – 如何从这个json对象中提取字符串数组?...

    我正在尝试使用org.json中的类从以下json对象获取可用数字列表 { "response":true, "state":1, "data&quo ...

  7. android 怎么获取app 字体颜色,android app 修改字体

    android中可能会遇到修改字体的情况,虽然说需求比较少,但是偶尔还会遇到 可以使用三方框架来帮助我们简单做到 api "uk.co.chrisjenx:calligraphy:2.2.0 ...

  8. android 怎么获取app 字体颜色,Android APP使用自定义字体实现方法

    android系统内置字体 android 系统本身内置了一些字体,可以在程序中使用,并且支持在xml配置textView的时候进行修改字体的样式.支持字段为android:textStyle ,an ...

  9. android edittext获取 time值,在Android EditText中实现日期时间选择器(DatePicker和TimePicker)...

    利用Android应用框架提供的DatePicker(日期选择器)和TimePicker(时间选择器),实现日期时间选择器. Dialog的Content布局文件(date_time_dialog.x ...

最新文章

  1. 从系统设计到市场痛点,浅谈英国自助结账系统
  2. 设计过程中常见的 10 个小问题
  3. SpringSecurity认证
  4. xshell常用的命令
  5. sqlserver 2008安装总是弹出重启提示
  6. fegin需要实现类_【第24条】静态成员类优于非静态成员类
  7. Dev Treelist使用经验(2)
  8. 【组件】大数据框架安装功能来划分
  9. 支付宝相关信息会被泄露出去吗?
  10. bat导出远程oracle数据,windows 任务计划 实现oracle远程 数据库备份
  11. 靠播放业务吃不饱?音乐流媒体纷纷“加电商”卖周边
  12. android 取消选中状态,Android:显示/隐藏偏好检查/取消选中其他CheckBoxPreference
  13. 关键系统进程 C:\Windows\system32\lsass.exe 失败,状态代码是 255。现在必须重新启动计算机。
  14. 解释计算机网络英文缩写CA,计算机网络名词英文缩写
  15. 十二星座谁最不会顾及别人感受?
  16. 检索策略(抓取策略)
  17. 关于蓝牙打印机的一些问题
  18. python工程师的职业规划_一名Python开发工程师的职业规划
  19. 电脑控制台命令的简单操作方式(黑窗口)
  20. [转帖]粤语语系分类

热门文章

  1. 昆山第二中等专业学校计算机分数线,昆山第二职业中学录取分数线
  2. pta段错误怎么办_语文名师提醒:错误的阅读习惯导致孩子成绩下降
  3. buffer sort Oracle,[转]BUFFER SORT是BUFFER却不是SORT
  4. easyexcel根据模板写入_用 Vue+ElementUI 搭建后台管理极简模板
  5. 保存图像_设计干货知识:SVG vs PNG vs JPG|图像格式的优缺点
  6. python编程学习笔记_python编程:从入门到实践学习笔记-Django开发用户账户(一)...
  7. linux创建文件怎么输入换行_Revit 怎么创建自定义的族文件?
  8. excel数据库_将excel文件导入mysql数据库教程(PHP实现)
  9. python怎么导入数据包_python – Scapy:如何在现有数据包中插入新层(802.1q)?
  10. 软件自动升级ftp服务器,国人自己的专业FTP服务器软件(上)