android 访问SMS短信收件箱

访问 SMS收件箱是另一个常见的需求。首先,需要将读取 SMS 的权限

  1. <uses-permission android:name="android.permission.READ_SMS"/>

添加到描述文件中。添加此权限后就可以读取SMS收件箱中的 短消息了。

要读取 SMS 消息,必须对SMS收件箱执行查询,下面是我们的 代码清单。

布局文件

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"
  4. android:layout_width="fill_parent"
  5. android:layout_height="fill_parent"
  6. >
  7. <TextView
  8. android:id="@+id/row"
  9. android:layout_width="180dip"
  10. android:layout_height="30dip"
  11. android:textSize="10pt"
  12. android:singleLine="true"
  13. />
  14. </LinearLayout>

我们自定义的ListActivity

  1. package xiaohang.zhimeng;
  2. import android.app.ListActivity;
  3. import android.database.Cursor;
  4. import android.net.Uri;
  5. import android.os.Bundle;
  6. import android.widget.ListAdapter;
  7. import android.widget.SimpleCursorAdapter;
  8. public class SMSINboxDemo extends ListActivity {
  9. private ListAdapter adapter;
  10. private static final Uri SMS_INBOX = Uri.parse("content://sms/inbox");
  11. @Override
  12. public void onCreate(Bundle savedInstanceState) {
  13. super.onCreate(savedInstanceState);
  14. Cursor c = getContentResolver()
  15. .query(SMS_INBOX, null, null, null, null);
  16. startManagingCursor(c);
  17. String[] columns = new String[] { "body" };
  18. int[] names = new int[] { R.id.row };
  19. adapter = new SimpleCursorAdapter(this, R.layout.main, c, columns,
  20. names);
  21. setListAdapter(adapter);
  22. }
  23. }

上面的代码打开 SMS收件箱并创建了一个列表,列表中的每一项都包含 SMS消息的正文部分。我们的布局文件就只包含了一个简单的 TextView,它包含列表项中每条消息的正文。要获得消息列表,可以创建指向 SMS收件箱的 URI (content://sms/inbox),然后执行简单查询。然后对 SMS消息的正文进行过滤,并设置  ListActivity的列表 适配器。执行上面的代码将看到收件箱中的消息 ,效果图 如下。

请大家确保自己的收件箱中有 SMS消息。

因为可以访问SMS收件箱,所以将能够访问其他与SMS 相关的文件夹,比如已发送文件夹或草稿箱文件夹。访问收件箱与访问其它文件夹的唯一区别就在于所指定的 URI。例如,可以对 content://sms/sent 执行查询来访问已发送的文件夹。以下是完整的 SMS文件夹列表和每个文件夹的URI。 
    
    所有文件夹:content://sms/all 
   收件箱:content://sms/inbox 
   已发送:content://sms/sent 
   草稿:content://sms/draft 
   发件箱:content://sms/outbox 
   发送失败:content://sms/failed 
   排队消息:content://sms/queued 
   未送达:content://sms/undelivered

对话:content://sms/conversations

android 访问SMS短信收件箱

时间: 2024-10-02 23:12:53

android 访问SMS短信收件箱的相关文章

Android4.4 往短信收件箱中插入自定义短信(伪造短信)

这段时间稍微有点空闲,把前一段学习Android做过的一些小项目整理整理.虽然没有什么工程量很大的项目,但是对于一个新手,解决这些问题还是花了一段时间.感觉还是非常有记录的意义呢~~~么么哒*—* 今天要说明的这个项目,是要在Android手机里伪造一条短信,也就是在短信箱中插入一条自定义的短信,看上去就像自己的手机里收到了新的信息,但其实这并不是一条通过通信运营商的网络发过来的信息,这是一条假的信息. 在Android4.4之前的版本,往短信箱插入信息很方便,所以这个对用户来说很有威胁的漏洞,

基于android 社区app短信分享 发送回调事件实现

概要 前段时间,因为项目的需要,使用ShareSDK的分享功能,其中包括 短信分享吗,并且在调用系统短信分享成功后要与服务器进行交互处理(我这里不关心,对方能否收到,只关心发出去了).但是ShareSDk并不支持短信分享的回调功能,咨询了技术客服,也没有讨论出解决方案来.于是自己尝试粗略实现了一下. 方法 在调用系统短信发送后,通过内容观察者监听 短信发件箱的改变,如果监听到有内容改变的短信ID,那么获取当前的内容并检测其中是否含有某些关键字( 当然,这个关键字是我们自己定义的,例如:"jarl

一盘很大的棋:Android Wear要做用户唯一的收件箱

在今年的Google I/O 2014上,Google用一组数据告诉了我们:"安卓月活跃用户达 10 亿,用户每天点亮.解锁手机 1000 亿次". 这么算下来,一个合格的安卓用户每天都要解锁100此次呀.亲,你及格了么?三分钟一次信息提醒,五分钟两次消息推送,一个强迫症怎么可能经受的住这种折磨呢?总有收到新消息的错觉,总有遗漏信息的幻觉,无数次的点亮.解锁手机就成了必修课. Google已经看到了智能手机时代的上述问题,不会让这样的问题再延续到智能手表上,想要借助新的工具和战场,真正

JavaMail读取收件箱退信邮件/分析邮件附件获取Message_Id

需求描述:公司最近有个项目邮件通知功能,但是客户上传的邮件地址并不一定存在,以及其他的各种问题.所有希望发送通知后有个回执,及时发现地址存在问题的邮箱. 需求分析:经过分析JavaMail可以读取收件箱邮件,我们可以通过对应通知的退信来回写通知状态.那么问题来了,发送通知和退信如何建立映射?经过调研,最终确定采用以下方案解决. 映射方案: 在发送邮件通知时在Header中指定自定义的Message_Id,作为唯一标示,本系统中采用UUID. 定时任务扫描服务器邮箱的收件箱,本系统我们搜索收件箱中

android 中管理短信

为了看代码方便,一边在网上google资料,一边看Android java 源代码. 偶然发现了一个类MmsSmsDatabaseHelper.java,原来android将所有的短信信息都存入了mmssms.db中. 公开的SDK中没有这个类,不能直接使用.于是自己写了一个SQLiteOpenHelper,但是查询的时候发生SQL异常. 看来不能为所欲为了,不过据网上资料介绍可以拷贝db文件来实现短信数据备份. 既然每个db跟package名相关,建立了一个package为com.androi

android 管理手机短信

为了看代码方便,一边在网上google资料,一边看Android java 源代码. 偶然发现了一个类MmsSmsDatabaseHelper.java,原来android将所有的短信信息都存入了mmssms.db中. 公开的SDK中没有这个类,不能直接使用.于是自己写了一个SQLiteOpenHelper,但是查询的时候发生SQL异常. 看来不能为所欲为了,不过据网上资料介绍可以拷贝db文件来实现短信数据备份. 既然每个db跟package名相关,建立了一个package为com.androi

Android自动读取短信验证码

Android自动读取短信验证码 extends:http://www.cnblogs.com/jiayaguang/p/4366384.html 实现自动获取手机的短信验证码,原理通过监听短信数据库的变化来解析短信,获取验证码. 直接附上代码: 1.建立一个监听数据库的类 import java.util.regex.Matcher; import java.util.regex.Pattern; import android.app.Activity; import android.data

【黑马Android】(05)短信/查询和添加/内容观察者使用/子线程网络图片查看器和Handler消息处理器/html查看器/使用HttpURLConnection采用Post方式请求数据/开源项目

备份短信和添加短信 操作系统短信的uri: content://sms/ <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.itheima28.backupsms" android:versionCode="1

android 添加手机短信,获取手机短信,删除手机短信和修改手机短信

注意添加权限: <uses-permission android:name="android.permission.READ_SMS"></uses-permission> <uses-permission android:name="android.permission.WRITE_SMS"></uses-permission> 代码如下: //更新短信 private void UpdateSMS() { /* u