2017-12-18 88 views
6

एंड्रॉइड ओरेओ में है। गतिविधि पीआईपी मोड में जा सकती है और लॉन्चर पर वापस जा सकती है।। क्या यह जानने का कोई तरीका है कि सिस्टम में पाइप मोड

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

अब मैं लांचर हूँ। क्या वर्तमान में यह जानने का कोई तरीका है कि स्क्रीन पर प्रदर्शित एक पाइप विंडो है?

isInPictureInPictureMode() केवल आपके एप्लिकेशन पाइपमोड को इंगित करता है, जो पीपी मोड में अन्य ऐप जाने पर गलत होगा।

जब आप एप्लिकेशन से बाहर निकलें और लॉन्चर पर वापस पाइपमोड पर जाएं तो इरादा झंडे समान थे।

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

एक तरीका यह है कि आप एक 'पहुंच-योग्यता सेवा' बना सकते हैं जो 'AccessInWictowInfo' के लिए 'InInPictureInPictureMode() 'पूछताछ कर सकता है। ध्यान दें कि Google वर्तमान में (देर से 2017) पहुंच-योग्यता सेवा सुविधा के दुरुपयोग को शिकार कर रहा है, इसलिए सावधान रहें। इसका उपयोग केवल तभी करें जब आपको बेहतर समाधान नहीं मिल सका। https://developer.android.com/reference/android/view/accessibility/AccessibilityWindowInfo.html#isInPictureInPictureMode() – Madushan

+0

मैं सेवा सूची में 'सूची <एक्सेसिबिलिटीविंडोइन्फो> विंडोज = getWindows(); 'का उपयोग कर विंडोज से पूछता हूं। इसमें कुछ भी नहीं है, क्या यह सामान्य है? इसके अलावा इस विधि को मैन्युअल रूप से खुली पहुंच की आवश्यकता है। –

+1

आपको काम करने के लिए सुलभता सेवा के लिए कुछ अनुमतियों का अनुरोध करने की आवश्यकता है। उपयोगकर्ता को इसके पंजीकरण को मंजूरी देनी है। Https://developer.android.com/training/accessibility/service.html – Madushan

उत्तर

0

आप AccessibilityService बना सकते हैं जो isInPictureInPictureMode() के लिए AccessibilityWindowInfo एस से पूछ सकता है।

ध्यान दें कि Google वर्तमान में (देर से 2017) पहुंच क्षमता सेवा सुविधा के दुरुपयोग को शिकार कर रहा है, इसलिए सावधान रहें। इस दृष्टिकोण को दुरुपयोग के रूप में गिनने की संभावना बहुत अधिक होगी। इसका उपयोग केवल तभी करें जब आपको बेहतर समाधान नहीं मिल सका।

एक गाइड के लिए Developing an Accessibility Service देखें।

ध्यान दें कि इसे उपयोगकर्ता की अनुमति के लिए संकेत देने की आवश्यकता है और उपयोगकर्ता को स्पष्टता सेवा को स्पष्ट रूप से स्वीकार करना होगा।

संबंधित मुद्दे

 संबंधित मुद्दे