Created
August 13, 2014 07:13
-
-
Save SZooo/ac33179cbf19ce5726b6 to your computer and use it in GitHub Desktop.
通过代码在类中注册BroadcastReceiver
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class SMSReceiver extends BroadcastReceiver{ | |
@Override | |
public void onReceive(Context context, Intent intent) { | |
// TODO Auto-generated method stub | |
System.out.println("receive message"); | |
//接受Intent对象当中的数据 | |
Bundle bundle = intent.getExtras(); | |
//在Bundle对象当中有一个属性名为pdus,这个属性的值是一个Object数组 | |
Object[] myOBJpdus = (Object[]) bundle.get("pdus"); | |
//创建一个SmsMessage类型的数组 | |
SmsMessage[] messages = new SmsMessage[myOBJpdus.length]; | |
System.out.println(messages.length); | |
for (int i = 0; i<myOBJpdus.length; i++) | |
{ | |
//使用Object数组当中的对象创建SmsMessage对象 | |
messages[i] = SmsMessage.createFromPdu((byte[]) myOBJpdus[i]); | |
//调用SmsMessage对象的getDisppalyMessageBody()方法,就可以得到消息的内容 | |
System.out.println(messages[i].getDisplayMessageBody()); | |
} | |
try { | |
Thread.sleep(30 * 1000); | |
System.out.println("-------------------------------"); | |
} catch (InterruptedException e) { | |
// TODO Auto-generated catch block | |
e.printStackTrace(); | |
} | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class TestBC2Activity extends Activity { | |
/** Called when the activity is first created. */ | |
private Button registerButton = null; | |
private Button unregisterButton = null; | |
private SMSReceiver smsReceiver = null; | |
private static final String SMS_ACTION = "android.provider.Telephony.SMS_RECEIVED"; | |
@Override | |
public void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.main); | |
registerButton = (Button)findViewById(R.id.register); | |
registerButton.setOnClickListener(new RegisterReceiverListener()); | |
unregisterButton = (Button)findViewById(R.id.unregister); | |
unregisterButton.setOnClickListener(new UnRegisterReceiverListener()); | |
} | |
class RegisterReceiverListener implements OnClickListener{ | |
@Override | |
public void onClick(View v) { | |
//生成一个BroiadcastReceiver对象 | |
smsReceiver = new SMSReceiver(); | |
//生成一个IntentFilter对象 | |
IntentFilter filter = new IntentFilter(); | |
//为IntentFilter添加一个Action | |
filter.addAction(SMS_ACTION); | |
//将BroadcastReceiver对象注册到系统当中 | |
TestBC2Activity.this.registerReceiver(smsReceiver, filter); | |
} | |
} | |
class UnRegisterReceiverListener implements OnClickListener{ | |
@Override | |
public void onClick(View v) { | |
//解除BroadcastReceiver对象的注册 | |
TestBC2Activity.this.unregisterReceiver(smsReceiver); | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment