1.在清单文件中注册广播
<receiver android:name="com.guo.lanjie.MyBroadReceiver" >
<intent-filter android:priority="-1000" >
<action android:name="android.intent.action.PHONE_STATE" />
</intent-filter>
</receiver>
<receiver android:name="com.guo.lanjie.BoDa" >
<intent-filter android:priority="-1000" >
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</intent-filter>
</receiver>
public class MainActivity extends Activity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
public class BoDa extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
String actiongString = intent.getAction();
if (actiongString.equals("android.intent.action.NEW_OUTGOING_CALL")) {
// 获取在拨号盘上拨出的内容
String numString = getResultData();
// 如果点击拨号键,将会自动拨打这个号
//setResultData("110");
Log.i("myTag", "拨号了:" + numString);
}
}
}
public class MyBroadReceiver extends BroadcastReceiver {
/**
* 拨号广播,属于有序广播,系统调用sendorderBroadcast(参数1,参数2,...(其中一个参数就是要拨打的电话号码)...参数N);
* 发送有序的广播
* */
public void onReceive(Context context, Intent intent) {
String actiongString = intent.getAction();
if (actiongString.equals("android.intent.action.PHONE_STATE")) {
Log.i("myTag", "来电话了!");
TelephonyManager manager = (TelephonyManager) context
.getSystemService(Service.TELEPHONY_SERVICE);
switch (manager.getCallState()) {
case TelephonyManager.CALL_STATE_IDLE:// 闲置
Log.i("myTag", "闲置");
break;
case TelephonyManager.CALL_STATE_RINGING:// 响铃
String numString = getResultData();
Log.i("myTag", "打给:" + numString);
//Log.i("myTag", numString + ",来电");
Log.i("myTag", "响铃");
break;
case TelephonyManager.CALL_STATE_OFFHOOK:// 接听
Log.i("myTag", "接听");
break;
}
}
}
}