Android下面接收广播消息比较简单,主要实现步骤如下:
- 在AndroidManifest.xml中添加receiver字段(里面有intent-filter过滤action);
- 从BroadcastReceiver扩展类,添加onReceive处理;
示例代码如下:
AndroidManifest.xml,这里演示的是监听来电事件
注意要先添加权限:
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
之后注册Receiver:
<receiver android:name="ReceiverBroadcast">
<intent-filter >
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
ReceiverBroadcast.java代码中实现监听事件处理:
package com.freesoft.anttest;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.util.Log;
public class ReceiverBroadcast extends BroadcastReceiver {
private static String TAG="BroadcastReceiver";
public ReceiverBroadcast() {
Log.i(TAG, "ReceiverBroadcast");
}
@Override
public void onReceive(Context arg0, Intent arg1) {
Log.i(TAG, "onReceive");
Bundle bundle = arg1.getExtras();
String phonenum= bundle.getString("incoming_number");
Log.i(TAG, "Phone Number is: "+phonenum);
}
}