Android获取手机通话记录

Android之读取通话记录实例 在Android 中提供了很多系统ContextProvider,通话记录就是其中的一个典型代表。下面我们以读取通话记录为例,展示如何读取系统自带的 ContextProvider 以及动态权限的处理和操作自定义的ContexProvider一样,操作系统的ContextProvider 也是使用ContentResolver 类。本实例中主要是读取通话记录,因此只需调用query()方法,传入URI即可。 为了实现读取通话记录的功能,在 Activiy 对应的布局文件 activity_main.xml 阅读详情

1、第一步:安卓手机通话记录是哪个文件

/data/data/com.android.providers.contacts/databases/contacts2.db

手机Root后,用RE管理器查看这个SQLite数据库文件。
如果是来电记录,在这个数据库的call表里。

2、第二步:不获取root权限的情况下查看通话记录

(1)manifest.xml配置相应权限

 <!-- 获取读取通讯录记录的权限 -->
    <uses-permission android:name="android.permission.READ_CALL_LOG" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.WRITE_CONTACTS" />


(2)代码实现

public classUtil {
 
    /**
     * 利用系统CallLog获取通话历史记录
     * @return
     */
    @SuppressLint("SimpleDateFormat")
    public static StringgetCallHistoryList(Context context, ContentResolver cr){
      
       Cursorcs;
       cs=cr.query(CallLog.Calls.CONTENT_URI, //系统方式获取通讯录存储地址
              new String[]{
              CallLog.Calls.CACHED_NAME,  //姓名
                         CallLog.Calls.NUMBER,    //号码
                         CallLog.Calls.TYPE,  //呼入/呼出(2)/未接
                         CallLog.Calls.DATE,  //拨打时间
                         CallLog.Calls.DURATION   //通话时长                     
                         },null,null,CallLog.Calls.DEFAULT_SORT_ORDER);
       StringcallHistoryListStr="";
       int i=0;
       if(cs!=null &&cs.getCount()>0){
           for(cs.moveToFirst();!cs.isAfterLast() & i<50; cs.moveToNext()){
              StringcallName=cs.getString(0);
              StringcallNumber=cs.getString(1);
              //通话类型
              int callType=Integer.parseInt(cs.getString(2));
              StringcallTypeStr="";
              switch (callType) {
              case CallLog.Calls.INCOMING_TYPE:
                  callTypeStr="呼入";
                  break;
              case CallLog.Calls.OUTGOING_TYPE:
                  callTypeStr="呼出";
                  break;
              case CallLog.Calls.MISSED_TYPE:
                  callTypeStr="未接";
                  break;
              }
              //拨打时间
              SimpleDateFormatsdf= newSimpleDateFormat("yyyy-MM-dd HH:mm:ss");
              DatecallDate=newDate(Long.parseLong(cs.getString(3)));
              StringcallDateStr=sdf.format(callDate);
              //通话时长
              int callDuration=Integer.parseInt(cs.getString(4));
              int min=callDuration/60;
              int sec=callDuration%60;
              StringcallDurationStr=min+"分"+sec+"秒";
              StringcallOne="类型:" + callTypeStr + ", 称呼:" + callName + ", 号码:"
                         +callNumber + ", 通话时长:" + callDurationStr + ", 时间:" + callDateStr
                         +"\n---------------------\n";
      
              callHistoryListStr+=callOne;
              i++;
           }
       }
      
       return callHistoryListStr;
    }
}


(3)使用

       TextViewtv_callHistory=(TextView) getView().findViewById(R.id.id_tv_content1);
       tv_callHistory.setText("通讯记录");
      
       //获取通话记录
       ContentResolvercr;
       cr=getActivity().getContentResolver();
       StringcallHistoryListStr=Util.getCallHistoryList(null, cr);
       tv_callHistory.setTextSize(12.0f);
       tv_callHistory.setText(callHistoryListStr);


 

从Android手机打印通话记录的 3 种简单方法 本文介绍了三种从Android手机打印通话记录的方法。第一种是通过Coolmuster Android Assistant软件在PC上查看并导出通话记录,支持多种输出格式。第二种是直接在Android设备上通过电话应用查看并截图打印通话记录。第三种是使用通话记录管理器应用将通话记录导出为Excel文件,然后打印。Coolmuster Android Assistant因其易用性、安全性和快速导出功能被特别推荐。 阅读详情

相关推荐

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

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

zhu530548851的专栏 5731

android 查询不同机型通话记录信息

通过上面代码可以获取本地通话清单所有字段,文件存储路径为根目录下:fileOut.txt。比对发现,锤子手机确实没有。结果交给客户使用后,华为、vivo、OPPO、锤子都出现闪退现象。日志抓取后,发现部分机型无法获取simid。SimInfo获取卡槽信息,比对后,卡槽0对应卡槽1,自测后数据获取完整。通过不同机型录音文件的存储路径不同,猜测不同机型的simid命名不同。simid这个字段,而小米手机有。

