安卓复习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的主要内容,如果未能解决你的问题,请参考以下文章

安卓复习8

安卓复习7

安卓复习7

安卓复习7

java 代码片段【安卓】

安卓复习10