基本原理,android系统在点击了拨号键后,会发送一个广播,action为:Intent.ACTION_NEW_OUTGOING_CALL,我们通过编写自己的Reciver来接受这个广播,从intent中取出拨号号码,达到目的。。。
首先我们静态注册Reciver
<receiver android:name=".Caller" >
<intent-filter android:priority="-1" >
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</intent-filter>
</receiver>
然后我们编写接受方法:
public class Caller extends BroadcastReceiver {
String TAG = "Caller";
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Log.i(TAG, "收到消息");
if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) {
Set<String> set = intent.getExtras().keySet();
Iterator<String> it = set.iterator();
Log.i(TAG,
intent.getStringExtra("android.intent.extra.PHONE_NUMBER"));
}
}
}
可以打印出号码。。