2017-12-18 17 views
6

Android Oreo. 액티비티는 pip 모드로 돌아가서 실행 프로그램으로 돌아갈 수 있습니다. 위의 Android 8.0. 시스템에 pip 모드가 있다는 것을 알 수있는 방법이 있습니까?

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

은 이제 실행기입니다. 현재 화면에 삐 소리가 표시되는 것을 알 수있는 방법이 있습니까?

isInPictureInPictureMode()은 응용 프로그램 pipmode만을 나타내며, 다른 응용 프로그램이 pip 모드로 들어가면 false가됩니다.

응용 프로그램을 종료하고 실행기로 다시 이동하면 인 텐트 플래그가 동일합니다.

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하여이를 제어 할 수 있습니다. 나는 그것이 응용 프로그램 수준을 통해 액세스 할 수 있다고 생각하지 않습니다.

+1

한 가지 방법은'AccessibilityWindowInfo'를'isInPictureInPictureMode()'에 질의 할 수있는'AccessibilityService'를 만들 수 있다는 것입니다. Google은 현재 (2017 년 말) 접근성 서비스 기능의 악용 사례를 조사 중이므로 신중해야합니다. 더 나은 솔루션을 찾을 수없는 경우에만 이것을 사용하십시오. https://developer.android.com/reference/android/view/accessibility/AccessibilityWindowInfo.html#isInPictureInPictureMode() – Madushan

+0

ServiceConnected에서 List windows = getWindows();를 사용하여 Windows에 쿼리합니다. 아무것도 포함하지 않으면 정상입니까? 또한이 방법을 사용하려면 수동으로 액세스 할 수 있어야합니다. –

+1

접근 기능 서비스가 작동하려면 특정 권한을 요청해야합니다. 사용자는 등록을 승인해야합니다. https://developer.android.com/training/accessibility/service.html – Madushan

답변

0

AccessibilityWindowInfo을 쿼리 할 수있는 AccessibilityService을 빌드 할 수 있습니다.

Google은 현재 (2017 년 말) 접근성 서비스 기능 남용을 조심하므로 신중해야합니다. 이 접근법은 학대로 간주 될 가능성이 큽니다. 더 나은 솔루션을 찾을 수없는 경우에만 이것을 사용하십시오.

안내서는 Developing an Accessibility Service을 참조하십시오.

사용자의 동의를 요구하고 사용자가 명시 적으로 액세스 가능성 서비스를 받아 들여야 함을 유의하십시오.