2013-03-25 38 views
1

我想通過意圖調用呼叫日誌活動來獲得活動結果。所以要從通話記錄中選擇一個號碼並在活動結果中獲取該號碼。這在android中是可行的。如果是這樣,請幫助我如何從通話記錄中獲取號碼。我使用下面的代碼,但它不適合我。如何獲取一個號碼從通話記錄在Android?

Intent showCallLog = new Intent(); 
showCallLog.setAction(Intent.ACTION_VIEW); 
showCallLog.setType(CallLog.Calls.CONTENT_TYPE); 
startActivityForResult(showCallLog,3); 

這不能返回到活動回來?請幫幫我?

+2

http://niravranpara.blogspot.in/2013/03/phone-call-historylog-programmatically.html – 2013-03-25 06:31:21

回答

3

我得到這個將使用我自己的版本。我使用了一個對話框,並將光標移交給通話記錄。這裏是功能:

public void getCallLog() { 

    String[] callLogFields = { android.provider.CallLog.Calls._ID, 
      android.provider.CallLog.Calls.NUMBER, 
      android.provider.CallLog.Calls.CACHED_NAME /* im not using the name but you can*/}; 
    String viaOrder = android.provider.CallLog.Calls.DATE + " DESC"; 
    String WHERE = android.provider.CallLog.Calls.NUMBER + " >0"; /*filter out private/unknown numbers */ 

    final Cursor callLog_cursor = getActivity().getContentResolver().query(
      android.provider.CallLog.Calls.CONTENT_URI, callLogFields, 
      WHERE, null, viaOrder); 

    AlertDialog.Builder myversionOfCallLog = new AlertDialog.Builder(
      getActivity()); 

    android.content.DialogInterface.OnClickListener listener = new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialogInterface, int item) { 
      callLog_cursor.moveToPosition(item); 

      Log.v("number", callLog_cursor.getString(callLog_cursor 
        .getColumnIndex(android.provider.CallLog.Calls.NUMBER))); 

      callLog_cursor.close(); 

     } 
    }; 
    myversionOfCallLog.setCursor(callLog_cursor, listener, 
      android.provider.CallLog.Calls.NUMBER); 
    myversionOfCallLog.setTitle("Choose from Call Log"); 
    myversionOfCallLog.create().show(); 
} 
相關問題