`
quanminchaoren
  • 浏览: 926521 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Android 短信数据库详细介绍

 
阅读更多
Android 短信数据库详细总结分析
短信 sms 
文件 /data/data/com.android.providers.telephony/databases/mmssms.db 
这个数据库有13张表,sms表存了短信信息。 

sms表的uri是        
public   static   final  Uri CONTENT_URI =               Uri.parse("content://sms" ); 
表项含义,我猜的 
strColumnName=_id strColumnValue=48 //短消息序号 
strColumnName=thread_id strColumnValue=16 //对话的序号(conversation)
strColumnName=address strColumnValue=+8613411884805 //发件人地址,手机号
strColumnName=person strColumnValue=null //发件人,返回一个数字就是联系人列表里的序号,陌生人为null
strColumnName=date strColumnValue=1256539465022 //日期 long型,想得到具体日期自己转换吧!
strColumnName=protocol strColumnValue=0 //协议
strColumnName=read strColumnValue=1 //是否阅读
strColumnName=status strColumnValue=-1 //状态
strColumnName=type strColumnValue=1 //类型 1是接收到的,2是发出的
strColumnName=reply_path_present strColumnValue=0 //
strColumnName=subject strColumnValue=null //主题
strColumnName=body strColumnValue=您好 //短消息内容
strColumnName=service_center strColumnValue=+8613800755500 //短信服务中心号码编号,可以得知该短信是从哪里发过来的

把源码补上。 
在frameworks/base/core/java/android/provider/Telephony.java 
/**     * The thread ID of the message     * <P>Type: INTEGER</P>     */     
public   static   final  String THREAD_ID =  "thread_id" ;       
/**     * The address of the other party     * <P>Type: TEXT</P>     */     
public   static   final  String ADDRESS =  "address" ;       
/**     * The person ID of the sender     * <P>Type: INTEGER (long)</P>     */     
public   static   final  String PERSON_ID =  "person" ;       
/**
   * The date the message was sent
    * <P>Type: INTEGER (long)</P>     */   
public   static   final  String DATE =  "date" ;       
/**
    * The protocol identifier code
    * <P>Type: INTEGER</P>     */     
public   static   final  String PROTOCOL =  "protocol" ;
       /**
    * Has the message been read
    * <P>Type: INTEGER (boolean)</P>     */     
public   static   final  String READ =  "read" ;          
/**
    * The TP-Status value for the message, or -1 if no status has
    * been received     */     
public   static   final  String STATUS =  "status" ;   us 举例:    
public   static   final   int  STATUS_NONE = - 1 ;    
public   static   final   int  STATUS_COMPLETE =  0 ;    
public   static   final   int  STATUS_PENDING =  64 ;    
public   static   final   int  STATUS_FAILED =  128 ;     
/**
    * The type of the message
    * <P>Type: INTEGER</P>     */     
public   static   final  String TYPE =  "type" ;    举例    
public   static   final   int  MESSAGE_TYPE_ALL    =  0 ;    
public   static   final   int  MESSAGE_TYPE_INBOX  =  1 ;    
public   static   final   int  MESSAGE_TYPE_SENT   =  2 ;    
public   static   final   int  MESSAGE_TYPE_DRAFT  =  3 ;    
public   static   final   int  MESSAGE_TYPE_OUTBOX =  4 ;    
public   static   final   int  MESSAGE_TYPE_FAILED =  5 // for failed outgoing messages   
 
public   static   final   int  MESSAGE_TYPE_QUEUED =  6 // for messages to send later         
 /**
    * Whether the <code>TP-Reply-Path</code> bit was set on this message
    * <P>Type: BOOLEAN</P>     */     
public   static   final  String REPLY_PATH_PRESENT =  "reply_path_present" ;     
 /**
    * The subject of the message, if present
    * <P>Type: TEXT</P>     */     
public   static   final  String SUBJECT =  "subject" ;          
/**
    * The body of the message
    * <P>Type: TEXT</P>     */     
public   static   final  String BODY =  "body" ;        
 /**
    * The service center (SC) through which to send the message, if present
    * <P>Type: TEXT</P>     */     
public   static   final  String SERVICE_CENTER =  "service_center"
分享到:
评论

相关推荐

    android 监听短信数据库

    以下是对“android 监听短信数据库”这一主题的深入解析,包括关键代码片段的解释和相关知识点的详细说明。 ### 关键知识点 #### 1. ContentObserver类的使用 `ContentObserver`是Android系统中用于监听...

    Android短信数据库基础(开发资料)

    总结起来,Android短信数据库的基础知识涉及数据库的路径、主要表格及它们之间的关联。通过掌握这些知识,开发者可以有效地读取、管理和操作Android设备上的短信数据,从而实现各种定制化的短信功能。

    Android实现将已发送的短信写入短信数据库的方法

    首先,理解Android短信数据库的结构至关重要。短信数据库主要由系统维护,通常位于`/data/data/com.android.providers.telephony/databases/mmssms.db`路径下,这是一个SQLite数据库。数据库中有多个表,包括`sms`表...

    android短信误删除恢复app

    该app用于将误删除的短信恢复。以txt的形式保存在手机里

    多方发送短信及数据库

    标题中的“多方发送短信及数据库”是一个Android应用开发的话题,主要涵盖了两个核心概念:短信的多用户发送功能和数据库操作。在Android系统中,开发者可以利用API来实现短信的发送,同时结合数据库来存储和管理收...

    Android黑科技之读取用户短信+修改系统短信数据库

    这篇关于"Android黑科技之读取用户短信+修改系统短信数据库"的内容主要展示了如何利用Android的API和技术手段来实现这一功能。首先,我们要明确一点,这种操作通常需要相应的权限,如`READ_SMS`和`WRITE_SMS`,并且...

    android系统内置数据库字段描述

    Android系统内建了多个数据库,如短信数据库、联系人数据库等,这些数据库支持应用程序进行数据交互和管理。以下将详细阐述这些数据库的主要字段及其作用。 1. **联系人数据库**: - `_id`:每个联系人的唯一...

    sms.zip_Android 数据库_android_android sms_sms

    下面将详细介绍这个主题中的关键知识点。 1. **SQLite数据库**:SQLite是Android系统内置的数据库解决方案,它无需服务器进程,可以直接在应用程序中使用。SQLite支持SQL标准,并提供了创建、查询、更新和删除数据...

    Android获取手机短信

    你可以使用`ContentResolver`和`Uri`来查询短信数据库。通常,短信存储在`content://sms/`这个URI下,分为收件箱(inbox)、草稿箱(drafts)、发件箱(sent)和已发送(outbox)四个类别。 ```java ...

    Android代码-一个短信应用源码.zip

    通过ContentResolver,可以查询、插入、更新或删除短信数据库中的记录。 6. **通知与权限管理**: - 当新短信到达时,应用可能需要显示通知提醒用户。同时,考虑到隐私和权限控制,应用需要适当地引导用户授予必要...

    Android SMSNotify Android 短信通知源码

    【Android SMSNotify】是一款专为Android...通过对`SMSNotify`源码的学习和理解,开发者不仅可以掌握Android短信通知的实现方式,还能深入了解Android系统的组件交互、权限管理、数据存储以及性能优化等多方面知识。

    Android上监听收到的短信(SMS)

    本文将详细介绍两种主要方法:通过广播监听短信消息和通过短信数据库获取短信内容。 **方式一:通过广播监听短信消息** 在Android系统中,可以通过注册一个BroadcastReceiver来监听系统的Intent,特别是ACTION_SMS...

    简易的android短信管理器代码

    以上就是实现一个简易的Android短信管理器涉及的主要技术点,涵盖了Android的权限管理、广播机制、SMSManager、UI设计以及数据库操作等多个方面。通过学习和实践这些知识点,开发者可以构建出功能完善的短信应用。

    android 短信中心号

    2. **查询短信表**:Android系统中的`SMSProvider`允许我们读取短信数据库。我们可以查询`content://sms`内容提供者来找到短信设置中包含SMSC号码的短信。通常,这种短信是一种特殊的服务消息,由运营商发送,包含...

    获取短信内容

    以上就是获取Android短信内容的基本步骤和涉及的关键技术点。在实际开发中,你可能需要考虑更多细节,如处理无权限的情况、优化性能以及在多线程环境中安全地操作Cursor等。希望这些信息能帮助你在项目中成功实现...

    一个android短信程序.源码

    【Android短信程序源码解析】 Android短信程序是一个用于在移动设备上发送和接收短信的应用,其核心功能包括自定义编辑短信、短信分类以及收藏功能。这个"短信小窝"源码提供了一个完整的实现,让我们来深入探讨其中...

    android 获取手机短信内容并及时刷新短信

    在Android中,短信数据存储在SQLite数据库中的`sms`表中,我们可以通过ContentResolver和Uri对象来访问这些数据。Uri对象`content://sms/`代表了短信的全局内容提供者,ContentResolver则提供了操作数据的接口。以下...

    android系统常用数据库

    下面将详细介绍Android系统常用数据库及其相关知识点。 1. SQLite数据库: SQLite是Android平台上的默认数据库解决方案,它无需单独服务器进程,直接嵌入到应用中。SQLite提供了一个事务处理机制,保证了数据的...

    传智播客_Andorid_20天精通Android开发视频_第13天视频_视频_06_通过内容解析者访问短信数据库

    传智播客_Andorid_20天精通Android开发视频_第13天视频_视频_06_通过内容解析者访问短信数据库.avi

Global site tag (gtag.js) - Google Analytics