Вы можете попробовать использовать реактивную-native-firebase, он использует ShortcutBadger для отображения значков номеров уведомлений в Android: https://rnfirebase.io/docs/v5.xx/notifications/reference/Notifications
Значки в Android в настоящий момент меняются, раньше они поддерживались только программами запуска, а начиная с Android 8.0 они поддерживаются и Android: https://developer.android.com/training/notify -user / badges
Так что немного сбивает с толку понимание того, как response-native-firebase поддерживает значки на Android. Но мне удалось заставить их работать частично, устройства Android 9.0 показывают их, а более старые устройства Android (Honor8) показывают их при использовании firebase.notifications (). SetBadge (1), но не автоматически, когда получают уведомления. Я уверен, что позже я пытаюсь использовать поддержку значков, основанную на старом лаунчере, или я что-то не сделал правильно, или мой лаунчер не поддерживается ShortcutBadger. Если у кого-то есть идея, пожалуйста, поделитесь?
Если вы пытаетесь использоватьact-native-firebase, не забудьте добавить зависимость ShortcutBadger в android / app / build.gradle, и я также добавил setShowBadge (true) в созданный канал уведомлений (не уверен, если это было необходимо, потому что это не упоминалось в документации). В противном случае я следовал документации по установке.
Я начну со списком типичных проблем, окружающих Вашу задачу, у меня нет ответа, но я могу, по крайней мере, обеспечить некоторый свет на том, почему у Вас есть проблемы.
Устройства клавиатуры, из очевидных соображений безопасности, имеют ограничения управления доступом на них. По очевидным причинам, если произвольные приложения могли бы осуществить сниффинг/сцепить клавиатуры без правильного разрешения, она могла бы иметь фатальные последствия, иначе: Регистратор Клавиатуры.
Иногда, когда одно приложение (в Вашем случае X) получило контроль над устройством ввода данных, это съедает все байты, отправляемые в него. Таким образом, если Вам удалось обойти проблему полномочий, у Вас все еще есть проблема, в которой некоторое другое программное обеспечение использует поток данных перед Вами.
Прошло много времени с тех пор, как был задан этот вопрос :) В любом случае, я думаю, что вы должны использовать API подсистемы устройств ввода linux.
http://www.linuxjournal.com/article/6429 вот хорошее введение.