获取我在Android中呼叫的号码

时间:2011-03-17 09:17:59

标签: android android-intent broadcastreceiver phone-number telephonymanager

我需要以编程方式从我的Android设备获取号码。我现在正在做的是:

我在听android.intent.action.PHONE_STATE广播,这意味着我正在接听电话或接听电话(或收到短信等)。

BroadcastReceiver我从意图中检索额外的incoming_number。遗憾的是,如果发起呼叫,我无法获得正在呼叫的号码。我怎么能这样做?

2 个答案:

答案 0 :(得分:3)

您需要在此意图中使用Intent android.intent.action.NEW_OUTGOING_CALL,您可以获得包含传出号码的额外Intent.EXTRA_PHONE_NUMBER

如果新的拨出电话已被转移,则会发出意图。

您需要获得权限android.permission.PROCESS_OUTGOING_CALLS

希望有所帮助。

答案 1 :(得分:1)

@Override
public void onReceive(Context context, Intent intent) {
    String phonenumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
    Log.d("OutgoingCallReceiver",phonenumber);
    Log.d("OutgoingCallReceiver",intent.getExtras().toString());
}