安卓复习7

Posted 山河执手

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了安卓复习7相关的知识,希望对你有一定的参考价值。

安卓复习7

下面是接受短消息的广播接收者

public class ImcomingSMSReceiver extends BroadcastReceiver
   private static final String String_q = "@echo";
   private static final String RECEIVED_SMS="android.provider.Telephony.SMS_RECEIVED";
   @Override
   public void onReceive(Context context, Intent intent) 
      
	//判断该意图的action属性是不是RECEIVED_SMS
      if(intent.getAction().equals(RECEIVED_SMS))
         //通过静态getDefault()方法创建SmsManger的实例
         SmsManager smsManager= SmsManager.getDefault();
	
         Bundle bundle = intent.getExtras();
         if(bundle!=null)
         	//从bundle中获取puds,它是一个Object类型的数组
            Object[] pdus  = (Object[])bundle.get("pdus");
            SmsMessage[] messages = new SmsMessage[pdus.length];
            for(int i=0;i<pdus.length;i++)
               //每一个object都是一个byte[]字节数组,每一项为一条短信
               messages[i]=SmsMessage.createFromPdu((byte[])pdus[i]);
            
            for(SmsMessage message:messages)
               String msg = message.getMessageBody();
               String to = message.getOriginatingAddress();
               String text = "from:"+to+"message:"+msg;
               Toast t = Toast.makeText(context, text, Toast.LENGTH_LONG);
               t.show();
               if(msg.toLowerCase().startsWith(String_q))
                  String out = msg.substring(String_q.length());
				  //发送文本消息
                  smsManager.sendTextMessage(to, null, out, null, null);                  
               
            
         
            
   

当系统收到短信时,会发出一个action名称为Android.provier.Telephony.SMS_RECEIVED的广播Intent,该Intent存放了接收到的短信内容,使用名称 “pdus”即可从Intent中获取短信内容。
pdus是一个object类型的数组,每一个object都是一个byte[]字节数组,每一项为一条短信。

以上是关于安卓复习7的主要内容,如果未能解决你的问题,请参考以下文章

安卓复习7

安卓复习10

安卓复习8

安卓复习10

安卓复习10

安卓复习8