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主要结构:
- _id => 短消息序号 如100
- thread_id => 对话的序号 如100
- address => 发件人地址,手机号.如+8613811810000
- person => 发件人,返回一个数字就是联系人列表里的序号,陌生人为null
- date => 日期long型。如1256539465022
- protocol => 协议0SMS_RPOTO,1MMS_PROTO
- read => 是否阅读0未读,1已读
- status => 状态 -1接收,0complete,64pending,128failed
- type => 类型1是接收到的,2是已发出
- body => 短消息内容
- 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源码——SMS 短信内容显示在一个 泡泡 形状的窗口中.zip
安卓Android源码——SMS 短信内容显示在一个 泡泡 形状的窗口中.rar
Android SMS 短信内容显示在一个 泡泡 形状的窗口中.zip Android SMS 短信内容显示在一个 泡泡 形状的窗口中.zip Android SMS 短信内容显示在一个 泡泡 形状的窗口中.zip Android SMS 短信内容显示在一个 泡泡 形状...
安卓Android源码——sms.rar
sms读取短信和contacts获取联系人
当我们注册一个app时会有短信发过来,然后把短信直接读取到登录界面的账号和密码。这样用户可以直接点击登录就好。这个Demo是我在准备这个功能时参考网络上的博客写出来的小demo。希望能对大家有所帮助。
安卓Android源码——sms1.rar
主要介绍了Android编程之SMS读取短信并保存到SQLite的方法,涉及Android针对SMS短信及SQLite数据库的相关操作技巧,需要的朋友可以参考下
Android开发学习,有序广播拦截短信
安卓Android源码——SendSMSSample.rar
Android上监听收到的短信(SMS) 方式一:通过广播监听短信消息 方式二:通过短信数据库获取短信内容
本程序的主要功能是短信语音播报,主要运行于android平台,能自动播报预设联系人发来的短信,能给我们的生活带来很大的方便。
Android SMS 发送 接收及格式
android-sms-gateway, 在Android上,运行简单的短信网关 Android短信网关应用这是一个简单的小应用程序,可以将Google云消息( GCM ) 事件转换为你手机上的outgoing消息。正在启动按照 ...
Android 短信拦截转发,基于安卓手机的短信广播处理,有短信拦截,黑名单设置,短信拦截后转发
sms短信猫接收发送多条短信,一个小的APP应用
android demo,SMS短信通知。android demo,SMS短信通知。
android 发短信源码 自己写的源码 可以拿去看看 有注释
一个运行在android上的短信收发程序
当系统收到短信时,会发出一个action名称为android.provider.Telephony.SMS_RECEIVED的广播Intent,该Intent存放了接收到的短信内容,使用名称“pdus”即可从Intent中获取短信内容。最好使用动态注册的方法,去注册...