Уведомления, которые вы видели, на самом деле могут быть виджетами, размещенными на пользовательском экране блокировки хоста виджетов.
Если вы посмотрите исходный код платформы Android для InstallWidgetReceiver, начиная с версии 4.4.3, здесь:
https://android.googlesource.com/platform/packages/apps/Launcher3/+/master/src/com/android/launcher3/InstallWidgetReceiver.java
Вы увидите это примечание автора:
/ ** * Мы, вероятно, уточним это позже, чтобы разрешить внешним приложениям размещать виджеты, нона данный момент, * мы просто хотим выставить действие для проверки в другом месте.* /
И вы можете видеть, что InstallWidgetReceiver.java на самом деле не реализован Google так же, как InstallShortCutReceiver.java.Таким образом, кажется, что по крайней мере до 4.4.3 вы не можете добавить виджеты на собственный экран блокировки так же, как вы можете, например, добавить ярлык на домашний экран с помощью InstallShortCutReceiver.
Если вы не создадите свое собственное приложение для блокировки экрана в качестве хоста виджета, а пользователь установит вместо нативного, вам может не повезти с использованием виджета.
Однако другой подход заключается в том, чтобы просто намдействие, которое устанавливает getWindow (). addFlags (WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
Это будет отображать вашу активность независимо от того, заблокирован экран или нет.Отключение этого действия при заблокированном экране приведет к отображению заблокированного экрана.