Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Android: как активировать намерение CallDetailActivity?

Автор вопроса: JohnnyОтветов: 2

Я новичок в Android, как запустить намерение CallDetailActivity?

Из ЛогКэт:

Намерение {dat=content://call_log/calls/48 cmp=com.android.contacts/.CallDetailActivity}

48 - это идентификатор из CallLog.

Как создать намерение запустить событие, как указано выше? данный идентификатор

С уважением,

Джонни

androidandroid-intentcalllog

Ответы

Ответ 1 · рейтинг 1 · CommonsWare

Создайте ACTION_VIEW Intent с Uri для вызова. Если у вас есть только идентификатор, попробуйте использовать ContentUris и withAppendedId(), чтобы добавить свой идентификатор в CallLog.Calls.CONTENT_URI.

Ответ 2 · A.Alqadomi

на основе решения, предоставленного CommonsWare, вот код: он извлечет последнюю запись в журнал и откроет действие сведений о вызове.

Cursor managedCursor = managedQuery(CallLog.Calls.CONTENT_URI, null, null, null, "DATE DESC");
        int id=0;
        if (managedCursor.moveToNext()) {
            id = managedCursor.getInt(managedCursor.getColumnIndex(CallLog.Calls._ID));
        }
        managedCursor.close();
        Intent showCallLog = new Intent();
        showCallLog.setAction(Intent.ACTION_VIEW);
        Uri uri = ContentUris.withAppendedId(CallLog.Calls.CONTENT_URI, id);
        showCallLog.setData(uri);
        startActivity(showCallLog);

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы