访问android平台的通话记录CallLog

Android 手机来电 获取来电信息,接听/挂断电话 之前看了许多博客,结果发现,很多都是1几年的文章,很多方法都已经被废弃了,或者不适配高版本的android系统,于是去查了查开发者和stack overflow,emmmm,目前这个方法可行。说实话,现在手机系统的来电展示不错了,所以这种App需要足够做的花哨好用才行,但是这又涉及用户的敏感权限和应用市场的卡脖子。监听用户手机来电,弹起App内自定义的来电展示,并且展示来电电话,用户可以接通和挂断。小于Android9时,利用反射的原理来调用方法,因为Api接口不公开了,调用不了。第三个:接听和挂断电话。 阅读详情
Android平台开放程度的确很厉害,你几乎可以调用任何底层的接口,甚至拦截到短信或者呼入电话。这些是J2ME平台无法比拟的。本文介绍一下如何访问android的通话记录。

  android平台上的通话记录是以Content Provider的形式存储在手机上的,因此你需要使用ContentResolver来查询通话记录,返回Cursor接口。如下所示:

package com.me;

import android.app.ListActivity;
import android.database.Cursor;
import android.os.Bundle;
import android.provider.CallLog;
import android.widget.SimpleAdapter;
import android.widget.SimpleCursorAdapter;

public class CallLogActivity extends ListActivity {

 @Override
 protected void onCreate(Bundle arg0) {
  super.onCreate(arg0);
  setContentView(R.layout.main);
  Cursor cursor = getContentResolver().query(CallLog.Calls.CONTENT_URI,
    null, null, null, CallLog.Calls.DEFAULT_SORT_ORDER);
  startManagingCursor(cursor);
  SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
    android.R.layout.simple_list_item_1, cursor,
    new String[] { CallLog.Calls.NUMBER },
    new int[] { android.R.id.text1 });

  setListAdapter(adapter);
 }

}

  获得了Cursor之后便可以构建一个Adapter然后调用setListAdapter()来把通话记录显示在屏幕上。CallLog类中定义了Calls类,在android中可以看到大量的内部类的设计。Calls定义了很多常量,方便你来访问通话记录,主要包括两个URI和多个字段定义,比如我们在这里用到的NUMBER。更多内容请参考Andorid doc。

  下面是/res/layout/main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
     android:layout_height="fill_parent">
   
    <ListView android:id="@+id/android:list"
          android:layout_width="fill_parent"
         android:layout_height="fill_parent"/>
   <TextView android:id="@+id/android:empty"
          android:layout_width="fill_parent"
         android:layout_height="fill_parent"
         android:text="No Notes!"/>
</LinearLayout>


Android之插入通话记录,短信箱插入短信,号码薄插入联系人 (一) 通话记录的插入。呼叫记录有三种类型:    来电:CallLog.Calls.INCOMING_TYPE  (常量值:1)    已拨:CallLog.Calls.OUTGOING_TYPE (常量值:2)    未接:CallLog.Calls.MI 阅读详情

相关推荐

Android ContentResolver CallLog 获取手机通话记录

获取手机通话记录流程:1、 获取ContentResolver; ContentResolver resolver = getContentResolver(); 2、resolver.query(*); 需要传入通话记录的URI:CallLog.Calls.CONTENT_URI 3、对查询得到的Cursor进行数据获取.主要代码如下:MainActivit

NoOneCode的博客 2386

【Andorid】关于android.provider.CallLog-通话记录

