2014-10-18 79 views
0

中的通話狀態我從Phonestatelistener知道,我們將會知道,通話類型就像它的來電,或者響鈴或者摘下等等。但是一旦通話結束,即一旦電話達到空閒狀態,我想知道什麼是呼叫的狀態,是它摘下來,錯過或拒絕如何知道android

讓我們,91123456789是來電,通話結束後,這個數字將被存儲在手機通話記錄的未接來電,

是有一種方法可以從通話記錄中獲取特定號碼+91123456789的最近狀態,是否有可能?

回答

2

這裏是可以查詢未接電話的通話記錄的代碼。基本上,你將不得不觸發這一點,並確保你給一些時間(幾秒鐘應該這樣做)的通話記錄來寫信息,否則如果你很快檢查通話記錄,你不會找到最近的通話。

int MISSED_CALL_TYPE = android.provider.CallLog.Calls.MISSED_TYPE 
final String[] projection = null; 
final String selection = null; 
final String[] selectionArgs = null; 
final String sortOrder = android.provider.CallLog.Calls.DATE + " DESC"; 
Cursor cursor = null; 
try{ 
    // cursor = context.getContentResolver().query(
    //   Uri.parse("content://call_log/calls"), 
    //   projection, 
    //   selection, 
    //   selectionArgs, 
    //   sortOrder); 
cursor = getContentResolver().query(CallLog.Calls.CONTENT_URI, null, CallLog.Calls.NUMBER + "=? ", yourNumber, sortOrder); 
     while (cursor.moveToNext()) { 
      String callLogID = cursor.getString(cursor.getColumnIndex(android.provider.CallLog.Calls._ID)); 
      String callNumber = cursor.getString(cursor.getColumnIndex(android.provider.CallLog.Calls.NUMBER)); 
      String callDate = cursor.getString(cursor.getColumnIndex(android.provider.CallLog.Calls.DATE)); 
      String callType = cursor.getString(cursor.getColumnIndex(android.provider.CallLog.Calls.TYPE)); 
      String isCallNew = cursor.getString(cursor.getColumnIndex(android.provider.CallLog.Calls.NEW)); 
      if(Integer.parseInt(callType) == MISSED_CALL_TYPE && Integer.parseInt(isCallNew) > 0){ 
       if (_debug) Log.v("Missed Call Found: " + callNumber); 
break ; 
       } 
      } 
     }catch(Exception ex){ 
      if (_debug) Log.e("ERROR: " + ex.toString()); 
     }finally{ 
      cursor.close(); 
     } 

我希望你覺得這個很有用,就像你可以得到其他狀態一樣。

不要在清單 android.permission.READ_CONTACTS添加此權限

+0

你好,謝謝你,我發現這是一個phonestatelistener方式,這項工作做得很好,如果它的一個電話。假設如果我收到了一個電話,並且我收到另一個來電,那將處於等待狀態,我需要知道如何捕獲該等待的電話並檢查它是否未接電話? – Naruto 2014-10-18 19:47:16

+0

多數民衆贊成在這個代碼做什麼,如果你有一個未接來電,那麼你可以查詢calllogs來檢查最近的未接來電是否來自該特定的號碼,正在等待 – 2014-10-18 19:51:00

+0

但正如你所說,手機確實需要一段時間來更新其日誌,所以有時信息不準確的權利? – Naruto 2014-10-18 19:54:18