В чем основное отличие EventLog.readEvents () от EventLog.writeEvents ()? - PullRequest
0 голосов
/ 11 мая 2018

Мой первый вопрос:

1) В чем основное отличие EventLog.WriteEvent () от EventLog.readEvent ()?

Мой второй вопрос:

2) Я зафиксировал взаимодействие пользователей в приложении для Android. Теперь мне нужно отобразить это в виде журналов в Logcat?

Я записал захваченные данные следующим образом:

EventLog.writeEvent(LoginEvent,arrayObject);

Затем я написал метод readEvent для данных следующим образом:

  public void Logindata(){
    try{
        Collection<EventLog.Event> output = new ArrayList<EventLog.Event>();
        EventLog.readEvents(new int[] {LoginTag},output);
        for (EventLog.Event event : output) {
            Object[] object=(Object[]) event.getData();

            Log.i("Logintag",access.toLog(object));
        }
    }catch(Exception e){
        e.printStackTrace();
    }
}

Но я получаю "java.lang.ClassCastException: java.lang.String не может быть приведен к java.lang.Object []."at" Object [] object = (Object []) event.getData (); "

Но когда я выполняю это, он всегда возвращает tagCode как -1.Могу ли я узнать, в чем заключается ошибка, которую я делаю в вышеуказанном кодексе.

Пожалуйста, дайте предложения ...

Заранее спасибо:)

1 Ответ

0 голосов
/ 11 мая 2018
EventLog.writeEvent(LoginEvent,arrayObject);

ключ writeEvent всегда является значением int, вы можете видеть источник

/**
 * Record an event log message.
 * @param tag The event type tag code
 * @param list A list of values to log
 * @return The number of bytes written
 */
public static native int writeEvent(int tag, Object... list);

. В этом случае вам не нужно получать тег для String LoginEvent, вы можете напрямую использовать LoginEvent как код тега, такой как

Collection<EventLog.Event> output = new ArrayList<EventLog.Event>();
EventLog.readEvents(new int[] {LoginEvent},output);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...