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

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

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

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

布局文件

  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns: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. packagexiaohang.zhimeng;
  2. importandroid.app.ListActivity;
  3. importandroid.database.Cursor;
  4. importandroid.net.Uri;
  5. importandroid.os.Bundle;
  6. importandroid.widget.ListAdapter;
  7. importandroid.widget.SimpleCursorAdapter;
  8. publicclassSMSINboxDemoextendsListActivity{
  9. privateListAdapteradapter;
  10. privatestaticfinalUriSMS_INBOX=Uri.parse("content://sms/inbox");
  11. @Override
  12. publicvoidonCreate(BundlesavedInstanceState){
  13. super.onCreate(savedInstanceState);
  14. Cursorc=getContentResolver()
  15. .query(SMS_INBOX,null,null,null,null);
  16. startManagingCursor(c);
  17. String[]columns=newString[]{"body"};
  18. int[]names=newint[]{R.id.row};
  19. adapter=newSimpleCursorAdapter(this,R.layout.main,c,columns,
  20. names);
  21. setListAdapter(adapter);
  22. }
  23. }



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

android 访问SMS短信收件箱

请大家确保自己的收件箱中有 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

更多相关文章

  1. Android实现系统下拉栏的消息提示——Notification
  2. Android开发之消息处理机制(二)——消息循环
  3. Android消息通知
  4. 第10章 Android的消息机制
  5. Android应用程序消息处理机制(Looper、Handler)分析(4)
  6. Android开发实践:自定义带消息循环(Looper)的工作线程

随机推荐

  1. Android APK常驻内存解决方案
  2. Android Toolbar
  3. android 存储联系人(save contact) 总结
  4. scrollbarsstyle
  5. Android(安卓)侧滑(双向滑动菜单)效果
  6. Android源码分析(四)-----Android源码编译
  7. ListView使用技巧
  8. Android SharedPreferences和File
  9. android中SharedPreferences和Preference
  10. ANDROID模拟器不能启动