Since: API Level 1 [b]TAG:[/b] 通过addCall方法中的removeExpiredEntries()去限定CallLog最大信息量为500 [code="java"] private static void removeExpiredEntries(Context context) { final ContentResolver ...

德罗德 733

Android开发之获取手机通话记录

Android开发之获取手机通话记录

zhu530548851的专栏 5731

android calllog,android – Calllogs返回所有日志调用以及短信日志,我如何只过滤呼叫日志?...

我试图获取除短信之外的所有呼叫日志,但我得到一个合并列表.如何仅过滤呼叫的呼叫记录?我正在使用以下代码.String[] strFields = {android.provider.CallLog.Calls.NUMBER,android.provider.CallLog.Calls.TYPE,android.provider.CallLog.Calls.CACHED_NAME,android.p...

weixin_39772352的博客 500

UniApp中获取手机通话记录的方法及源代码实现

在以上示例代码中,我们首先使用plus.android.requestPermission方法向用户申请获取通话记录的权限。然后,通过调用plus.android.importClass方法导入android.provider.CallLog类,以便之后使用CallLog.Calls.CONTENT_URI来获取通话记录的内容URI。因此,在调用plus.android.requestPermission方法时,应该对用户授权结果进行判断,如果用户拒绝了权限申请,开发者应该给出相应提示或处理逻辑。

DevCyberX的博客 2099

扩展功能:在Android通话记录中显示VoWifi通话

CallLog表中包含了多个字段,其中一些常用的字段包括:NUMBER:通话对方的电话号码。DATE:通话开始的时间戳。DURATION:通话持续的时间(秒为单位)。TYPE:通话类型,例如打入、打出、错过等。NEW:标记是否为新来电,未读来电为1,已读为0。:来电者的名称(如果在联系人中有存储)。是Android提供给开发者的一种统一的内容访问接口,允许应用程序访问和修改不同数据源(包括数据库、文件等)中的数据。对于CallLog数据库的插入操作,提供了一个。

weixin_36173034的博客 628

uniapp安卓android获取手机通话记录使用plus.android接口

第一步,我们要通过plus.android.requestPermissions(['android.permission.READ_CALL_LOG', 'android.permission.WRITE_CALL_LOG', 'android.permission.CALL_PHONE']获取读取通话记录,写入通话记录,直接拨打通话记录,它的两个回调函数,一个是成功后的回调,一个失败后的回调,...

Ericu的博客 9332

AndroidCallLog获取通话记录

Android获取手机通话记录,封装工具类,显示通话记录到listview中。

android获取电话通话记录,Android获取手机通话记录

1、第一步:安卓手机通话记录是哪个文件/data/data/com.android.providers.contacts/databases/contacts2.db手机Root后,用RE管理器查看这个SQLite数据库文件。如果是来电记录,在这个数据库的call表里。2、第二步:不获取root权限的情况下查看通话记录(1)manifest.xml配置相应权限(2)代码实现public class...

weixin_32964881的博客 4851

Android call/calllog 详细流程图

Android call/calllog 详细流程图

abaqus wcm插件下载_Abaqus随机短纤维增强复合材料建模插件

文末附Abaqus随机短纤维增强复合材料建模插件下载链接前言短纤维增强复合材料相对于长纤维增强复合材料来说更容易制备,且短纤维的填充性能略有改善,可制造复杂产品,广泛应用于车辆、航空航天、建筑等行业,对短纤维增强复合材料进行细观力学分析,可对其宏观力学性能进行预测、分析破坏机理等。接下来对随机短纤维增强复合材料建模插件进行介绍。NO.1 【算法简介】难点一:此插件核心在于判断生成的纤维是...

weixin_39974882的博客 2834

android 通话记录次数

/*  * Copyright (C) 2006 The Android Open Source Project  *  * Licensed under the Apache License, Version 2.0 (the "License");  * you may not use this file except in compliance with the License.

hellolinshoujie的专栏 5622

手把手教你搞定Pattern Recognition Letters的LaTeX投稿(附elsarticle.cls生成避坑指南)

本文详细指导如何在Pattern Recognition Letters(PRL)期刊上使用LaTeX进行投稿,特别针对elsarticle.cls文件的生成与常见问题提供避坑指南。从模板准备、文件上传到投稿后的验证,系统梳理全流程技术要点,帮助研究者高效完成学术论文投稿。

weixin_33824385的博客 433

Android10 获取通话记录

Android 获取通话记录通话记录一、申请权限1.Manifest.xml 声明权限二、获取通话记录1.读取CallLog数据库2.根据cursor获取 JSONArray3.加工通话记录总结 通话记录 一、申请权限 1.Manifest.xml 声明权限 二、获取通话记录 1.读取CallLog数据库 ContentResolver resolver = context.getContentResolver(); Cursor cursor = null;

即将成为Android大师的小学徒 2598

纯JS实现SM3加密算法(兼容IE浏览器)

纯JS实现SM3加密,IE、谷歌、火狐等浏览器可以直接使用。

qianpou的博客 7358

uni-app刮奖

uni-app的刮奖效果,要注意的点: 1.小程序的canvas层级问题(可用cover-view规避) 2.不能操作dom 以下是uni-app刮奖效果的代码: <template> <!-- 刮奖 --> <view v-else class="scratch"> <view class="box"> &lt...

qq_40101922的博客 4308

Android 获取通话记录、联系人

文章目录1、简介2、代码结构3、activity_main.xml 布局文件4、AndroidManifest.xml 添加权限5、MainActivity .java 功能文件 1、简介 获取通话记录的信息 log 提示: 2、代码结构 1)mainActivity.java 功能文件 2)AndroidManifest.xml 添加相关权限 3)activity_main.xm...

Venus 的博客 2万+

应急响应之windows日志分析工具logparser使用

windows日志分析工具logparser使用介绍

u013930899的博客 8127

安卓随机通话记录_Android端通话记录读取

Android端读取手机通话记录,直接上代码:public classCallInfo {publicStringname;publicStringnumber;//号码public longdate;//日期public inttype;//类型:来电、去电、未接publicStringduration;private staticCallInfosingleton=null;public st...

weixin_39779928的博客 243

Sigrity PowerDCPackage ThermalCharacterization模式提取封装基板热阻参数-Single-Die Package DELPHI compact Thermal

DIE(定义DIE的参数):material设置为silicon(硅),Attach material(贴片的材料,设置为Die Attach),Attach thickness(贴片的材料的厚度,厚度设置为0.001mm,点击ok。Cap为覆盖材料,Material定义材料类型,thickness定义厚度,length和width定义长宽,Adhesive Material为胶的材料,Adhesive Material为胶的厚度,本例不定义,跳过即可。

weixin_54787054的博客 363

基于STM32的智能婴儿床控制系统设计(手机APP+蓝牙无线控制)(210)

项目充分运用先进的嵌入式技术和物联网理念,打造出一款集安全性、便利性、舒适性于一体的智能婴儿床控制系统,旨在减轻育儿负担,提高育儿效率,保障婴幼儿健康成长,满足现代家庭对高品质育儿生活的追求。

3478

访问通话记录CallLog

<br />    android平台上的通话记录是以Content Provider的形式存储在手机上的,因此你需要使用ContentResolver来查询通话记录,返回Cursor接口。如下所示:<br />package com.me; import android.app.ListActivity; import android.database.Cursor; import android.os.Bundle; import android.provider.CallLog; impor

JavaTiger 2395

Python 爬虫实战:华尔街见闻精选文章爬取(反反爬 + 投资情绪分析)

Python 爬虫实战:华尔街见闻精选文章爬取(反反爬 + 投资情绪分析)

yansideyucsdn的博客 970
上一篇: 关于Content Provider中Contacts的一些知识
下一篇: Android DownloadManager的用法
shareCode
博客等级 码龄15年 125粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值