当前位置: 代码迷 >> Android >> Android怎么读取手机中的短信
  详细解决方案

Android怎么读取手机中的短信

热度:53   发布时间:2016-05-01 21:50:48.0
Android如何读取手机中的短信?
RT.

想知道这个怎么做?用到哪些方面的知识?有没有什么推荐的资料,谢谢~~!

------解决方案--------------------
首先创建一个接收短信的Java类文件“ReceiverDemo.java”并继承”BroadcastReceiver”;
并重写public void onReceive(Context context, Intent intent) 方法;
重写内容如下:
1: private static final String strRes = "android.provider.Telephony.SMS_RECEIVED";
2: @Override
3: public void onReceive(Context context, Intent intent) {
4: /*
5: * 判断是否是SMS_RECEIVED事件被触发
6: */
7: if (intent.getAction().equals(strRes)) {
8: StringBuilder sb = new StringBuilder();
9: Bundle bundle = intent.getExtras();
10: if (bundle != null) {
11: Object[] pdus = (Object[]) bundle.get("pdus");
12: SmsMessage[] msg = new SmsMessage[pdus.length];
13: for (int i = 0; i < pdus.length; i++) {
14: msg[i] = SmsMessage.createFromPdu((byte[]) pdus[i]);
15: }
16: for (SmsMessage currMsg : msg) {
17: sb.append("您收到了来自:【");
18: sb.append(currMsg.getDisplayOriginatingAddress());
19: sb.append("】\n的信息,内容:");
20: sb.append(currMsg.getDisplayMessageBody());
21: }
22: Toast toast = Toast.makeText(context, "收到了短消息: " + sb.toString(),Toast.LENGTH_LONG);
23: toast.show();
24: }
25: }
26: }

------解决方案--------------------
差不多 原理上我认为是这样的 定义一个广播接收者接收这个短信广播 定义它的权限码为1000 就当短信到来时 先经过我们定义的那个广播接收者 我们想怎么处理就这么处理了 是楼上那个哥们那样写
------解决方案--------------------
探讨
引用:

首先创建一个接收短信的Java类文件“ReceiverDemo.java”并继承”BroadcastReceiver”;
并重写public void onReceive(Context context, Intent intent) 方法;
重写内容如下:
1: private static final String strRes = "an……

------解决方案--------------------
以下三篇blog貌似可以解决你的问题
1.解决db权限问题
android 的短信数据库的读取
2.读取实例
android中读取短信
[Android 机制] android怎么读取手机上的存储的短信内容呢?
  相关解决方案