80,351
社区成员
发帖
与我相关
我的任务
分享
public class BroadcastReceiverMgr extends BroadcastReceiver {
private final String TAG = MyBroadcastReceiver.TAG;
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
Log.i(TAG, "[Broadcast]"+action);
//呼出电话
if(action.equals(MyBroadcastReceiver.B_ACTION_NEW_OUTGOING_CALL)){
String outPhoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
Log.i(TAG, "[Broadcast]ACTION_NEW_OUTGOING_CALL:"+outPhoneNumber);
}
}
}
然后在activity中:
public class MyBroadcastReceiver extends Activity {
public final static String TAG = "MyBroadcastReceiver";
public final static String B_ACTION_NEW_OUTGOING_CALL = Intent.ACTION_NEW_OUTGOING_CALL;
private BroadcastReceiverMgr mBroadcastReceiver;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.my_broadcast_receiver);
}
//按钮1-注册广播
public void registerIt(View v) {
Log.i(TAG, "registerIt");
mBroadcastReceiver = new BroadcastReceiverMgr();
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction(Intent.ACTION_NEW_OUTGOING_CALL);
intentFilter.setPriority(Integer.MAX_VALUE);
registerReceiver(mBroadcastReceiver, intentFilter);
}
//按钮2-撤销广播
public void unregisterIt(View v) {
Log.i(TAG, "unregisterIt");
unregisterReceiver(mBroadcastReceiver);
}
}
了解了这个还不够,由于这个BroadcastReceiver的功能类似监听器,因此你得在软件中对其进行注册,方法就是在AndroidManifest.xml文件中加入如下代码:
<receiver android:name="MyReceiver">
<intent-filter>
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</intent-filter>
</receiver>