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