如何获取正在进行的呼叫电话号码
问题描述:
我使用'startActivity(callintent)'开始“活动”并等待一段时间。然后我需要用'onReceive()'来停止呼叫。在这个'onReceive()'方法中,我如何获得现有的正在进行的呼叫电话号码?如何获取正在进行的呼叫电话号码
@Override
public void onReceive(Context context, Intent intent) {
String oldnumber = intent.getStringExtra(intent.ACTION_NEW_OUTGOING_CALL);
String newphnumber="9999999999";
if ((newphnumber1=null) &&(newphnumber!=oldnumber)) {
String msg = "Intercepted outgoing call. Old :" + oldnumber +
", new :" + newPhNnumber;
Toast.makeText(getApplicationContext(), "end call", Toast.LENGTH_SHORT).
show();
setResultData(newphnumber);
}
}
这里oldnumber
表示已经激活了外拨号码(单个呼叫正在进行)。我怎么才能得到它?
答
我们可以使用BroadcastReceiver轻松获取正在进行的电话号码。 在你的广播接收器类的onReceive函数,你必须代码就像下面,
if (intent.getAction().equals(Intent.ACTION_NEW_OUTGOING_CALL)) {
String number = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER).toString();
Log.w("", "Number---->"+number);
Toast.makeText(context, "Intent Received", Toast.LENGTH_LONG).show();
}
,并在你的Activity类
MReciever mReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mReceiver = new MReciever();
IntentFilter filter = new IntentFilter(Intent.ACTION_NEW_OUTGOING_CALL);
registerReceiver(mReceiver, filter);
}
protected void onDestroy() {
unregisterReceiver(mReceiver);
};
而在你的Android清单文件,你必须声明你的接收机
<receiver android:name=".YourReceiverClass" android:exported="true">
<intent-filter>
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
</intent-filter>
</receiver>
我认为这会对你有帮助。
你的代号会得到什么?我解释我的疑问。我通过startactivity(callintent)打了一个电话。我没有弄错额外的数字。所以只有一个电话是外发的(我称之为旧号码)。为了得到正在进行的单个电话号码,我把字符串oldnum = intent.action.?(如果我弄明白了多个号码,那么额外给出)。 – revan 2012-02-29 05:44:16
Intent.EXTRA_PHONE_NUMBER表示 一个字符串,它保存最初在ACTION_NEW_OUTGOING_CALL中输入的电话号码,或者在ACTION_CALL中调用的实际号码。 常量值:“android.intent.extra.PHONE_NUMBER”。参考这个[链接](http://developer.android.com/reference/android/content/Intent.html#EXTRA_PHONE_NUMBER) – Satheesh 2012-02-29 05:57:49
@ sateesh,sry,因为你说,不给结果我想要什么。它不给电话号码。我试过,你提到的是不给数量/结果空值。请尝试并给出确切的一个。如果Intent.ACTION_NEW_OUTGOING_CALL,String number = intent.getStringExtra(Intent。EXTRA_PHONE_NUMBER – revan 2012-02-29 07:56:51