如何获取正在进行的呼叫电话号码

问题描述:

我使用'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> 

我认为这会对你有帮助。

+0

你的代号会得到什么?我解释我的疑问。我通过startactivity(callintent)打了一个电话。我没有弄错额外的数字。所以只有一个电话是外发的(我称之为旧号码)。为了得到正在进行的单个电话号码,我把字符串oldnum = intent.action.?(如果我弄明白了多个号码,那么额外给出)。 – revan 2012-02-29 05:44:16

+0

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

+0

@ sateesh,sry,因为你说,不给结果我想要什么。它不给电话号码。我试过,你提到的是不给数量/结果空值。请尝试并给出确切的一个。如果Intent.ACTION_NEW_OUTGOING_CALL,String number = intent.getStringExtra(Intent。EXTRA_PHONE_NUMBER – revan 2012-02-29 07:56:51