- 浏览: 32845 次
文章分类
最新评论
$ 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 670<?xml version="1.0" ... -
Eclipse Memory Analyzer 分析内存溢出
2016-10-19 11:37 0一 安装篇 1. eclipse 自 ... -
MSBuild命令行编译Xamarin 项目
2016-04-19 14:42 1204Xamarin 平台: C# language – 使用C ... -
微信聊天左滑显示删除实现
2016-04-06 18:04 898参考http://blog.csdn.net/xiaanmin ... -
Handler Thread
2016-03-21 16:42 469介绍 首先我们来看看为什么我们要使用HandlerThread ... -
Android Handler 作用
2016-03-21 15:31 397Android 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 527Listview 问题汇总: 1. it ... -
Intent与Activity启动模式相关的Flag
2015-11-27 16:08 400网上对于 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 41011. 使用relativeLayout 从右侧往左侧加,但是问 ... -
Android系统源码数据库(mmssms.db)(转)
2013-11-18 17:00 918论Android系统源码数据库(mmssms.db)中几个表之 ... -
PC 操作Android手机
2013-11-15 18:10 613https://code.google.com/p/andro ... -
下载Android source 问题
2013-10-17 10:34 637fatal: '../platform/abi/cpp.git ... -
查看Android数据库
2013-03-19 15:26 6231. adb shell; 2. cd data/data 3 ...
相关推荐
标题中的“sms.zip_Android 数据库_android_android sms_sms”暗示了这是一个关于Android短信功能的SQLite数据库开发相关的资源包。下面将详细介绍这个主题中的关键知识点。 1. **SQLite数据库**:SQLite是Android...
这个名为"Sms.rar"的压缩包包含了一个关于Android SMS(Short Message Service)功能的源码实现,特别提到了MMS(Multimedia Messaging Service)的支持,这允许发送和接收包含多媒体内容的消息。下面将详细解释这些...
标题中的“SMS.zip_android_android sms_sms”表明这是一个与Android操作系统中的短信功能相关的压缩包,包含的是与接收和处理短信有关的代码或资源。在Android系统中,短信服务(SMS)是移动设备通信的一个核心部分...
接下来,我们来讲解如何向SMS数据库插入数据。在Android中,短信数据存储在`content://sms/`这个ContentProvider中。要插入一条新的短信,可以创建一个 ContentValues 对象并填充必要的字段,如`body`(短信内容)、...
在Android开发中,监听短信数据库的变化是一项常见的需求,尤其是在实现如短信自动回复、短信通知等功能时。通过监听短信数据库,开发者可以实时获取到用户手机上接收到的新短信或已有的短信变化,从而进行相应的...
本文将深入探讨如何在Android开发中操作短信数据库,主要包括三个关键表:Canonical_addresses、Threads和Sms,以及如何利用这些表来读取短信、短信会话列表和特定联系人的短信。 1. **短信数据库路径** Android...
【标题】"SMS_Android.rar" 是一个针对 Android 平台的 SMS(Short Message Service,短信)收发程序。这个项目对于那些希望在自己的 Android 应用中集成短信功能的开发者来说,是一个非常实用的资源。 【描述】该...
在Android 6.0(API级别23)及以上版本,需要在运行时请求READ_SMS和WRITE_SMS权限,否则应用无法读取或写入短信。在Manifest.xml中声明权限的同时,需要在代码中使用RequestPermissions()方法请求用户授权。 六、...
而“Sms.zip”这个压缩包文件可能包含了关于Android短信拦截和转发的实现代码或者资源。接下来,我们将深入探讨Android短信服务,特别是如何实现拦截和转发机制。 1. **Android SMS服务**:Android提供了一个名为`...
Android的应用程序层包括系统自带的一些关键性应用程序,如SMS客户端和E-mail客户端等。这些应用程序的顺利运行依赖于Java语言的编写。由于Android的开源特性,它得到了众多开发者的认可,并在3G业务发展过程中被...
Android系统维护了一个名为`sms`的数据库表,存储所有短信信息。开发者可以使用ContentResolver和Uri(如`Uri.parse("content://sms/inbox")`)来查询、插入、更新或删除短信。 四、权限管理 在AndroidManifest....
- 短信数据库:保存短信记录,通常位于/data/data/com.android.providers.telephony/databases/mmssms.db,可以通过SmsManager类进行操作。 - 多媒体数据库:MediaStore类提供了对音频、视频、图片等多媒体文件的...
现在Android非常火的对短信备份还原的应用SmsBackUp,是一个学习如何对Android数据库操作,短信操作,邮件操作的经典范例,用它可以非常轻松的将你的Android短信备份到Gmail或者SDCard上面,用7zip进行解压
4. **Content Provider**:Android系统的短信数据存储在一个SQLite数据库中,可以通过`ContentResolver`和`Uri`来访问。`content://sms/`是短信Content Provider的URI,可以用来查询、插入、更新和删除短信记录。 5...
【标题】"gdata-samples.java-1.46.0.zip_android smsbackup pu" 提供的是一个Android应用的源代码,主要功能是SMS备份。这个应用可能使用了Google Data API(gdata)的一个特定版本1.46.0,用于数据备份和恢复,...
开发者需要在AndroidManifest.xml中申请READ_SMS权限,以便读取短信数据库。然后,可以通过ContentResolver查询SMS Provider来获取短信数据。一旦获取到短信,就可以将内容填充到我们之前创建的泡泡视图中。 为了在...
总结,访问Android SMS收件箱涉及到的内容包括理解Android的内容提供者机制、请求和处理权限,以及如何进行数据库查询。通过上述步骤,开发者能够构建起读取并处理短信的程序。对于初学者来说,这是一个很好的起点,...
2. SMS数据库的组织:在Android系统中,短信数据通常存储在SQLite数据库中,"sms.db"可能是其中一个例子。 3. 数据库浏览工具的使用:"SQLite Database Browser.exe"提供了一个方便的界面来查看和操作SQLite数据库...
接着,为了显示短信内容,我们需要访问Android的SMS Provider,这是一个SQLite数据库,存储着所有短信数据。通过ContentResolver和Uri类,我们可以查询短信表,获取特定的短信条目。例如,使用`Uri.parse("content:/...