Android 中BroadCast Receiver可以用来侦听广播事件。在使用Broadcast 之前,必须使用代码或是在AndroidManifest.xml 进行注册。
下面的例子实现使用短信来触发AndroidGraphics2DTutorial中的示例。短信格式为:@demo:xxxx ,xxxx为 示例名称,比如 , 启动Colors示例, 则向手机发送: @demo:Colors . 手机在收到短信后,先检测短信格式是否符合 @demo:xxxx, 若符合, 这启动对应的示例。
在AndroidGraphics2DTutorial中添加一个自定义的Broadcast Receiver SmsMessageReceiver 用于监测接受到的短信:
public class SmsMessageReceiver extends BroadcastReceiver { private static final String queryString="@demo:"; @Override public void onReceive(Context context, Intent intent) { Bundle extras = intent.getExtras(); if (extras == null) return; Object[] pdus = (Object[]) extras.get("pdus"); for (int i = 0; i < pdus.length; i++) { SmsMessage message = SmsMessage.createFromPdu((byte[]) pdus[i]); String fromAddress = message.getOriginatingAddress(); String fromDisplayName = fromAddress; String msg=message.getMessageBody(); if(msg.startsWith(queryString)){ // Trigger the main activity to fire up a dialog //that shows/reads the received messages Intent di = new Intent(); di.setClass(context, AndroidGraphics2DTutorial.class); di.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP); di.putExtra(AndroidGraphics2DTutorial.SMS_FROM_ADDRESS_EXTRA, fromAddress); di.putExtra(AndroidGraphics2DTutorial.SMS_FROM_DISPLAY_NAME_EXTRA, fromDisplayName); di.putExtra(AndroidGraphics2DTutorial.SMS_MESSAGE_EXTRA, msg); context.startActivity(di); } } }}
onReceive 会在Broadcast 事 件发生是执行,这里检测短信内容,如果是以@demo:开头的,则启动AndroidGraphics2DTutorial Main Activity。
修改AndroidMainifest.xml
<receiver android:name=".SmsMessageReceiver" android:enabled="true"> <intent-filter> <action android:name="android.provider.Telephony.SMS_RECEIVED" /> </intent-filter> </receiver>
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索string
, 短信
, intent
, broadcast
, demo
, 短信android
, demo删除收件人android
, notificaion短信android
, 短信发送demo
, 示例
$broadcast
短信宝代码示例、submail发送短信 示例、c 短信宝代码示例、触发类短信、触发短信,以便于您获取更多的相关知识。