Слушатель уведомлений - onNotificationPosted не работает - PullRequest
0 голосов
/ 05 мая 2018

Я перепробовал все виды решений и кода, но любое из этих решений сработало для меня, и я не знаю почему. Пожалуйста, помогите мне.

Мой код MainActivity:

if(isNotificationServiceEnabled())
    {
        Intent i= new Intent(this,NotificationsService.class);
        i.putExtra("command", "get_status");
        startService(i);
    }
    else
        startActivity(new Intent(Settings.ACTION_NOTIFICATION_LISTENER_SETTINGS));

Теперь я просто пытаюсь проверить, прочитал ли сервис опубликованное nostification, но из журнала я могу видеть только то, что он входит в метод onCreate , а не в onNotificationPosted .

Это код для моего класса обслуживания:

public class NotificationsService extends NotificationListenerService {

@Override
public void onListenerConnected(){
    Log.d(TAG, "Connected");
}

@Override
public void onNotificationPosted(final StatusBarNotification sbn){

    Log.d(TAG,"got it");

}

Я пробовал также решения с широковещательной службой, но она все еще не работает.

Спасибо.

1 Ответ

0 голосов
/ 07 мая 2018

Я нашел решения. В моем коде у меня были некоторые проблемы, но затем я протестировал другой код о прослушивателе уведомлений в другом проекте, и это сработало. Тогда я модифицирую свой код, и теперь он работает.

Об уведомлении lisener Вам не нужно запускать службу, потому что при запуске приложения служба запускается. Поэтому я только что внес изменения в свой код:

Основной

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    if(!isNotificationServiceEnabled())
    {
        startActivity(new Intent(Settings.ACTION_NOTIFICATION_LISTENER_SETTINGS));
    }

}
@Override
protected void onDestroy() {
    super.onDestroy();
} 

А в сервисе я просто поместил лог-код для записи в отладочный пакет уведомлений.

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

...