2012-02-28 171 views
2

我使用'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表示已經激活了外撥號碼(單個呼叫正在進行)。我怎麼才能得到它?

回答

3

我們可以使用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