x158454996的博客 1595

Android ContentResolver CallLog 获取手机通话记录

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

NoOneCode的博客 2386

Android 获取通话记录

在某些App的开发者,获取通话记录有时候是必要的(现在都要申请相对于权限哦,App上架得说明为啥获取此权限)。因为工作风控数据收集经常会用到,在此做个总结。

Android 领域开发程序员,希望通过写博客的方式不断的总结提升自己,大家共同进步哦! 1539

uniapp [安卓苹果App端] - 实现获取手机通话记录列表+判断权限检查,检测权限手机通话记录是否开启并引导用户同意授权,uniApp app端如何调用本机通话记录数据与权限问题(详细示例代码)

uni-app,权限,手机通话记录,安卓Android,苹果ios,uniapp安卓android获取手机通话记录使用plus.android接口,uni-app获取通话记录 自定义基座打包能成功获取,正式打包,uniapp敏感权限检查申请获取通话记录等内容,uniapp苹果IOS系统不支持获取通话记录怎么办,Uniapp获得手机通话记录,动态权限申请获取手机短信息及通话记录,打包上架后如何获取,安卓ios权限检测,安卓和ios权限获取,获取不到通话记录权限以及通话记录,权限被拒绝了怎么办,获取通话记录报错

🏆 前端领域优质创作者 6907

Android获取手机通话记录的方法

Android如何获取手机通话记录,本文为大家揭晓。 获取手机通话记录流程: 1、 获取ContentResolver; ContentResolver resolver = getContentResolver(); 2、resolver.query(*); 需要传入通话记录的URI:CallLog.Calls.CONTENT_URI 3、对查询得到的Cursor进行数据获取. 主要代码如下: MainActivity.java package com.noonecode.contentresolvercalllogdemo; import java.text.Simple

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

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

Ericu的博客 9331

别再死磕DH参数了!用MATLAB Robotics Toolbox + SOLIDWORKS搞定六轴机械臂仿真(附避坑指南)

本文详细介绍了如何利用MATLAB Robotics Toolbox和SOLIDWORKS进行六轴机械臂仿真,避免常见的DH参数错误和模型导出问题。通过实战指南和避坑技巧,帮助工程师实现从三维建模到运动学仿真的无缝衔接,提升仿真效率和准确性。

weixin_27066963的博客 394

uniapp 获取安卓手机通话记录

uniapp vue3 获取安卓手机通话记录

m0_59591365的博客 2033

Robocopy 参数进阶:/MIR 镜像同步与 /PURGE 删除操作的风险规避指南

本文深入解析Robocopy的/MIR镜像同步与/PURGE删除操作的高级用法及风险规避策略。通过实际案例和四重防护机制,指导用户安全实现目录同步,避免数据丢失风险,特别适用于远程主机间的数据复制与备份场景。

weixin_33462927的博客 356

基于STM32的智能水温控制系统设计

智能水温控制系统广泛应用于家庭、工业、农业等多个场景,尤其在热水器、恒温泳池和地暖系统中,通过实时监测和调节水温,提高设备的效率和用户的舒适度。本文基于STM32微控制器设计了一个智能水温控制系统,能够实时监测水温、用户设置温度,并根据需要控制加热器或冷却装置,确保水温维持在设定范围内。系统能够根据用户设定自动控制加热和冷却设备,确保水温维持在舒适的范围内,并通过OLED屏实时显示水温信息。在生成的项目基础上,编写水温监测、目标温度设定、加热器和冷却装置控制、OLED数据显示以及超温报警的代码。

2401_88410555的博客 2475

安卓随机通话记录_Android获取手机通话记录的方法

Android如何获取手机通话记录,本文为大家揭晓。获取手机通话记录流程:1、 获取ContentResolver;ContentResolver resolver = getContentResolver();2、resolver.query(*);需要传入通话记录的URI:CallLog.Calls.CONTENT_URI3、对查询得到的Cursor进行数据获取.主要代码如下:MainActi...

weixin_31363913的博客 1367

C#上位机与西门子PLC全链路通信实战教程:数据采集+SQL存储+数据库报表查询+报警历史完整实现

在工业自动化领域,西门子PLC(S7-200Smart/1200/1500)凭借稳定的性能、强大的功能、完善的生态,稳居工业控制器的主流地位;而凭借开发效率高、界面美观、兼容性强、数据库操作便捷的优势,成为工业上位机开发的首选编程语言。二者的组合,是目前制造业、自动化产线、智能仓储、暖通自控等场景的绝对主流方案,也是工业上位机工程师必须吃透的核心技术栈。

这里只有干货:从 Modbus 通信到 MES 对接,从 YOLO 训练到工控机部署,带你搞定工业软件开发全流程。 1864

Android 获取手机通话记录的方法

Android 获取手机通话记录的方法

