2011-12-22 52 views
1

我們是否可以爲來電和去電編寫單獨的廣播接收器 ,因爲我想對來電和去電執行不同的操作。 有什麼辦法可以區分它們嗎?我嘗試了各種方法,但沒有奏效。來電獨立接收器

+1

使用什麼工具?什麼電話?什麼語言?無論你放針的位置如何都無法解決問題。 – 2011-12-22 09:38:22

+0

你究竟試過了什麼?它是如何不起作用的? – ArjunShankar 2011-12-22 09:38:50

+0

我開發了android地址簿應用程序,並且我想將傳入和傳出的號碼分別與服務器同步。 – monika 2011-12-22 09:46:08

回答

0

你可以有一個類擴展PhoneStateListener,你應該onCallStateChanged方法。一旦手機狀態改變爲TelephonyManager.CALL_STATE_IDLE可以解析通話記錄:

final String[] callsProjection = new String[] { Calls.TYPE, Calls.DURATION, Calls.DATE, Calls.NUMBER }; 
final Cursor cursor = mContext.getContentResolver().query(Calls.CONTENT_URI, callsProjection, null, null, Calls.DATE + " DESC"); 

一旦你的信息,你可以很容易地檢查呼叫類型中的最後一項:

if (cursor.moveToFirst()) { 
     final int idType = cursor.getColumnIndex(Calls.TYPE); 
     if(t == Calls.INCOMING_TYPE) {    
     } else if (t == Calls.OUTGOING_TYPE) { 
     } else { /* missed call */ } 
    } 
    cursor.close(); 

注意:解析通話記錄之前,您可能需要等待幾秒鐘(3應該足夠了),以確保信息被寫入日誌!

+0

謝謝..但我可以在通話過程中做到這一點。當通話開始時,通話記錄是否立即進入 – monika 2011-12-23 06:25:22

+0

不是,它不是。在通話結束後(實際上幾秒鐘後),條目將進入日誌。 – karcsi 2011-12-29 09:02:11