В Android 8.0 выше. Есть ли способ узнать, что в системе включен режим pip
В Android Oreo. Активность может перейти в режим pip и вернуться к launcher.
https://developer.android.com/guide/topics/ui/picture-in-picture.html
Теперь я пусковая установка. Есть ли способ узнать, что в настоящее время на экране отображается окно pip?
isInPictureInPictureMode()
укажите только pipmode вашего приложения, который будет false, если есть другое приложение, перейдите в режим pip.
флаги намерения были одинаковыми, когда вы выходите из приложения и переходите в pipmode обратно в launcher.
12-15 03:31:39.580 11671 11671 D FLAG_ACTIVITY_FORWARD_RESULT
12-15 03:31:39.580 11671 11671 D FLAG_ACTIVITY_NEW_TASK
12-15 03:31:39.580 11671 11671 D FLAG_ACTIVITY_PREVIOUS_IS_TOP
12-15 03:31:39.581 11671 11671 D FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
12-15 03:31:39.581 11671 11671 D FLAG_RECEIVER_BOOT_UPGRADE
12-15 03:31:39.581 11671 11671 D FLAG_RECEIVER_FOREGROUND
12-15 03:31:39.581 11671 11671 D FLAG_RECEIVER_INCLUDE_BACKGROUND
12-15 03:31:39.581 11671 11671 D FLAG_RECEIVER_VISIBLE_TO_INSTANT_APPS
12-15 03:31:50.174 11671 11671 D FLAG_ACTIVITY_FORWARD_RESULT
12-15 03:31:50.174 11671 11671 D FLAG_ACTIVITY_NEW_TASK
12-15 03:31:50.174 11671 11671 D FLAG_ACTIVITY_PREVIOUS_IS_TOP
12-15 03:31:50.174 11671 11671 D FLAG_ACTIVITY_RESET_TASK_IF_NEEDED
12-15 03:31:50.174 11671 11671 D FLAG_RECEIVER_BOOT_UPGRADE
12-15 03:31:50.174 11671 11671 D FLAG_RECEIVER_FOREGROUND
12-15 03:31:50.174 11671 11671 D FLAG_RECEIVER_INCLUDE_BACKGROUND
12-15 03:31:50.174 11671 11671 D FLAG_RECEIVER_VISIBLE_TO_INSTANT_APPS
Я проверяю исходный код режима pip, и они контролируют это WindowManagerService
. Я не думаю, что к нему можно получить доступ через уровень приложения.
1 ответов
вы можете построить AccessibilityService
, который может запросить AccessibilityWindowInfo
s для isInPictureInPictureMode()
.
обратите внимание, что Google в настоящее время (в конце 2017 года) выслеживает злоупотребление функцией службы доступности, поэтому будьте осторожны. Такой подход, скорее всего, будет считаться злоупотреблением. Используйте это только в том случае, если вы не смогли найти лучшего решения.
посмотреть разработка службы доступности для руководства.
Примечание. это требует запроса разрешения пользователя, и пользователь должен явно принять службу специальных возможностей.