如何在android中获取通话记录

时间:2015-03-12 14:49:42

标签: android android-sqlite android-contentresolver

我正在使用此技术来获取call logs,但我也会收到消息详细信息。 因为Samsung习惯将记录消息详细信息也作为呼叫记录的一部分。

String[] projection = new String[] {
                    CallLog.Calls._ID,
                    CallLog.Calls.NUMBER,
                    CallLog.Calls.DATE,
                    CallLog.Calls.DURATION,
                    CallLog.Calls.TYPE,
                    CallLog.Calls.NEW,
                    CallLog.Calls.CACHED_NAME,
                    CallLog.Calls.CACHED_NUMBER_LABEL,
                    CallLog.Calls.CACHED_NUMBER_TYPE
            };
            Cursor c =  mct.getContentResolver().query(CallLog.Calls.CONTENT_URI, projection, null, null, CallLog.Calls.DATE + " DESC");`

任何人都可以告诉我,如何仅过滤呼叫详细信息并排除消息。我在三星手机中特别注意到这个问题

1 个答案:

答案 0 :(得分:0)

根据:CallLog.Calls.Type 通话类型(incomingoutgoingmissed)。

您将通过此树类型的呼叫过滤:

    int dircode = Integer.parseInt(CallLog.Calls.TYPE);     
        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;
        }