一、代码
1.xml(1)main.xml1 27 13 19 20
(2)AndroidManifest.xml.xml
1 26 7 10 11 16 19 20 24 25 2621 22 23 27
2.java
(1)TestBC2Activity.java1 package com.broadcast2; 2 3 import android.app.Activity; 4 import android.content.IntentFilter; 5 import android.os.Bundle; 6 import android.view.View; 7 import android.view.View.OnClickListener; 8 import android.widget.Button; 9 10 public class TestBC2Activity extends Activity {11 /** Called when the activity is first created. */12 private Button registerButton = null;13 private Button unregisterButton = null;14 private SMSReceiver smsReceiver = null;15 16 private static final String SMS_ACTION = "android.provider.Telephony.SMS_RECEIVED";17 @Override18 public void onCreate(Bundle savedInstanceState) {19 super.onCreate(savedInstanceState);20 setContentView(R.layout.main);21 registerButton = (Button)findViewById(R.id.register);22 registerButton.setOnClickListener(new RegisterReceiverListener());23 unregisterButton = (Button)findViewById(R.id.unregister);24 unregisterButton.setOnClickListener(new UnRegisterReceiverListener());25 }26 27 class RegisterReceiverListener implements OnClickListener{28 29 @Override30 public void onClick(View v) {31 //生成一个BroiadcastReceiver对象32 smsReceiver = new SMSReceiver();33 //生成一个IntentFilter对象34 IntentFilter filter = new IntentFilter();35 //为IntentFilter添加一个Action,决定了reciver能接收什么类型的请求36 filter.addAction(SMS_ACTION);37 //将BroadcastReceiver对象注册到系统当中38 TestBC2Activity.this.registerReceiver(smsReceiver, filter);39 }40 41 }42 43 class UnRegisterReceiverListener implements OnClickListener{44 45 @Override46 public void onClick(View v) {47 //解除BroadcastReceiver对象的注册48 TestBC2Activity.this.unregisterReceiver(smsReceiver);49 }50 51 }52 }
(2)SMSReceiver.java
1 package com.broadcast2; 2 3 import android.content.BroadcastReceiver; 4 import android.content.Context; 5 import android.content.Intent; 6 import android.os.Bundle; 7 import android.telephony.SmsMessage; 8 9 public class SMSReceiver extends BroadcastReceiver{10 11 @Override12 public void onReceive(Context context, Intent intent) {13 // TODO Auto-generated method stub14 System.out.println("receive message");15 16 //此例子是获取短信内容17 //接受Intent对象当中的数据18 Bundle bundle = intent.getExtras();19 //在Bundle对象当中有一个属性名为pdus,这个属性的值是一个Object数组20 Object[] myOBJpdus = (Object[]) bundle.get("pdus"); 21 //创建一个SmsMessage类型的数组22 SmsMessage[] messages = new SmsMessage[myOBJpdus.length]; 23 System.out.println(messages.length);24 for (int i = 0; i