qq_27494201的博客 436

WPF实战案例 | C# WPF实现大学选课系统

WPF实战案例_C# WPF实现大学选课系统, C# WPF实现大学选课系统,大作业,毕业设计,该系统实现多身份登录、修改密码、课程的管理,个人信息的管理等功能。这个源码让你快速搭建自己的应用程序,注释完整,代码规范,各种风格都有,代码上手简单,代码独立,可以直接用程序打开,运行使用。也可直接点击EXE运行程序。

不踩坑,不知道坑有多深;不总结,踩过的坑白踩。 4624

Win11 系统下 VisualStudio2022 配置点云库 PCL1.11.1

安装完成之后打开文件夹E:\PCL 1.11.1\3rdParty\OpenNI2双击 并选择路径 (E:\PCL 1.11.1\3rdParty\OpenNI2) 安装即可全部安装完成之后,将pcl-1.11.1-pdb-msvc2019-win64.zip解压后的 .pdb文件拷贝到(E:\PCL 1.11.1\bin)中设置环境变量:到此,环境变量配置完成。

qq_53545309的博客 1126

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的博客 4850

【即插即用模块】Mamba篇 | CVPR 2025 | MaIR:新型Mamba扫描方式+通道混洗注意力,全任务涨点!

MaIR是一种新型图像恢复模型,通过嵌套S形扫描策略(NSS)和序列混洗注意力(SSA)改进传统Mamba方法。NSS采用条纹区域划分和S形扫描路径,既保留图像局部性又维持空间连续性;SSA通过通道洗牌和门控机制增强特征聚合。该模块创新性地融合多路径选择性扫描、深度卷积和注意力机制,在保持O(N)计算复杂度的同时,显著提升超分辨率和去噪等任务的性能表现(PSNR提升0.2-0.5dB)。代码实现包含特征洗牌、组卷积等关键操作,适用于高分辨率视觉任务,可作为即插即用组件替代传统自注意力模块。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 1165

通话记录查询Java_Android获取手机通话记录的方法

Android如何获取手机通话记录,本文为大家揭晓。获取手机通话记录流程:1、 获取ContentResolver;ContentResolver resolver = getContentResolver();2、resolver.query(*);需要传入通话记录的URI:CallLog.Calls.CONTENT_URI3、对查询得到的Cursor进行数据获取.主要代码如下:MainActi...

weixin_32487755的博客 760

使用 MATLAB/Simulink 搭建一个 无人机群间数据交换与协同控制仿真系统

本文提供了一份详细的Simulink无人机群协同控制仿真教程。主要内容包括:无人机群系统架构设计(去中心化网络、通信分层)、三维运动建模、空-空通信链路实现(距离判断、无线信道)、分布式Consensus控制算法开发,以及性能评估指标设定。教程采用模块化设计思路,通过ModelReference构建多无人机并行模型,并给出了MATLAB函数实现关键算法。最后展示了预期仿真结果(收敛时间<15s、位置偏差<2m)和进阶应用方向(编队飞行、AI协同等),帮助读者掌握群体智能系统的建模与仿真方法。

amy_mhd的博客 156

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Android 获取手机本地 通话记录和通讯录(kotlin)

权限 internal val COC_PERMISSION = arrayOf ( Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_PHONE_STATE, Manifest.permission.ACCESS_FINE_LOCATION, Manifest.permission.CALL_PHONE, Manifest.permission.READ_CALL_LOG, Manifest.permission.RE

Sir的专栏 2425

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

uniapp-app端-安卓获取手机联系人、短信、通话记录

1.首先去插件市场下载一个(App权限判断和提示)插件,里面包含获取Android、iOS的应用权限。我使用的是大佬弄的插件,作者是DCloud_heavensoft。

qq_44268164的博客 3407

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Android 获取手机本地 通话记录和通讯录(kotlin)(1)

今天关于面试的分享就到这里,还是那句话,有些东西你不仅要懂,而且要能够很好地表达出来,能够让面试官认可你的理解,例如Handler机制,这个是面试必问之题。有些晦涩的点,或许它只活在面试当中,实际工作当中你压根不会用到它,但是你要知道它是什么东西。最后在这里小编分享一份自己收录整理上述技术体系图相关的几十套腾讯、头条、阿里、美团等公司2021年的面试题,把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分。还有。

2401_84132496的博客 1064

Android获取手机短信和通话记录及通讯录

Android 下不同进程是通过ContentResolver共享数据的,下面通过这个类去查询手机上所有联系人的信息和通话记录,包含号码、内容、日期,通话时长等信息 一、获取手机短信信息 [java] view plain copy  print? /**       * 获取所有短信       *        * @return 

wangchaoyong5566的博客 2305
上一篇: Android:Intent Filter简介及属性(action、Category等)匹配方式说明
下一篇: Android Application Task Activities的关系
cangchen
博客等级 码龄18年 108粉丝 28原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值