在Android Oreo中。活动可以进入点子模式并返回发射器。
https://developer.android.com/guide/topics/ui/picture-in-picture.html
现在我是发射器。有没有办法知道屏幕上是否显示了一个点子窗口?
isInPictureInPictureMode()
仅指示您的应用程序pipmode,如果有其他应用程序进入pip模式,则该pipmode将为false。
当你退出应用程序并转到pipmode返回启动器时,意图标志是相同的。
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
我检查了点子模式源代码,他们通过WindowManagerService
来控制它。我认为不能通过应用程序级别访问它。
答案 0 :(得分:0)
您可以构建一个AccessibilityService
,可以AccessibilityWindowInfo
查询isInPictureInPictureMode()
。
请注意,谷歌目前(2017年底)追捕滥用无障碍服务功能,因此要谨慎。这种方法很可能被视为滥用。只有在找不到更好的解决方案时才使用此功能。
有关指南,请参阅Developing an Accessibility Service。
请注意,这需要提示用户的权限,并且用户必须明确接受辅助功能服务。