在Android 8.0以上.有没有办法知道系统中有pip模式

Shu*_*ang 7 android android-tv android-8.0-oreo

在Android Oreo中.活动可以进入点模式并返回启动器.

https://developer.android.com/guide/topics/ui/picture-in-picture.html

现在我是发射器.有没有办法知道目前屏幕上是否显示了一个点子窗口?

isInPictureInPictureMode() 仅指示您的应用程序pipmode,如果有其他应用程序进入pip模式,则该pipmode将为false.

退出应用程序并转到pipmode返回启动程序时,intent标志是相同的.

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
Run Code Online (Sandbox Code Playgroud)

我检查点模式源代码,他们通过控制它WindowManagerService.我不认为可以通过应用程序级别访问它.

Mad*_*han 0

您可以构建一个AccessibilityService可以查询AccessibilityWindowInfos 的isInPictureInPictureMode().

请注意,Google 目前(2017 年底)正在追查无障碍服务功能的滥用行为,因此请务必谨慎。这种方法很可能会被视为滥用。仅当您找不到更好的解决方案时才使用此方法。

有关指南,请参阅开发辅助服务。

请注意,这需要提示用户的许可,并且用户必须明确接受辅助功能服务。