1 手机中短信数据库相关字段包括:
_id:短信序号,如100   
address:发件人地址,即手机号,如+8613811810000,这里需要注意的是手机号是否+86,可以加上86和不加86分别测试下  
person:发件人,如果发件人在通讯录中则为具体姓名,陌生人为null   
date:日期,long型,如1256539465022,可以对日期显示格式进行设置,这里在用sqlite语句进行筛选时date字段单位是毫秒,获取系统毫秒时间的代码是:

long totalMilliSeconds = System.currentTimeMillis();   

protocol:协议0SMS_RPOTO短信,1MMS_PROTO彩信      
read:是否阅读0未读,1已读   
status:短信状态-1接收,0complete,64pending,128failed   
type:短信类型1是接收到的,2是已发出      
body:短信具体内容
读取短信内容的uri为:
Uri uri = Uri.parse(“content://sms”); //读取所有短信
Uri uri = Uri.parse(“content://sms/inbox”); //读取收件箱短信

2 在清单文件添加权限,获取短信读写权限:

<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.SEND_SMS"/> 

3 核心代码为:

private void checkSMSPermission() {if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_SMS)!= PackageManager.PERMISSION_GRANTED) {//未获取到读取短信权限//向系统申请权限ActivityCompat.requestPermissions(this,new String[]{Manifest.permission.READ_SMS}, REQ_CODE_CONTACT);} else {//执行自己的程序 }}@Overridepublic void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {//判断用户是否,同意 获取短信授权if (requestCode == REQ_CODE_CONTACT && grantResults.length > 0&& grantResults[0] == PackageManager.PERMISSION_GRANTED) {//获取到读取短信权限//执行自己的程序} else {Toast.makeText(this, "未获取到短信权限", Toast.LENGTH_SHORT).show();}}private void query() {//读取所有短信Uri uri = Uri.parse("content://sms/");ContentResolver resolver = getContentResolver();//查询条件可以根据实际业务填写,这里均为null,代表没有筛选条件//其中第三个参数代表where条件//第五个参数代表order by//第四个参数根据第三个参数来写,如果你在第三个参数里面有?,那么你在第四个写的数据就会替换掉?Cursor cursor = resolver.query(uri, new String[]{"_id", "address", "body", "date", "type"}, null, null, null);if (cursor != null && cursor.getCount() > 0) {String body;while (cursor.moveToNext()) {//存储短信内容body = cursor.getString(2);}}}
//补充:
cursor.close();//关闭游标,且释放资源
cursor.isClosed();//如果为TRUE表示该游标已关闭
cursor.getColumnCount();//返回所有列的总数
cursor.getColumnNames();//返回一个字符串数组的列名,即将列名全部返回到一个字符串数组中
cursor.getColumnName(columnIndex);//从给定的索引返回列名
cursor.getCount();//返回Cursor中的行数
cursor.moveToFirst();//移动光标到第一行
cursor.moveToLast();//移动光标到最后一行
cursor.moveToNext();//移动光标到下一行
cursor.moveToPrevious();//移动光标到上一行
cursor.moveToPosition(position);//移动光标到给定位置

参考资料:

https://blog.csdn.net/qq_42179105/article/details/82929521?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control&dist_request_id=8d7d5f2b-1b3f-4f66-b5d1-e89d3979bb04&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-3.control Android studio 获取手机短信内容并输出显示

https://blog.csdn.net/chenliguan/article/details/48316585 Android进阶之读取手机短信显示listview

https://blog.csdn.net/ALittleForward/article/details/40480389?utm_medium=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&dist_request_id=1f38157e-2fdc-42f8-ab73-f2990ab5f300&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-BlogCommendFromMachineLearnPai2-1.control 基于Android的短信应用开发

安卓开发系列 之如何获取手机短信内容相关推荐

  1. 短信开发系列(二):GSM手机短信开发之短信解码

    短信开发系列目录: 短信开发系列(一):GSM手机短信开发初探 短信开发系列(二):GSM手机短信开发之短信解码 短信开发系列(三):短信接收引擎 昨天写了短信的发送,今天我们在来谈谈如果读取SIM卡 ...

  2. Android开发之监听或获取手机短信内容

    最近开始学习安卓,要做一个可以监听手机短信的内容,做个笔记,方便以后查看 有两种方式: 方式一:通过广播监听短信信息 注册一个广播接收器 <receiver android:name=" ...

  3. android获取手机短信记录,android 获取手机电话号码和短信内容

    通过ContentResolver 获取到手机的联系人跟手机短信信息并显示出来. 1.实现的代码: package com.example.phone; import java.text.Simple ...

  4. Total Control脚本功能JS API之获取设备短信内容

    每一个设备对象都对应了 Total Control 中已连接的一台手机设备. 通过设备对象,用户可以获取到手机设备的各种属性,以及使用控制接口对设备进行各种操作,比如 打开或关闭指定APP,发送短信等 ...

  5. android 通过短信找回密码,如何通过强力安卓恢复精灵找回丢失的手机短信?

    原标题:如何通过强力安卓恢复精灵找回丢失的手机短信? 在这纷杂的生活中,我们很少能享受宁静的时光,尤其生活在都市里的男男女女,工作日忙工作,休息日也不见得休息,可能会有加班也可能会有其他的私事要处理, ...

  6. atitit 破解 拦截 绕过 网站 手机 短信 验证码 之自动获取手机短信方式 attilax 总结

    atitit.破解  拦截 绕过 网站 手机 短信 验证码 之自动获取手机短信方式 attilax 总结 1. 自动获取手机短信方式的原理 1 2. 调用api 1 3. ----核心代码 2 4.  ...

  7. JavaScript 通过plus读取android手机短信内容

    JavaScript 通过plus读取android手机短信内容. 1.获取android权限 在HBuilder工程中双击应用的"manifest.json"文件,切换到&quo ...

  8. Android开发 亲测可用--多种方式获取手机短信验证码自动填入

    Android开发 静态注册.动态注册.短信中心库监控获取手机验证码,自动复制到剪切板或或填入输入框. 友情提醒初学者:这是广播接收器的类,写在xml中静态注册或写在启动类的Oncreate方法下动态 ...

  9. java代码进行短信接收_自动化测试-自动获取手机短信验证码

    最近在做生产环境自动化测试,碰到一个难题就是短信验证码的获取,生产环境短信验证码是真实的,不能采用测试环境将短信验证码写成固定的方法解决,我的思路是:做一个apk小程序,将手机上的短信验证码实时读取出 ...

最新文章

  1. git如何忽略已经提交的文件 (.gitignore文件无效)
  2. java 扁平化_java8 stream flatMap流的扁平化操作
  3. 普渡大学电子计算机专业,普渡大学电子工程(EE)专业介绍
  4. 汽车防撞实时语音播报仪设计
  5. k8s删除deployment_k8s灾备指南(Velero)
  6. python 线程池使用
  7. 28岁少帅统领旷视南京研究院,LAMDA魏秀参专访
  8. 【蓝桥杯】CT107D开发板没有操作的led灯频闪、暗亮问题,蜂鸣器咔咔响
  9. 浅谈两点分布,二项分布,伽马分布,指数分布,泊松分布,卡方分布,t分布,F分布,均匀分布,正态分布,β分布,狄利克雷分布--概率分布家族的伦理关系
  10. YOLO-zht训练-未完待续
  11. arcpy投影(二)——基准面变换概念及参数、空间参考对象获取、变换关系获取方法梳理与解析(Spatial Reference、ListTransformations)
  12. 厦门大学计算机英语考试,【图片】一战厦大计算机上岸,经验帖。慢更【考研吧】_百度贴吧...
  13. 安卓flash插件_Flash 终将谢幕:微软将于年底停止对 Flash 的支持
  14. [软考]协议VS合同
  15. 微信小程序入门笔记(一)
  16. ubuntu 添加中文拼音输入法【转载】
  17. 成为“黑客”前,必须学习的“计算机网络通信原理”
  18. 由Elasticsearch的API命令,引发的金融业生产故障
  19. linux开发板设置时间,开发板上修改时间方法
  20. BLDC 电机的反电动势电压仿真

热门文章

  1. 第八章 ALDS1_7_C:Tree Walk 树的遍历
  2. Ajax的优点以及缺点
  3. 安装双系统遇到的问题:0xc000000e和0xc000000f
  4. 基于java网上门诊预约挂号系统
  5. arima 公式_时间序列 ARIMA 模型 (三)
  6. 【A星算法】A星寻路算法详解(小白也可以看懂+C#代码+零基础学习A*)
  7. Unity 使用Marshal类将托管内存封送到非托管内存
  8. RK3326 展频操作
  9. iomanip头文件常用函数
  10. BoradCom(博通)方案CFE操作指令