短信查询

原创 2012年03月27日 15:15:31

短信是记录在系统本地的mmssms.db表中的 /data/com.android.providers.telephony/databases中。

    Cursor mCursor =
    managedQuery(Uri.parse("content://sms"),
    new String[] {"_id,address,date,read,status,type,body,count(address) as "
                + "totleCount from (select _id,substr(address,4) as address,date,read,status,type,body "
                + "from sms where address like \"+86%\" union select _id,address,date,read,status,type,body "
                + "from sms where address not like \"+86%\") r group by r.address order by r.date desc --"},
                  null,
                  null,
                  null);

    这种是抛游标的方式,千万要小心处理,onPause()和onDestroy()要及时的关闭。

   if (null != mCursor && !mCursor.isClosed())
   {
       stopManagingCursor(mCursor);
   }

显示会话短信的Adapter可以使用ResourceCursorAdapter

public class FarmerAdapter extends ResourceCursorAdapter
{
    private Context mContext;
    public final class MessageHolder{
        public ImageView img_icon;
        public ImageView newSms;
        public TextView nameTextView;
        public TextView unreadCount;
        public int count;
        public TextView countTextView;
        public TextView draft;
        public TextView date;
        public TextView message;
        public String phoneNumber;
        public String name;
        public String id;}
    public FarmerAdapter(Context context, int layout, Cursor c)
    {
        super(context, layout, c);
        this.mContext = context;
    }
    @Override
    public void bindView(View view, Context context, Cursor cursor)
    {
       /**
        * 这边是写的一些逻辑代码
        */
    }
    @Override
    public View newView(Context context, Cursor cursor, ViewGroup parent)
    {
        View view = super.newView(context, cursor, parent);
        MessageHolder viewHolder = new MessageHolder();
        viewHolder.img_icon = (ImageView)view.findViewById(R.id.sms_headImage);
        viewHolder.nameTextView = (TextView)view.findViewById(R.id.name);
        viewHolder.unreadCount = (TextView)view.findViewById(R.id.unread_count);
        viewHolder.draft = (TextView)view.findViewById(R.id.draft);
        viewHolder.countTextView = (TextView)view.findViewById(R.id.all_count);
        viewHolder.date = (TextView)view.findViewById(R.id.date);
        viewHolder.message = (TextView)view.findViewById(R.id.sms_content);
        viewHolder.newSms = (ImageView)view.findViewById(R.id.newSms);
        view.setTag(viewHolder);
        return view;
    }
    @Override
    public void changeCursor(Cursor cursor)
    {
        super.changeCursor(cursor);
    }
}

可以自动的刷新界面,也可以手动刷新界面。当接收到短信时发送一个handler到短信显示界面 进行刷新。

android 系统短信数据库的查询与删除

对系统短信数据库进行操作 首先,需要如下权限 其次操作系统数据库,需要使用到系统应用提供的内容提供者,利用内容提供者进行系统数据库的增删改查的操作...
  • DucklikeJAVA
  • DucklikeJAVA
  • 2015年12月27日 18:03
  • 4951

Android下查询系统源码看短信的显示

查询系统源码看短信的显示如何写: 在providers.telephony:SmsProvider:   1.确定怎么查数据库中的表: Uri = content://sms/conversa...
  • sunalongl
  • sunalongl
  • 2013年10月28日 03:13
  • 1680

Android解析短信信息

最近做项目要解析手机中短信,获取短信有两种方式:一种是通过广播另一种就是通过数据库,由于项目需要我选择的是第二种方式,检索数据库来获取短信信息并且进行解析指定内容的短信。 在做任何一个新的功能的时候...
  • jwzhangjie
  • jwzhangjie
  • 2014年01月17日 21:56
  • 4188

免费发短信查询归属地

  • 2012年03月31日 18:58
  • 321KB
  • 下载

基于Android的高效短信查询软件的实现

  • 2012年01月18日 19:37
  • 233KB
  • 下载

英语在线翻译,火车查询,手机短信,象棋

  • 2005年12月27日 09:38
  • 16KB
  • 下载

Android发短信、打电话、查询位置

  • 2014年05月15日 20:17
  • 72KB
  • 下载

单片机短信模块控制继电器,查询温湿度

  • 2013年01月02日 23:47
  • 324KB
  • 下载

短信查询系统的设计和实现

  • 2009年12月27日 16:21
  • 246KB
  • 下载

基于Android的高效短信查询软件的实现

  • 2011年04月18日 21:49
  • 242KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:短信查询
举报原因:
原因补充:

(最多只允许输入30个字)