Android查询短信数据库

android常用数据库字段描述
1.短信数据库
String strUriInbox = "content://sms";
Uri uriSms = Uri.parse(strUriInbox);
Cursor c_groups = managedQuery( uriSms , new String[] { "date","person" }, select, null, "date DESC");
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      //短信服务中心号码编号,可以得知该短信是从哪里发过来的见下表
2.联系人数据库
strColumnName = _sync_id  strColumnValue=null
strColumnName = primary_organization  strColumnValue=null
strColumnName = notes  strColumnValue=null
strColumnName = primary_phone  strColumnValue=1
strColumnName = status  strColumnValue=null
strColumnName = im_handle  strColumnValue=null
strColumnName = _sync_local_id  strColumnValue=null
strColumnName = im_account  strColumnValue=null
strColumnName = _sync_time  strColumnValue=null
strColumnName = im_protocol  strColumnValue=null
strColumnName = mode  strColumnValue=null
strColumnName = label  strColumnValue=null
strColumnName = times_contacted  strColumnValue=0
strColumnName = name  strColumnValue=é??è?3
strColumnName = send_to_voicemail  strColumnValue=null
strColumnName = primary_email  strColumnValue=null
strColumnName = custom_ringtone  strColumnValue=null
strColumnName = sort_string  strColumnValue=í?¤í2?í??ío3à?
strColumnName = _sync_version  strColumnValue=null
strColumnName = last_time_contacted  strColumnValue=null
strColumnName = _sync_account  strColumnValue=null
strColumnName = display_name  strColumnValue=é??è?3
strColumnName = number_key  strColumnValue=77681111831
strColumnName = number  strColumnValue=13811118677
strColumnName = phonetic_name  strColumnValue=null
strColumnName = _id  strColumnValue=1
strColumnName = type  strColumnValue=2
strColumnName = _sync_dirty  strColumnValue=1
strColumnName = starred  strColumnValue=0
4.其他数据库
//Available Uri string
content://contacts/people    //本地联系人列表信息
content://contacts/phones    //本地联系人列表信息
content://call_log/calls/    //本地通话记录        
content://mms            彩信
content://mms-sms/threadID
content://mms-sms/conversations
content://mms-sms/messages/byphone
content://mms-sms/undelivered
content://mms-sms/draft

String strUriInbox        = "content://sms/inbox";        //SMS_INBOX:1 
String strUriFailed      = "content://sms/failed";      //SMS_FAILED:2 
String strUriQueued      = "content://sms/queued";      //SMS_QUEUED:3 
String strUriSent        = "content://sms/sent";        //SMS_SENT:4 
String strUriDraft        = "content://sms/draft";        //SMS_DRAFT:5 
String strUriOutbox      = "content://sms/outbox";      //SMS_OUTBOX:6 
String strUriUndelivered  = "content://sms/undelivered";  //SMS_UNDELIVERED 
String strUriAll          = "content://sms/all";          //SMS_ALL 
String strUriConversations= "content://sms/conversations";//you can delete one conversation by thread_id 
String strUriAll          = "content://sms"              //you can delete one message by _id

时间: 2024-10-11 01:25:53

Android查询短信数据库的相关文章

android 操作短信数据库

最近在做一个短信接收器的小demo,当有未读短信时,如果查看了该短信,则将该条短信在数据库中的状态改为已读. 刚开始在自己的app中用如下方法尝试的: public void updateSmsToRead() { android.util.Log.d("zzh-debug", " updateSmsToRead id = " + mId); ContentValues values = new ContentValues(); values.put("r

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

安卓系统比起ios系统最大的缺点,相信大家都知道,就是系统安全问题.这篇博客就秀一波“黑科技”. 读取用户短信 Android应用能读取用户手机上的短信,相信已经不是什么新鲜事,比如我们收到的短信验证码,一些app马上就能自动获取并填上验证码,省去我们手动填写验证码.原理就是通过Android的ContentProvider组件间接访问系统的短信数据库,获取所有短信内容.下面来演示一下. 布局很简单,如下: 代码如下: public class MainActivity extends Acti

Android短信数据库监听回调多次问题

在监听Android短信数据库变化时.由于只能注册content://sms/ 的observer.所以,在数据库每次状态变化的时候,都会多次回调onChange 方式.目前还未找到很好的方式,解决回调多次的问题.只能通过代码逻辑来屏蔽这个问题. 目前,我使用的方式是通过时间来过滤两次的回调. long lastTimeofCall = 0L;    long lastTimeofUpdate = 0L;    long threshold_time = 10000; if (lastTimeo

Android之——短信的备份与还原

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/47091281 目前,Android手机中的一些软件可以实现手机短信的备份与还原操作.这篇博文就是要向大家介绍如何实现Android短信的备份与还原操作.好了,相信大家对这些实用的功能还是比较感兴趣的,不多说了,我们直接进入主题吧. 一.原理 我的实现原理很简单,界面上放置几个TextView列表,其中两项为"短信的备份"和"短信的还原",点击&quo

Android读取短信和联系人

读取短信和联系人经常会用到,要了解的是这是内容提供者的知识点 先说短信,要从数据库中获取数据,就要了解其结构 短信数据库在data-->data中的下面路径 它的表结构如下,有3个是我们要注意的 Java代码为 //获取内容提供者 ContentResolver contentResolver = getContentResolver(); //获取短信表的路径 Uri uri = Uri.parse("content://sms"); //设置要查询的列名 String[] l

用Xposed框架拦截Android操作系统的短信接收

短信接收原理 关于Android操作系统短信的接收和发送流程的文章网上有一大堆,但是真正说得很清楚的不多,这篇blog写得不错.其实要想真正弄懂Android操作系统短信的流程,还是Linus的那句话: Read the fucking source code.呵呵 在Android操作系统中,大部分敏感信息的传递过程都是基于binder机制的,当然SMS也不例外.对于SMS的接收流程的描述从Framework层和Application层这两个层面进行介绍. Framework层 当短信到达Fr

Android版短信 筛选/批量删除 程序(支持Android 2.3~4.4)

这是一个短信筛选/批量删除的工具类程序. 首先上图: 1.展示全部系统短信. 2.新建筛选器(支持按号码筛选和按内容筛选) 3.筛选,批量删除. 主要代码: 1.获取系统全部短信 //获取系统全部短信 private List<SmsBean> getAllSms() { final String SMS_URI_ALL = "content://sms/"; Uri uri = Uri.parse(SMS_URI_ALL); String[] projection = n

Android获取短信验证码

Android开发中关于短息验证码的设计层出不穷,越来越多的应用为了更好的提高软件的安全性,开始使用通过服务器向用户发送验证码的方式,来保护用户个人信息的安全性.无论是用户注册时的信息验证还是当用户发出找回密码请求时的短信验证,他们的工作原理大致上是一致的,因为项目的需要研究了一下关于这方面的知识,本篇我将带领大家一起实现这一当下流行的设计方案. 众所周知,短信验证需要服务器端生成一个验证码,然后发送到用户输入的手机上,这个过程需要服务器主动向客户发送验证短信,所以这是就需要一个移动或联通的发送

android 定时短信app之时间选择器(一)

DatePicker类图 主要方法 public void init(int year, int monthOfYear, int dayOfMonth, DatePicker.OnDateChangedListener onDateChangedListener) 类 TimePicker类图 setOnTimeChangedListener public void setOnTimeChangedListener(TimePicker.OnTimeChangedListener onTime