2015-02-15 14 views
5

बनाने के लिए AccessibilityNodeInfo का दृश्य प्राप्त करें मैं AccessibilityService लिख रहा हूं और मैं वर्तमान गतिविधि से दृश्यों पर व्यू ओवरले बनाना चाहता हूं, जो अभिगम्यता सेवा पुनर्प्राप्त कर सकती है। मुझे वर्तमान गतिविधि से सभी AccessibilityNodeInfo ऑब्जेक्ट्स को पुनर्प्राप्त करने में कोई समस्या नहीं है, लेकिन मुझे नहीं पता कि ओवरले बनाने के लिए इन ऑब्जेक्ट्स के विचारों को कैसे प्राप्त किया जाए। दुर्भाग्य से अभिगम्यता सेवाओं के संबंध में केवल कुछ उदाहरण हैं। हो सकता है कि आप में से कुछ को पहले से ही इस विषय के साथ अनुभव हो। मुझे आशा है आप मेरी मदद कर सकते हैं! धन्यवाद!ओवरले

संपादित करें: एक कागज पता चलता है कि एक गतिविधि के दृश्य सामग्री पर ओवरले संभव हो रहे हैं:

डिस्प्ले ओवरले Android पहुंच फ्रेमवर्क [10] को इन कार्यों को धन्यवाद प्रदर्शन करने में सक्षम है। पहुँच एपीआई का उपयोग करना, यह , संशोधन या आवेदन कोड के उपकरण की आवश्यकता के बिना तक पहुँचने के लिए और स्क्रीन पर आवेदनों की जीयूआई लेआउट का निरीक्षण करने में सक्षम है "*

लिंक:। http://www.onarlioglu.com/publications/fc2015babelcrypt.pdf

पेज 6 और 8 धन्यवाद!

+1

'AccessibilityNodeInfo' से ऑन-स्क्रीन सीमाएं पुनर्प्राप्त करें। अपने ओवरले की ऑन-स्क्रीन सीमाओं के सापेक्ष समन्वय में कनवर्ट करें। अपने ओवरले पर आकर्षित करें। – alanv

उत्तर

3

आप अन्य एप्लिकेशन से View वस्तुओं नहीं मिल सकता है के रूप में View वस्तुओं तुम्हारा से एक अलग प्रक्रिया में हैं।

+0

तेज़ उत्तर के लिए धन्यवाद! लेकिन वे दृश्य वस्तुओं पर दृश्य ओवरले बनाने के लिए कैसे संभव है? मुझे पता है कि यह संभव होना चाहिए, क्योंकि मैंने इसके बारे में एक पेपर पढ़ा है। गतिविधि के जीयूआई को एक्सेसिबिलिटी सर्विस के माध्यम से पार किया गया है और फिर ओवरले बनाये गये हैं। – zuuurek

+0

@zuuurek: "लेकिन वे दृश्य वस्तुओं पर दृश्य ओवरले बनाने के लिए कैसे संभव है?" - मुझे नहीं पता कि इसका मतलब क्या है। "मुझे पता है कि यह संभव होना चाहिए, क्योंकि मैंने इसके बारे में एक पेपर पढ़ा है" - क्या आपके पास एक लिंक है? – CommonsWare

+0

मेरा संपादन देखें। धन्यवाद! – zuuurek

0

अभिगम्यता सेवाओं का उपयोग कर खिड़की पर ओवरले ड्राइंग आसान है। मुझे पता है कि यह एक पुराना सवाल है, लेकिन मैंने सोचा कि मैं वैसे भी जवाब जोड़ूंगा।

RelativeLayout relativeLayout = new RelativeLayout(getContext()); 

WindowManager.LayoutParams topButtonParams = new WindowManager.LayoutParams(
    width, //The width of the screen 
    height, //The height of the screen 
    WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY, 
    WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, 
    PixelFormat.TRANSLUCENT); 

//Just trust me, this alpha thing is important. I know it's weird on a "translucent" view. 
topButtonParams.alpha = 100; 

relativeLayout.setLayoutParams(topButtonParams); 

mWindowManager.addView(relativeLayout, topButtonParams); 

इसके अलावा, यदि आप इस अनुमति आपके प्रकट

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> 

में विचारों को जोड़ने यह आसान है की जरूरत है एक बार जब आप पूरे स्क्रीन के शीर्ष पर एक अदृश्य रिश्तेदार लेआउट ओवरले हैं,!

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