- 浏览: 31797 次
文章分类
最新评论
$ adb shell
$ cd data/data
$ cd com.android.providers.telephony
$ cd databases
$ sqlite3 mmssms.db
sqlite> .tables
addr pdu threads
android_metadata pending_msgs words
attachments rate words_content
canonical_addresses raw words_segdir
drm sms words_segments
part sr_pending
会发现mmssms一共17个表
数据库中sms相关的字段如下:
_id primary key integer 与words表内的source_id关联
thread_id 会话id,一个联系人的会话一个id,与threads表内的_id关联 integer
address 对方号码 text
person 联系人id integer
date 发件日期 integer
protocol 通信协议,判断是短信还是彩信 integer 0:SMS_RPOTO, 1:MMS_PROTO
read 是否阅读 integer default 0 0:未读, 1:已读
status 状态 integer default-1
-1:接收,
0:complete,
64: pending,
128: failed
type 短信类型 integer
1: inbox
2: sent
3: draft56
4: outbox
5:failed
6:queued
body 内容
service_center 服务中心号码
subject 主题
reply_path_present
locked
error_code
seen
具体使用方法:
Cursor cursor = mContentResolver.query(Uri.parse("content://sms"), String[] projection, String selection, String[] selectionArgs, String sortOrder);
if(cursor!=null)
if(cursor.moveToFirst())
{String address = cursor .getString(draftCursor.getColumnIndexOrThrow("address"));}
query转义sql语句时将query函数中的参数转义为
select projection[] from sms where selection[] = selectionArgs[] order by sortOrder
由于Android2.2 Messaging中存储草稿短信时不会将address存入sms表中,而以thread_id为索引,将草稿短信的address存入canonical_addresses表中而导致仅根据协议无法查询到draft msgs address(这种设计缺陷是因为Android为了使UI更加效率而使draft msgs不同于其他类型的msgs存储方式所导致的),那么根据这样的转义方式我们可以扩展一下这种select语句使他可以查询到sms表以外的东西:
Cursor draftCursor = mResolver.query(Uri.parse("content://sms"),
new String[] {"canonical_addresses.address " +
"from sms,threads,canonical_addresses " +
"where sms.thread_id=threads._id and threads.recipient_ids=canonical_addresses._id and sms._id ='" +
String.valueOf(target_message_id) + "' --"},
null, null, null);
用到了sql语句中注释符号“--”
$ cd data/data
$ cd com.android.providers.telephony
$ cd databases
$ sqlite3 mmssms.db
sqlite> .tables
addr pdu threads
android_metadata pending_msgs words
attachments rate words_content
canonical_addresses raw words_segdir
drm sms words_segments
part sr_pending
会发现mmssms一共17个表
数据库中sms相关的字段如下:
_id primary key integer 与words表内的source_id关联
thread_id 会话id,一个联系人的会话一个id,与threads表内的_id关联 integer
address 对方号码 text
person 联系人id integer
date 发件日期 integer
protocol 通信协议,判断是短信还是彩信 integer 0:SMS_RPOTO, 1:MMS_PROTO
read 是否阅读 integer default 0 0:未读, 1:已读
status 状态 integer default-1
-1:接收,
0:complete,
64: pending,
128: failed
type 短信类型 integer
1: inbox
2: sent
3: draft56
4: outbox
5:failed
6:queued
body 内容
service_center 服务中心号码
subject 主题
reply_path_present
locked
error_code
seen
具体使用方法:
Cursor cursor = mContentResolver.query(Uri.parse("content://sms"), String[] projection, String selection, String[] selectionArgs, String sortOrder);
if(cursor!=null)
if(cursor.moveToFirst())
{String address = cursor .getString(draftCursor.getColumnIndexOrThrow("address"));}
query转义sql语句时将query函数中的参数转义为
select projection[] from sms where selection[] = selectionArgs[] order by sortOrder
由于Android2.2 Messaging中存储草稿短信时不会将address存入sms表中,而以thread_id为索引,将草稿短信的address存入canonical_addresses表中而导致仅根据协议无法查询到draft msgs address(这种设计缺陷是因为Android为了使UI更加效率而使draft msgs不同于其他类型的msgs存储方式所导致的),那么根据这样的转义方式我们可以扩展一下这种select语句使他可以查询到sms表以外的东西:
Cursor draftCursor = mResolver.query(Uri.parse("content://sms"),
new String[] {"canonical_addresses.address " +
"from sms,threads,canonical_addresses " +
"where sms.thread_id=threads._id and threads.recipient_ids=canonical_addresses._id and sms._id ='" +
String.valueOf(target_message_id) + "' --"},
null, null, null);
用到了sql语句中注释符号“--”
发表评论
-
android页面布局 中间的listView填充剩余部分
2016-12-05 17:29 639<?xml version="1.0" ... -
Eclipse Memory Analyzer 分析内存溢出
2016-10-19 11:37 0一 安装篇 1. eclipse 自 ... -
MSBuild命令行编译Xamarin 项目
2016-04-19 14:42 1137Xamarin 平台: C# language – 使用C ... -
微信聊天左滑显示删除实现
2016-04-06 18:04 852参考http://blog.csdn.net/xiaanmin ... -
Handler Thread
2016-03-21 16:42 432介绍 首先我们来看看为什么我们要使用HandlerThread ... -
Android Handler 作用
2016-03-21 15:31 369Android handler 作用: 什 ... -
Android UI 线程和子线程通信
2016-03-18 18:24 0从主线程发送消息到子 ... -
数据库升级
2016-03-07 17:09 0转自: http://892848153.iteye.com/ ... -
Android ListView 问题汇总
2016-01-11 11:16 498Listview 问题汇总: 1. it ... -
Intent与Activity启动模式相关的Flag
2015-11-27 16:08 370网上对于 Intent 的 flag 做了很多介绍,都 ... -
android 让一个控件按钮居于底部的几种方法
2015-04-09 15:00 0android 让一个控件按钮居于底部的几种方法 1.采用li ... -
Service 理解
2015-03-11 19:08 01. Service 也是运行在主线程,和Activity级别 ... -
回调 同步 异步
2014-12-16 17:34 0回调 同步 异步 -
JSON
2014-12-16 17:33 0JSON 的使用场景 -
远程service
2014-12-16 17:32 0远程Service使用场景: 1. 远程Service-- ... -
Android 实现两个控件分别靠左侧边缘和右侧边缘,且不重叠
2014-12-11 16:02 40451. 使用relativeLayout 从右侧往左侧加,但是问 ... -
Android系统源码数据库(mmssms.db)(转)
2013-11-18 17:00 881论Android系统源码数据库(mmssms.db)中几个表之 ... -
PC 操作Android手机
2013-11-15 18:10 556https://code.google.com/p/andro ... -
下载Android source 问题
2013-10-17 10:34 603fatal: '../platform/abi/cpp.git ... -
查看Android数据库
2013-03-19 15:26 5721. adb shell; 2. cd data/data 3 ...
相关推荐
android手机提取短信,sqlite3数据库开发源码
android里面,往短信和通话记录插入数据的一些代码。
现在Android非常火的对短信备份还原的应用SmsBackUp,是一个学习如何对Android数据库操作,短信操作,邮件操作的经典范例,用它可以非常轻松的将你的Android短信备份到Gmail或者SDCard上面,用7zip进行解压
该程序可以提取yaffs文件系统映像(通常由恢复备份生成)或仅在映像中搜索联系人和SMS数据库。 callog2xml 该程序将contacts2.db转换为可由Ritesh Sahu进行的“读取的XML呼叫日志。 转换您的contacts2.db,将生成的...
Android上监听收到的短信(SMS) 方式一:通过广播监听短信消息 方式二:通过短信数据库获取短信内容
Android高手进阶教程之----Android 数据库SQLiteDatabase的使用!.doc Android高手进阶教程之----Android 通用获取Ip的方法(判断手机是否联网的方法)!!!.doc Android高手进阶教程之----Android 在一个应用中如何...
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、...
这款软件做的简直可以用经典来形容,程序体积小,内存损耗小,功能强大,是一个学习如何对Android数据库操作,短信操作,邮件操作的经典范例,用它可以非常轻松的将你的Android短信备份到Gmail或者SDCard上面,而且...
6.4.3 使用Android数据库 177 6.5 内容提供器简介 189 6.5.1 使用内容提供器 190 6.5.2 本地Android内容提供器 192 6.5.3 创建一个新的内容提供器 194 6.5.4 创建和使用地震内容提供器 197 6.6 小结 206 第7...
Android进阶高级:蓝牙/WIFI SMS/MMS 应用实现 深层次解析GPS原理,实现LocationManager/LocationProvider 进行定位/跟踪/查找/趋近警告以及Geocoder正逆向编解码等技术细节 2D图形库(Graphics/View)详解 SDCARD/...
Android-SMS-应用程序 这是我为学生创建的项目,并在我42岁的学习期间得到了教学团队的验证。 该主题的目的是通过创建一个用于管理联系人,发送和接收SMS的应用程序,使学生熟悉Android系统。 主题 介绍 对于此项目...
主要介绍了Android编程之SMS读取短信并保存到SQLite的方法,涉及Android针对SMS短信及SQLite数据库的相关操作技巧,需要的朋友可以参考下
SMS Recovery是一款手机短信恢复软件,虽然软件界面为英文,但使用很简单,只需使用该软件打开手机短信的数据库文件,即可进行恢复。经过多次版本升级后,现在软件已经能够恢复手机里面所有可能恢复的数据,不会有...
Pro Bulk Sms Sender应用程序是具有材质设计主题的开源Android应用程序。 一个简单易用的Android应用程序,用于将批量SMS发送给多个收件人。 它是一个功能强大的开源应用程序,并且体积很小。 它使我们能够通过其...
9.2.1 在应用程序中使用SMS 9.2.2 发送SMS信息 9.2.3 监听SMS消息 9.2.4 紧急响应的SMS示例 9.2.5 紧急响应自动化 9.3 小结 第10章 访问Android硬件 10.1 使用媒体API 10.1.1 播放媒体资源 10.1.2 录制多媒体 10.2 ...
但是做了一次从Textra数据库到SMS备份和还原XML格式的一次性转换,这使我可以将消息重新导入到android消息数据库中。 也许仍然存在一些问题-在我有大约10条消息无法导入的13,000条消息中,每次打开几次对话都会...
本书涵盖了Android应用程序开发的所有基础,包括用户界面、网络、SMS消息传递、数据库、基于位置的服务和部署等。资深作者Wei-Meng Lee为您铺就了一条成功开发和部署Android应用程序的康庄大道。 主要内容 ◆ 讨论...
� 基于 QEMU 开发的模拟器调试手段不十分丰富,只支持通话、SMS等,速度慢。 � 暂不具备 Push Mail 和 Office(DataViz 、 QuickOffice 计划近期推出 ) 功能,目前主要面向的是普通消费 者 用户,对商业用户支持...
短信是手机常见的功能,本文就以实例形式讲述了Android实现将已发送的短信写入短信数据库的方法。分享给大家供大家参考之用。具体如下: 一般来说,把短信发送出去以后,需要把已发送的短信写入短信数据库。短信...