2017-12-18 9 views
6

Android Oreoで。アクティビティはpipモードに入り、ランチャーに戻ることができます。上記のAndroid 8.0の場合。システムにピップモードがあることを知る方法はありますか?

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

今私はランチャーです。現在、ピップウィンドウが画面に表示されていることを知る方法はありますか?

isInPictureInPictureMode()あなたのアプリケーションのpipmodeのみを示します。これは、他のアプリがpipモードに入ると偽になります。

インテントフラグは、アプリケーションを終了してから、起動モードに戻るように移動したときと同じでした。

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

「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

isInPictureInPictureMode()の​​を照会できるAccessibilityServiceを構築することができます。

Googleは現在、アクセシビリティサービス機能の悪用を捜し求めています(2017年後半)ので注意してください。このアプローチは、おそらく濫用とみなされます。これは、より良い解決策が見つからない場合にのみ使用してください。

ガイドについては、Developing an Accessibility Serviceを参照してください。

これは、ユーザーのアクセス許可を求めるプロンプトが必要であり、ユーザーがアクセシビリティサービスを明示的に受け入れる必要があることに注意してください。

関連する問題