`
android_mylove
  • 浏览: 399712 次
社区版块
存档分类
最新评论

Android SMS(一) —— 读取短信

 
阅读更多

Android SMS Read

AndroidManifest.xml 权限

记得在AndroidManifest.xml中加入android.permission.READ_SMS这个permission

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


运行结果:


代码示例



URI主要有:

content://sms/ 所有短信
content://sms/inbox 收件箱
content://sms/sent 已发送
content://sms/draft 草稿
content://sms/outbox 发件箱
content://sms/failed 发送失败
content://sms/queued 待发送列表


sms主要结构:
  1. _id => 短消息序号 如100
  2. thread_id => 对话的序号 如100
  3. address => 发件人地址,手机号.如+8613811810000
  4. person => 发件人,返回一个数字就是联系人列表里的序号,陌生人为null
  5. date => 日期long型。如1256539465022
  6. protocol => 协议0SMS_RPOTO,1MMS_PROTO
  7. read => 是否阅读0未读,1已读
  8. status => 状态 -1接收,0complete,64pending,128failed
  9. type => 类型1是接收到的,2是已发出
  10. body => 短消息内容
  11. service_center => 短信服务中心号码编号。如+8613800755500
String[] projection = new String[]{"address", "body"};
Cursor cursor = getContentResolver().query(uri, projection, "where .." new String[]{"", ""}, "order by ..")


Android短信存储数据库

偶然发现了Android源码中的一个类MmsSmsDatabaseHelper.java,原来android将所有的短信信息都存入了mmssms.db中。

公开的SDK中没有这个类,不能直接使用。于是自己写了一个SQLiteOpenHelper,但是查询的时候发生SQL异常。看来不能为所欲为了,不过据网上资料介绍可以拷贝db文件来实现短信数据备份。

MmsSmsDatabaseHelper.java在Android源码中的路径:

packages/providers/TelephonyProvider/src/com/android/providers/telephony/MmsSmsDatabaseHelper.java


sms数据库中的字段如下:

_id 一个自增字段,从1开始
thread_id 序号,同一发信人的id相同
address 发件人手机号码
person 联系人列表里的序号,陌生人为null
date 发件日期
protocol 协议,分为:0SMS_RPOTO,1MMS_PROTO
read 是否阅读0未读,1已读
status 状态-1接收,0complete,64pending,128failed
type
ALL = 0;
INBOX = 1;
SENT = 2;
DRAFT = 3;
OUTBOX = 4;
FAILED = 5;
QUEUED = 6;

body 短信内容
service_center 短信服务中心号码编号
subject 短信的主题
reply_path_present TP-Reply-Path
locked


sms数据库表字段类型的源码:

packages/providers/TelephonyProvider/src/com/android/providers/telephony/MmsSmsDatabaseHelper.java


联系人为空

短信数据库里面如果你是先受到陌生短信之后再把陌生人添加到联系人列表的话,短信数据库里面的person字段就为null,如果你是先添加联系人再发短信的话,短信数据库里面的person字段就不为空了,所以你要是想通过短信数据库里的字段取得联系人的其他信息的话,只能通过地址来取。



参考推荐:

Android SMS Messaging


分享到:
评论

相关推荐

    Android课程设计——骚扰短信拦截器.zip

    总的来说,"Android课程设计——骚扰短信拦截器"是一个全面的Android开发实践项目,它涵盖了Android组件、API使用、用户界面设计、权限管理以及测试优化等多个方面。通过这个项目,开发者不仅可以提升技能,还能为...

    安卓Android源码——SMS 短信内容显示在一个 泡泡 形状的窗口中.zip

    本项目中的"安卓Android源码——SMS 短信内容显示在一个 泡泡 形状的窗口中.zip"就是一个很好的例子,它展示了如何将短信内容以一个视觉上吸引人的“泡泡”形状窗口呈现。下面我们将深入探讨这个知识点。 首先,...

    Android小应用——短信控制的浮动窗

    在AndroidManifest.xml文件中,我们需要添加必要的权限,如读取短信(READ_SMS)和写入短信(SEND_SMS)。同时,由于涉及到悬浮窗口,还需要申请SYSTEM_ALERT_WINDOW权限,这样我们的应用才能在其他应用之上显示窗口...

    【Android】短信应用——短信实时删除

    这个【Android】短信应用——短信实时删除Demo的目的是为了展示如何在Android系统中监控短信的变化,并在接收到新短信的同时立即进行删除操作。下面将详细介绍实现这一功能的关键技术和步骤。 首先,我们需要在...

    Android源码——节日短信回复助手源码.zip

    描述中提到的 "Android源码——节日短信回复助手源码.zip" 与标题一致,表明这是一个关于Android平台的软件开发资源,特别是专注于构建一个能够处理节日短信的应用。这个源码可能包含了一个完整的Android Studio项目...

    安卓Android源码——SMS 短信内容显示在一个 泡泡 形状的窗口中.rar

    5. **权限管理**: 在AndroidManifest.xml文件中,需要声明`READ_SMS`权限,以允许应用读取短信。对于Android 6.0及以上版本,还需要在运行时请求权限。 6. **UI布局设计**: 在XML布局文件中,需要为自定义的泡泡...

    安卓Android源码——Gmail备份手机短信源码.zip

    这个压缩包文件“安卓Android源码——Gmail备份手机短信源码.zip”提供了一个示例,展示了如何利用Android SDK将手机短信备份到Gmail邮箱中。通过分析这个源码,我们可以学习到以下几个关键知识点: 1. **Android...

    【Android】短信应用——短信(会话)删除

    在Android平台上,开发一款短信应用时,用户可能会有删除短信或整个会话的需求。本教程将探讨如何实现这个功能,特别是在删除短信会话方面。首先,我们要了解Android系统的短信存储结构以及如何通过编程方式访问和...

    安卓Android源码——一个短信应用源码.zip

    这里我们探讨的是一个专门处理短信功能的应用程序源码,通过分析这个"安卓Android源码——一个短信应用源码.zip",我们可以学习到许多与安卓开发相关的知识点。 1. **安卓Manifest.xml**:这是每个安卓应用的核心...

    Android源码——节日短信回复助手源码.7z

    8. **权限管理**:由于涉及到读取和发送短信,应用需要在`AndroidManifest.xml`中声明相应的权限,如`READ_SMS`和`SEND_SMS`。 9. **用户输入处理**:可能包含EditText控件供用户自定义祝福语,以及Button控件用于...

    【Android】短信应用——短信(会话)实时删除

    在Android平台上,开发一款短信应用时,实时删除短信或会话功能是不可或缺的一部分。这个功能让用户可以即时清理不再需要的对话记录,保持信息界面的整洁。本文将详细讲解如何实现【Android】短信应用中的短信(会话...

    安卓Android源码——sms1.rar

    【Android 源码解析——短信模块 SMS】 在 Android 系统中,短信服务(SMS)是核心功能之一,它允许用户发送、接收和管理文本消息。本文将深入探讨 Android 源码中的短信实现,主要关注 SMS 相关的组件、数据存储...

    安卓Android源码——节日短信回复助手源码.zip

    【安卓Android源码——节日短信回复助手源码.zip】是一个包含安卓应用开发源代码的压缩包,主要用于构建一个能够帮助用户快速回复节日祝福短信的应用。这个应用可能具有自动化和个性化的特点,使得用户在各种节日...

    安卓Android源码——sms.rar

    这个压缩包“安卓Android源码——sms.rar”很可能包含的是Android操作系统内核中与短信服务相关的源代码。深入理解这部分源码对于开发者来说至关重要,因为它涉及到了Android系统如何处理短信的发送、接收、存储以及...

    【Android】短信应用——短信信息实时获取

    Android中的短信数据存储在一个Content Provider中,名为`SMS Provider`。开发者可以通过Content Resolver与Content Provider交互来读取短信。首先,定义一个Uri常量来指向短信表: ```java Uri SMS_URI = Uri....

    Android源码——SMSPopup速读短信源码.zip

    【Android源码——SMSPopup速读短信源码】是一个专为Android平台设计的应用程序,其核心功能是提供一种快速、便捷的方式来查看和管理短信。这个应用的源码可供开发者研究学习,理解如何在Android系统中实现弹出式...

    安卓Android源码——短信语音播报源码.zip

    这个"安卓Android源码——短信语音播报源码.zip"压缩包提供的就是一个实现这一功能的示例源代码。下面我们将深入探讨这个源码中涉及的关键知识点。 1. **SMS权限与监听**: 在Android中,为了读取短信,应用需要在...

    Android源码——短信小助手源码.zip

    【Android 源码——短信小助手源码.zip】是一个包含Android应用开发源代码的压缩文件,主要用于学习和研究如何在Android平台上构建一个短信管理工具。这个应用可能提供了短信的接收、发送、查看、管理等功能,是...

Global site tag (gtag.js) - Google Analytics