2016-07-22 2 views
2

부재 중 전화를 추출하고 싶습니다. sim1 또는 sim2에 대한 호출 로그를 개별적으로 받았습니다. 서로 다른 심 (sim)에 대한 통화 로그를 차별화하고자합니다. 이미 총 호출 로그를 추출했지만, 이중 sim 환경에서 sim 슬롯을 구별 할 수 없습니다.안드로이드 활동에서 sim1, sim2에 대한 통화 로그를 얻는 방법은 무엇입니까?

이 내가 무엇을 시도했다 : SIM 슬롯에 대한 정보를 얻을 수

StringBuffer sb = new StringBuffer(); 
Cursor managedCursor = managedQuery(CallLog.Calls.CONTENT_URI, null,null, null, null); 

int number = managedCursor.getColumnIndex(CallLog.Calls.NUMBER); 
int type = managedCursor.getColumnIndex(CallLog.Calls.TYPE); 
int date = managedCursor.getColumnIndex(CallLog.Calls.DATE); 
int duration = managedCursor.getColumnIndex(CallLog.Calls.DURATION); 
sb.append("Call Details :"); 

while (managedCursor.moveToNext()) { 
    String phNumber = managedCursor.getString(number); 
    String callType = managedCursor.getString(type); 
    String callDate = managedCursor.getString(date); 
    Date callDayTime = new Date(Long.valueOf(callDate)); 
    String callDuration = managedCursor.getString(duration); 
    String dir = null; 
    int dircode = Integer.parseInt(callType); 
    switch (dircode) { 
     case CallLog.Calls.OUTGOING_TYPE: 
      dir = "OUTGOING"; 
      break; 

     case CallLog.Calls.INCOMING_TYPE: 
      dir = "INCOMING"; 
      break; 

     case CallLog.Calls.MISSED_TYPE: 
      dir = "MISSED"; 
      break; 
    } 
    sb.append("\nPhone Number:--- " + phNumber + " \nCall Type:--- " 
      + dir + " \nCall Date:--- " + callDayTime 
      + " \nCall duration in sec :--- " + callDuration); 
    sb.append("\n----------------------------------"); 
    Log.d(TAG_NAME,"\nPhone Number:--- " + phNumber + " \nCall Type:--- " 
      + dir + " \nCall Date:--- " + callDayTime 
      + " \nCall duration in sec :--- " + callDuration); 

    count++; 

} 
managedCursor.close(); 
Log.d(TAG_NAME,"Total Call Log count is "+count); 
return sb.toString(); 
+0

/** * The subscription ID used to place this call. This is no longer used and has been * replaced with PHONE_ACCOUNT_COMPONENT_NAME/PHONE_ACCOUNT_ID. * For ContactsProvider internal use only. * <P>Type: INTEGER</P> * * @Deprecated * @hide */ public static final String SUB_ID = "sub_id"; 

사용은 문제가 코드와 함께 무엇인지 설명해주십시오 당신이 –

+0

을 시도 보여줍니다. 결과가 예상대로 나오지 않습니다. – EJG89

+0

듀얼 심 장치를 사용하고 있습니다. 그 안에 하나의 sim 호출 로그 만 추출하려고합니다. 어디에서 장치의 총 통화 기록을 얻는가. –

답변

0

사용 SUB_ID 상수 값을. CallLog.Calls.SUB_ID = "sub_id"

관련 문제