2017-12-18 58 views
6

Android Oreo。該活動可以進入點子模式並返回到啓動器。在Android 8.0以上。有沒有什麼辦法可以知道系統中有pip模式

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

現在我發射。有沒有什麼辦法可以知道屏幕上顯示了一個點子窗口?

isInPictureInPictureMode()只顯示您的應用程序pipmode,如果有其他應用程序進入pip模式,則該值將爲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

我檢查PIP模式源代碼和它們由WindowManagerService控制此。我不認爲它可以通過應用程序級別訪問。

+1

一種方法是,您可以構建一個'AccessibilityService',它可以查詢'IsInPictureInPictureMode()'的'AccessibilityWindowInfo's。請注意,Google目前(2017年底)正在追查無障礙服務功能的濫用情況,因此請謹慎。只有在找不到更好的解決方案時才使用它。 https://developer.android.com/reference/android/view/accessibility/AccessibilityWindowInfo.html#isInPictureInPictureMode() – Madushan

+0

我在ServiceConnected中使用'List windows = getWindows();'查詢Windows。它什麼都不包含,這是正常的嗎? 此方法還需要手動打開輔助功能。 –

+1

您需要請求某些權限才能使Accessibility Service正常工作。用戶必須批准註冊。請參閱https://developer.android.com/training/accessibility/service.html – Madushan

回答

0

你可以建立一個AccessibilityService它可以查詢​​s爲isInPictureInPictureMode()

請注意,谷歌目前(2017年底)追捕無障礙服務功能的濫用,所以要謹慎。這種做法很可能會被視爲濫用。只有在找不到更好的解決方案時才使用它。

查看Developing an Accessibility Service的指導。

請注意,這需要提示用戶的權限,用戶必須明確接受輔助功能服務。

相關問題