开发界
首页 移动开发 在线交易 IT笔记 网络技术 操作系统 企业架构 数据库 考试认证 IT培训 开源软件 数据存储 行业资讯
大家都在看:java   开发   C#   oracle   mysql   android   web开发   学习   sqlserver   linux   asp   php   ajax   javascript   css   html
Android短信接收
2013-03-06 15:39:58 来源:开发界 作者:admin 栏目:Android平台 责任编辑:admin
[导读]Android短信接收

Java代码 
package com.msg.vo;  
 
import android.content.BroadcastReceiver;  
import android.content.Context;  
import android.content.Intent;  
import android.telephony.SmsMessage;  
 
public class MsgReceiveActivity extends BroadcastReceiver {  
 
    @Override 
    public void onReceive(Context arg0, Intent intent) {  
        System.out.println("收到短信");  
        if(intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")){  
            Object[] pdus=(Object[])intent.getExtras().get("pdus");  
            //不知道为什么明明只有一条消息,传过来的却是数组,也许是为了处理同时同分同秒同毫秒收到多条短信  
            //但这个概率有点小  
            SmsMessage[] message=new SmsMessage[pdus.length];  
            StringBuilder sb=new StringBuilder();  
            System.out.println("pdus长度"+pdus.length);  
            for(int i=0;i<pdus.length;i++){  
                //虽然是循环,其实pdus长度一般都是1  
                message[i]=SmsMessage.createFromPdu((byte[])pdus[i]);  
                sb.append("接收到短信来自:\n");  
                sb.append(message[i].getDisplayOriginatingAddress()+"\n");  
                sb.append("内容:"+message[i].getDisplayMessageBody());  
            }  
            System.out.println(sb.toString());  
        }  
    }  
 

package com.msg.vo;

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.SmsMessage;

public class MsgReceiveActivity extends BroadcastReceiver {

 @Override
 public void onReceive(Context arg0, Intent intent) {
  System.out.println("收到短信");
  if(intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")){
   Object[] pdus=(Object[])intent.getExtras().get("pdus");
   //不知道为什么明明只有一条消息,传过来的却是数组,也许是为了处理同时同分同秒同毫秒收到多条短信
   //但这个概率有点小
   SmsMessage[] message=new SmsMessage[pdus.length];
   StringBuilder sb=new StringBuilder();
   System.out.println("pdus长度"+pdus.length);
   for(int i=0;i<pdus.length;i++){
    //虽然是循环,其实pdus长度一般都是1
    message[i]=SmsMessage.createFromPdu((byte[])pdus[i]);
    sb.append("接收到短信来自:\n");
    sb.append(message[i].getDisplayOriginatingAddress()+"\n");
    sb.append("内容:"+message[i].getDisplayMessageBody());
   }
   System.out.println(sb.toString());
  }
 }

}


AndroidManifest.xml里注册一下接收器:
Xml代码 
<receiver android:name="MsgReceiveActivity"> 
            <intent-filter> 
                <action android:name="android.provider.Telephony.SMS_RECEIVED"/> 
            </intent-filter> 
        </receiver> 

<receiver android:name="MsgReceiveActivity">
            <intent-filter>
                <action android:name="android.provider.Telephony.SMS_RECEIVED"/>
            </intent-filter>
        </receiver>

加入权限:
Xml代码 
<uses-permission android:name="android.permission.RECEIVE_SMS"/>  

版权所有:转载请注明出处!
分享到:
上一篇Android中Style和Theme的使用 下一篇解决Android与服务器交互大容量数..
您可能还喜欢
今日最新资讯 最新推荐信息
考试认证 更多
开发技术 更多
移动开发 更多

关于开发界 | 合作伙伴 | 联系我们 | 友情链接 | 版权声明 | 网站制作 | 网站地图 | 加入收藏 | 设为首页

Copyright@2012-2016 开发界 京ICP备12027873号