Я нахожусь в процессе разработки приложения для телефона с очень простым графическим интерфейсом, который запускает службу для работы в фоновом режиме.
Эта служба будет отвечать за запись данных в локальную базу данных.Эти данные, как сообщается, будут иметь отношение к действиям пользователя, которые мне позволяет получить API-интерфейс Android.
Это может отличаться от того, когда пользователь принимает / отклоняет вызов, от того, кто, находился ли телефон в режиме без звука, местоположениепользователь и все в таком духе.
другим моментом может быть время, когда пользователь подзаряжает свой телефон, выключает экран, обращается к приложению, слушает музыку, использует камеру и т. д.
Меня интересуют не данные, которые они используют, а действия, которые они делают.
Я нашел пару соответствующих классов: BroadcastReceiver, а другой PhoneStateListener, но у меня нет 'Я не могу использовать их в моем сервисе.
У меня есть класс (RecordEvents), который расширяет BraodcastReceiver и реализует метод onReceive, проверяя различные поступающие действия (intent.getAction ()). Если это одиниз тех, кто мне интересен, я регистрирую его, используя Log.i ().
Теперь в моем сервисе (класс BackgroundService),что я могу подтвердить, что он работает успешно, я создаю экземпляр RecordEvents и в методе onCreate я вызываю registerReceiver (recordEvents, filter) recordEvents является экземпляром RecordEvents, а фильтр является IntentFilter со всеми интересующими меня действиями.
Теперь, если я выполняю какие-либо действия, которые меня интересуют, на эмуляторе / телефоне, сообщение журнала не отображается в журнале cat.
Я что-то делаю не так?
Является ли BroadcastReceiver подходящим классом для записи действий пользователя в базе данных в фоновом режиме?
Я также использую другой класс (PhoneEvents), который расширяет PhoneStateListener, переопределяя onCellLocationChanged, onDataActivity, onCallStateChanged, и этот класс создаетсяи используется TelephonyManager.listen (phoneEvents, PhoneStateListener.LISTEN_CELL_LOCATION |PhoneStateListener.LISTEN_DATA_ACTIVITY |PhoneStateListener.LISTEN_CALL_STATE);
вот так.
Тем не менее я не получаю журналы при установке приложения на устройстве.
Буду благодарен за ваши ответы.
Спасибо, Андреас