इस पेज में बताया गया है कि वीएचएएल में रोटरी इनपुट कैसे प्रोसेस करें और अपने बिल्ड को कैसे कॉन्फ़िगर करें रोटरी सेवा शामिल करने और सभी ऐप्लिकेशन में रोटरी अनुभव को कस्टमाइज़ करने का तरीका जानें. पहले से इंस्टॉल किए गए OEM ऐप्लिकेशन के लिए, जैसे कि OEM से मिला लॉन्चर, देखें कार यूज़र इंटरफ़ेस (यूआई) लाइब्रेरी (car-ui-library).
वीएचएएल
रोटरी कंट्रोलर में ये कार्रवाइयां की जा सकती हैं:
- थोड़ा सा ऊपर, नीचे, बाएं, और दाएं करें.
- घड़ी की दिशा में और घड़ी की उलटी दिशा में घुमाएं.
- बीच वाला बटन दबाएं.
- 'वापस जाएं' बटन दबाएं.
- होम बटन दबाएं.
- दूसरे बटन दबाएं, जैसे कि फ़ोन और मीडिया.
दस्तावेज़ के लिए hardware/interfaces/automotive/vehicle/2.0/types.hal
पर जाएं
सिस्टम की प्रॉपर्टी और उससे जुड़ी int32Values
.
वीएचएएल को ये कार्रवाइयां करनी चाहिए:
नज
जब उपयोगकर्ता रोटरी कंट्रोलर को दाईं ओर धकेलता है, तो वीएचएएल को
HW_KEY_INPUT
प्रॉपर्टी जिसमें ये int32Values
शामिल हैं
Android के लिए इवेंट:
ACTION_DOWN
KEYCODE_SYSTEM_NAVIGATION_RIGHT
- टारगेट डिसप्ले.
जब उपयोगकर्ता रोटरी कंट्रोलर रिलीज़ करता है, तो वीएचएएल को उसी प्रॉपर्टी का इस्तेमाल करना चाहिए और
ACTION_UP
के साथ कीकोड. अन्य दिशा-निर्देशों में ईमेल का जवाब देने के लिए,
संबंधित कीकोड.
डायगनल के लिए कीकोड मौजूद नहीं होते, लेकिन वीएचएएल, हॉरिज़ॉन्टल और वर्टिकल को मिला सकता है अगर हार्डवेयर डायगनल को सपोर्ट करता है, तो डायगनल पैदा करने के लिए किया जाता है. उदाहरण के लिए, ऊपर की ओर इशारा करना और बाईं ओर:
HW_KEY_INPUT KEYCODE_SYSTEM_NAVIGATION_LEFT ACTION_DOWN
HW_KEY_INPUT KEYCODE_SYSTEM_NAVIGATION_UP ACTION_DOWN
रोटरी कंट्रोलर को छोड़ने के बाद भी, किसी भी क्रम में:
HW_KEY_INPUT KEYCODE_SYSTEM_NAVIGATION_LEFT ACTION_UP
HW_KEY_INPUT KEYCODE_SYSTEM_NAVIGATION_UP ACTION_UP
उपयोगकर्ता रोटरी कंट्रोलर को छोड़ने से पहले, उसे लंबवत दिशा में धकेल सकता है. उदाहरण के लिए, यह उदाहरण:
इससे इवेंट का यह क्रम जनरेट होना चाहिए:
HW_KEY_INPUT KEYCODE_SYSTEM_NAVIGATION_LEFT ACTION_DOWN
HW_KEY_INPUT KEYCODE_SYSTEM_NAVIGATION_UP ACTION_DOWN
HW_KEY_INPUT KEYCODE_SYSTEM_NAVIGATION_LEFT ACTION_UP
HW_KEY_INPUT KEYCODE_SYSTEM_NAVIGATION_UP ACTION_UP
रोटरी कंट्रोलर को होल्ड पर रखने के दौरान, कोई दोहराया इवेंट जनरेट नहीं होना चाहिए एक दिशा में.
घुमाएं
जब उपयोगकर्ता रोटरी कंट्रोलर को घड़ी की दिशा में एक से दूसरी जगह घुमाता है (क्लिक करें), तो वीएचएएल
को HW_ROTARY_INPUT
प्रॉपर्टी का इस्तेमाल नीचे दिए गए int32Values
के साथ करना चाहिए
Android को कोई इवेंट भेजने के लिए:
ROTARY_INPUT_TYPE_SYSTEM_NAVIGATION
- एक (1) व्यक्ति का ध्यान रखना.
- टारगेट डिसप्ले.
इवेंट के टाइमस्टैंप को नैनोसेकंड में बीत चुके समय पर सेट किया जाना चाहिए.
एक (1) डिटेंट घड़ी की उलटी दिशा में घुमाने से वही इवेंट जनरेट होना चाहिए, लेकिन बंदियों की संख्या के लिए -1.
अगर एक ही दिशा में कई बार एक ही दिशा में बार-बार घूमा जाता है, तो वीएचएएल
डिटेंट को एक ही इवेंट में मिला देना चाहिए, ताकि सिस्टम पर ज़्यादा इवेंट न हों.
इस मामले में, इवेंट का टाइमस्टैंप वह समय होना चाहिए जब पहली बार रोटेशन का डिटेंशन किया गया हो.
int32Values
में लगातार डिटेंट के बीच नैनोसेकंड की संख्या शामिल होनी चाहिए
रोटेशन का.
उदाहरण के लिए, रोटेशन का नीचे दिया गया क्रम:
- t0 समय पर, उपयोगकर्ता ने एक दूरी को घड़ी की उलटी दिशा में घुमाया.
- t0 + 5 ns के समय, उपयोगकर्ता ने एक डिटेंट को घड़ी की उलटी दिशा में घुमाया.
- t0 + 8 ns के समय, उपयोगकर्ता ने एक डिटेंट को घड़ी की उलटी दिशा में घुमाया.
को यह इवेंट जनरेट करना चाहिए:
- प्रॉपर्टी:
HW_ROTARY_INPUT
- टाइमस्टैंप:
t0
int32Values
:ROTARY_INPUT_TYPE_SYSTEM_NAVIGATION
- -3 (घड़ी की उलटी दिशा में तीन डिटेक्ट).
- टारगेट डिसप्ले.
- पहले और दूसरे डिटेंट के बीच 5 एनएन.
- दूसरे और तीसरे डिटेंट के बीच 3 एन॰
बीच वाला बटन
जब उपयोगकर्ता केंद्र बटन दबाता है, तो वीएचएएल को HW_KEY_INPUT
का इस्तेमाल करना चाहिए
प्रॉपर्टी:int32Values
ACTION_DOWN
KEYCODE_DPAD_CENTER
- टारगेट डिसप्ले.
जब उपयोगकर्ता रोटरी कंट्रोलर रिलीज़ करता है, तो वीएचएएल को उसी प्रॉपर्टी का इस्तेमाल करना चाहिए
और ACTION_UP
के साथ कीकोड.
सेंटर बटन दबाकर रखने पर, दोहराए गए इवेंट जनरेट न करें.
'वापस जाएं' बटन
जब उपयोगकर्ता 'वापस जाएं' बटन दबाता है, तो वीएचएएल को HW_KEY_INPUT
का इस्तेमाल करना चाहिए
प्रॉपर्टी:int32Values
ACTION_DOWN
KEYCODE_BACK
- टारगेट डिसप्ले.
जब उपयोगकर्ता रोटरी कंट्रोलर रिलीज़ करता है, तो वीएचएएल को उसी प्रॉपर्टी का इस्तेमाल करना चाहिए
और ACTION_UP
के साथ कीकोड.
केंद्र बटन को दबाकर रखने पर कोई दोहराव इवेंट जनरेट नहीं होना चाहिए.
होम बटन
होम बटन को उसी तरह इस्तेमाल करें जैसे कि 'वापस जाएं' बटन को करते हैं, लेकिन इसके बजाय KEYCODE_HOME
का इस्तेमाल किया जाता है
कुल KEYCODE_BACK
.
अन्य बटन
अगर रोटरी कंट्रोलर में ज़्यादा बटन शामिल हैं, तो VHAL उन्हें हैंडल कर सकता है
OEM को पसंद है, क्योंकि Android के लिहाज़ से उन्हें रोटरी का हिस्सा नहीं माना जाता.
आम तौर पर, इन्हें 'वापस जाएं' और 'होम' बटन की तरह ही इस्तेमाल किया जाता है, लेकिन इनका कीकोड अलग-अलग होते हैं.
उदाहरण के लिए, KEYCODE_CALL
या KEYCODE_MUSIC
.
बिल्ड कॉन्फ़िगरेशन
रोटरी नेविगेशन, RotaryService
नाम की सुलभता सेवा से मिलता है.
इस सेवा को अपने डिवाइस की सिस्टम इमेज में शामिल करने के लिए, अपने
मेकफ़ाइल:
PRODUCT_PACKAGES += CarRotaryController
डीबग बिल्ड में, यहां दिए गए पैकेज भी शामिल किए जा सकते हैं:
RotaryPlayground
रोटरी के लिए रेफ़रंस ऐप्लिकेशन (देखें RotaryPlayground).RotaryIME
रोटरी IME का डेमो (इनपुट के तरीके के एडिटर देखें).CarRotaryImeRRO
RotaryIME
का ओवरले.
रोटरी सेवा, डिवाइस के चालू होने और उपयोगकर्ता के चालू होने पर अपने-आप चालू हो जाती है स्विच होता है. इससे यह पक्का होता है कि उपयोगकर्ता सेट-अप के दौरान रोटरी कंट्रोलर का इस्तेमाल कर सकता है.
अगर रोटरी कंट्रोलर के साथ और उसके बिना, एक ही बिल्ड का इस्तेमाल कारों के लिए किया जा रहा है, तो
ऊपर दिखाए गए तरीके से CarRotaryController
जोड़ें, ताकि ज़रूरी कोड शामिल किया जा सके
बिल्ड में मौजूद है. नॉन-रोटरी कारों पर रोटरी सेवा चालू होने से रोकने के लिए,
स्टैटिक RRO, rotaryService
स्ट्रिंग रिसॉर्स को ओवरले करेगा
खाली स्ट्रिंग के साथ packages/services/Car/service
. आपको पहले जैसा ही बिल्ड इस्तेमाल करना होगा,
हालांकि, रोटरी और नॉन-रोटरी डिवाइस के लिए, प्रॉडक्ट कॉन्फ़िगरेशन अलग-अलग हों. सिर्फ़ बाद वाला
इसमें ओवरले शामिल हैं.
पसंद के मुताबिक बनाएं
OEM, फ़ोकस फ़ाइंडिंग लॉजिक, फ़ोकस हाइलाइट, और कुछ अन्य आइटम को पसंद के मुताबिक बना सकता है. ऐसा करने के लिए इन जगहों पर रिसॉर्स ओवरले मौजूद है:
- कार-यूआई-लाइब्रेरी
packages/apps/Car/libs/car-ui-lib
में है RotaryService
,packages/apps/Car/RotaryController
में हैCore
,frameworks/base/core
में है
नज इतिहास
OEM यह कॉन्फ़िगर कर सकता है कि दो तरह के रिमाइंडर का इतिहास चालू है या नहीं. अगर हां, तो कैश मेमोरी का साइज़ और समयसीमा खत्म होने की नीति. यह सब अलग-अलग कार-यूआई-लाइब्रेरी को ओवरराइड करके किया जाता है संसाधन.
इतिहास की कैश मेमोरी पर फ़ोकस करें
(Android 11 QPR3, Android 11 कार,
Android 12)
हर FocusArea
कैश मेमोरी में सबसे हाल का फ़ोकस किया गया व्यू,
FocusArea
पर क्लिक करें, ताकि FocusArea
पर वापस जाते समय इस पर फ़ोकस किया जा सके.
कार-यूआई-लाइब्रेरी के इन संसाधनों को ओवरले करके, इस कैश मेमोरी को कॉन्फ़िगर किया जा सकता है:
-
car_ui_focus_history_cache_type
:- कैश मेमोरी की सुविधा बंद है.
- कुछ समय बाद कैश मेमोरी मिट जाएगी. इसकी जानकारी नीचे दी गई है.
- कैश मेमोरी की समयसीमा कभी खत्म नहीं होगी.
car_ui_focus_history_expiration_period_ms
: अगर कैश का टाइप दो (2) पर सेट है, तो कैश मेमोरी की समयसीमा खत्म हो जाएगी (ऊपर देखें).
फ़ोकस-एरिया के इतिहास की कैश मेमोरी
(Android 11 QPR3, Android 11 कार,
Android 12)
यह कैश मेमोरी में ईमेल का जवाब देने के लिए रिमाइंडर का इतिहास सेव किया जाता है, ताकि उलटी दिशा में आगे बढ़ा जा सके
उसी FocusArea
पर फ़ोकस वापस करो. इस कैश मेमोरी को
ये कार-यू-लाइब्रेरी संसाधनों के लिए:
-
car_ui_focus_area_history_cache_type
:- कैश मेमोरी की सुविधा बंद है.
- कुछ समय बाद कैश मेमोरी खत्म हो जाती है (नीचे देखें).
- कैश मेमोरी की समयसीमा कभी खत्म नहीं होती.
car_ui_focus_area_history_expiration_period_ms
: पहले कितने मिलीसेकंड अगर कैश का टाइप 2 पर सेट है, तो कैश मेमोरी की समयसीमा खत्म हो जाएगी (ऊपर देखें).car_ui_clear_focus_area_history_when_rotating
: क्या कैश मेमोरी को खाली करना है जब उपयोगकर्ता कंट्रोलर को घुमाता है.
रोटेशन
(Android 11 QPR3, Android 11 कार,
Android 12)
OEM यह तय करने के लिए कि क्या, RotaryService
में दो पूर्णांक वाले संसाधनों को बदला जा सकता है
रोटेशन के लिए त्वरण है, जैसे माउस त्वरण:
rotation_acceleration_3x_ms
: तय करने के लिए इस्तेमाल किया गया समय का अंतराल (मिलीसेकंड में) कि क्या Google को रोटेशन के डिटेंट के लिए नियंत्रक रोटेशन को तेज़ी से बढ़ाना चाहिए. अगर इस डिटेंट और पिछले रोटेशन के पिछले डिटेंट के बीच का अंतराल इस मान से कम है, इसे रोटेशन के तीन डिटेंट माना जाएगा. 3× बंद करने के लिए, इसे 2147483647 पर सेट करें त्वरण.rotation_acceleration_2x_ms
:rotation_acceleration_3x_ms
की तरह. 2× त्वरण के लिए इस्तेमाल किया जाता है. 2× एक्सेलरेटर को बंद करने के लिए, इसे2147483647
पर सेट करें.
ऐक्सेलरेशन तब बेहतर काम करता है, जब हर डिटेक्ट के लिए अलग-अलग टाइमस्टैंप हों
रोटेशन, जैसा
ज़रूरी है
की मदद से तैयार किया है. अगर ये उपलब्ध नहीं हैं, तो RotaryService
यह मान लेता है कि
रोटेशन एक समान दूरी पर हैं.
/** * Property to feed H/W rotary events to android * * int32Values[0] : RotaryInputType identifying which rotary knob rotated * int32Values[1] : number of detents (clicks), positive for clockwise, * negative for counterclockwise * int32Values[2] : target display defined in VehicleDisplay. Events not * tied to specific display must be sent to * VehicleDisplay#MAIN. * int32values[3 .. 3 + abs(number of detents) - 2]: * nanosecond deltas between pairs of consecutive detents, * if the number of detents is > 1 or < -1 * * VehiclePropValue.timestamp: when the rotation occurred. If the number of * detents is > 1 or < -1, this is when the * first detent of rotation occurred. * * @change_mode VehiclePropertyChangeMode:ON_CHANGE * @data_enum RotaryInputType * @access VehiclePropertyAccess:READ */ HW_ROTARY_INPUT = ( 0x0A20 | VehiclePropertyGroup:SYSTEM | VehiclePropertyType:INT32_VEC | VehicleArea:GLOBAL),
हाइलाइट पर फ़ोकस करें
OEM, Android फ़्रेमवर्क में डिफ़ॉल्ट फ़ोकस हाइलाइट को बदल सकता है और कार-यूआई-लाइब्रेरी में कई फ़ोकस हाइलाइट संसाधन.
डिफ़ॉल्ट फ़ोकस हाइलाइट
Android फ़्रेमवर्क, एट्रिब्यूट का इस्तेमाल करके डिफ़ॉल्ट तौर पर फ़ोकस हाइलाइट
selectableItemBackground
. Theme.DeviceDefault
में, यह
एट्रिब्यूट, Core
में item_background.xml
का संदर्भ देता है. OEM ओवरले कर सकता है
ड्रॉ करने लायक डिफ़ॉल्ट फ़ोकस हाइलाइट को बदलने के लिए item_background.xml
.
आम तौर पर, ड्रॉ करने लायक यह StateListDrawable
होना चाहिए, जो बैकग्राउंड में बदलाव करता है
राज्यों के अलग-अलग कॉम्बिनेशन के हिसाब से. इनमें android:state_focused
भी शामिल हैं
और android:state_pressed
. जब उपयोगकर्ता रोटरी कंट्रोलर का इस्तेमाल करता है
किसी व्यू पर फ़ोकस करें, android:state_focused
true
होगी, लेकिन
android:state_pressed
, false
होगा. अगर उपयोगकर्ता इसके बाद दबाता है
रोटरी कंट्रोलर पर सेंटर बटन, android:state_focused
और दोनों
जब तक उपयोगकर्ता बटन को दबाए नहीं रखता, तब तक android:state_pressed
, true
रहेगा.
जब उपयोगकर्ता बटन को रिलीज़ करता है, तो सिर्फ़ android:state_focused
बची रहेगी
true
.
कार-यूआई-लाइब्रेरी, Theme.DeviceDefault
से ली गई थीम का इस्तेमाल करती है. इस वजह से,
यह ओवरले इस लाइब्रेरी का इस्तेमाल करने वाले ऐप्लिकेशन और इनसे ली गई किसी भी थीम का इस्तेमाल करने वाले ऐप्लिकेशन पर असर डालता है
Theme.DeviceDefault
. इससे उन ऐप्लिकेशन पर कोई असर नहीं पड़ेगा जो किसी अन्य थीम का इस्तेमाल करते हैं.
जैसे कि Theme.Material
.
कार-यूआई-लाइब्रेरी में हाइलाइट संसाधनों पर फ़ोकस करें
फ़ोकस को हाइलाइट करने के तरीके को कंट्रोल करने के लिए, OEM, कार-यूआई-लाइब्रेरी के कई संसाधनों को बदल सकता है
ऐसे व्यू पर फ़ोकस करता है जिनमें गैर-आयताकार (जैसे कि गोल या गोली के आकार का) फ़ोकस हाइलाइट किया गया हो और
ऐसे ऐप्लिकेशन जो किसी ऐसी थीम का इस्तेमाल करते हैं जो Theme.DeviceDefault
से नहीं मिलती. ये
संसाधनों को ओवरलैप किया जाना चाहिए, ताकि फ़ोकस हाइलाइट
डिफ़ॉल्ट फ़ोकस हाइलाइट ड्रॉ किया जा सकता है.
(Android 11 QPR3, Android 11 कार,
Android 12)
इन संसाधनों का इस्तेमाल यह बताने के लिए किया जाता है कि व्यू कब फ़ोकस हुआ है, लेकिन नहीं दबाया गया है:
car_ui_rotary_focus_fill_color
: रंग भरें.car_ui_rotary_focus_stroke_color
: आउटलाइन का रंग.car_ui_rotary_focus_stroke_width
: आउटलाइन की मोटाई.
(Android 11 QPR3, Android 11 कार,
Android 12)
इन संसाधनों का इस्तेमाल यह बताने के लिए किया जाता है कि किसी व्यू पर कब फ़ोकस किया जाता है और उसे दबाया जाता है:
car_ui_rotary_focus_pressed_fill_color
: रंग भरें.car_ui_rotary_focus_pressed_stroke_color
: आउटलाइन का रंग.car_ui_rotary_focus_pressed_stroke_width
: आउटलाइन की मोटाई.
कभी-कभी उपयोगकर्ता का ध्यान खींचने के लिए, बटन के बैकग्राउंड को हल्के रंग से दिखाया जाता है, जैसा कि ऊपर दिए गए उदाहरण में बताया गया है. इस वजह से, फ़ोकस हाइलाइट को देखने में परेशानी हो सकती है.
इस स्थिति में, डेवलपर सेकंडरी रंग:
- (Android 11 QPR3, Android 11 कार,
Android 12)
car_ui_rotary_focus_fill_secondary_color
car_ui_rotary_focus_stroke_secondary_color
- (Android 12)
car_ui_rotary_focus_pressed_fill_secondary_color
car_ui_rotary_focus_pressed_stroke_secondary_color
इनमें से कोई भी रंग पारदर्शी हो सकता है और डाइमेंशन में से कोई भी शून्य हो सकता है. उदाहरण के लिए, सिर्फ़ एक झलक या सिर्फ़ आउटलाइन की ज़रूरत थी.
फ़ोकस एरिया हाइलाइट
(Android 11 QPR3, Android 11 कार,
Android 12)
अगर FocusArea
का कोई डिसेंडेंट पहले, दो तरह से हाइलाइट कर सकता है
फ़ोकस्ड. अगर ज़रूरी हो, तो दोनों को साथ में भी इस्तेमाल किया जा सकता है. यह सुविधा इसमें डिफ़ॉल्ट रूप से अक्षम होती है
एओएसपी, लेकिन कार-यूआई-लाइब्रेरी संसाधनों को ओवरराइड करके इसे चालू किया जा सकता है:
car_ui_enable_focus_area_foreground_highlight
: इसके सबसे ऊपर एक हाइलाइट बनाएंFocusArea
और उसके डिसेंडेंट. एओएसपी में, ड्रॉ करने लायक यह एक आउटलाइन हैFocusArea
के आस-पास. OEM इन्हें ओवरराइड कर सकते हैं:car_ui_focus_area_foreground_highlight
ड्रॉ करने लायक.car_ui_enable_focus_area_background_highlight
: इसके सबसे ऊपर एक हाइलाइट बनाएंFocusArea
लेकिन इसके डिसेंडेंट के पीछे. एओएसपी में, यह ड्रॉ करने लायक एक ठोस फ़िल होता है. OEM, ड्रॉ करने लायकcar_ui_focus_area_background_highlight
को बदल सकते हैं.
इनपुट के तरीके के एडिटर
इनपुट के तरीके के एडिटर (IME) इनपुट के तरीके हैं. उदाहरण के लिए, ऑन-स्क्रीन कीबोर्ड.
(Android 11 QPR3, Android 11 कार,
Android 12)
OEM को default_touch_input_method
स्ट्रिंग रिसॉर्स को ओवरले करना चाहिए
के ComponentName
को साफ़ तौर पर बताने के लिए, RotaryService
में
टच-आधारित IME. उदाहरण के लिए, अगर OEM, Android Automotive के साथ दिए गए IME का इस्तेमाल करता है,
उन्हें तय करना चाहिए कि
com.google.android.apps.automotive.inputmethod/.InputMethodService
.
(Android 11 QPR3, Android 11 कार,
Android 12)
अगर OEM ने खास तौर पर रोटरी के लिए कोई IME बनाया है, तो उन्हें इसकी जानकारी देनी होगी
rotary_input_method
संसाधन में ComponentName
. अगर यह संसाधन
ऊपर से सेट किया जाता है, तो जब भी उपयोगकर्ता मुख्य यूनिट से इंटरैक्ट करता है, तब तय किए गए IME का इस्तेमाल किया जाता है
इसे रोटरी कंट्रोलर के नज, रोटेशन, और सेंटर बटन से ऐक्सेस किया जा सकता है. जब उपयोगकर्ता किसी आइटम को छूता है
तो पिछली IME का उपयोग किया जाएगा. 'वापस जाएं' बटन (और रोटरी पर मौजूद अन्य बटन)
कंट्रोलर) का इस्तेमाल करने से IME चुनने पर कोई असर नहीं पड़ता. अगर इस संसाधन को ओवरले नहीं किया गया है, तो IME स्विच नहीं किया जाएगा
होता है. Carboard, रोटरी के साथ काम नहीं करता. इसलिए, उपयोगकर्ता रोटरी के ज़रिए टेक्स्ट नहीं डाल सकता
नियंत्रक को उस समय मिल सकता है जब OEM ने रोटरी IME उपलब्ध न कराया हो.
RotaryIME
एक डेमो रोटरी IME है. हालांकि, बुनियादी जानकारी देते समय, यह
ऊपर बताए गए अपने-आप IME स्विच करने की सुविधा आज़माएं. RotaryIME
का सोर्स कोड
packages/apps/Car/tests/RotaryIME/
में मिल सकते हैं.
स्क्रीन से दूर रिमाइंडर
डिफ़ॉल्ट रूप से, जब उपयोगकर्ता स्क्रीन के किनारे से कुछ हटाने की कोशिश करता है, तो कुछ नहीं होता. OEM यह कॉन्फ़िगर कर सकता है कि चारों में से हर एक दिशा-निर्देश में क्या होना चाहिए. इसके लिए, OEM का संयोजन:
AccessibilityService
की ओर से तय की गई ग्लोबल कार्रवाई. उदाहरण के लिए,GLOBAL_ACTION_BACK
.- कुंजी कोड, जैसे कि
KEYCODE_BACK
. - यूआरएल के तौर पर दिखाई जाने वाली गतिविधि को लॉन्च करने के इरादे से.
(Android 11 QPR3, Android 11 कार,
Android 12)
इनका इस्तेमाल, नीचे दिए गए अरे रिसोर्स को ओवरले करके किया जाता है.
RotaryService
:
off_screen_nudge_global_actions
: ग्लोबल कार्रवाइयों का कलेक्शन जब उपयोगकर्ता स्क्रीन के किनारे से ऊपर, नीचे, बाएं या दाएं करता है. कोई वैश्विक क्रिया नहीं है तब लागू किया जाता है, जब इस अरे का एलिमेंट -1 हो.off_screen_nudge_key_codes
: इंजेक्ट करने के लिए क्लिक इवेंट के मुख्य कोड की कलेक्शन जब उपयोगकर्ता स्क्रीन के किनारे से ऊपर, नीचे, बाएं या दाएं खिसकाता है. कोई इवेंट नहीं है तब इंजेक्ट किया जाता है, जब इस कलेक्शन में काम का एलिमेंट 0 (KEYCODE_UNKNOWN
) हो.off_screen_nudge_intents
: किसी गतिविधि को लॉन्च करने के लिए इंटेंट की कलेक्शन जब उपयोगकर्ता स्क्रीन के किनारे से ऊपर, नीचे, बाएं या दाएं करता है. कोई गतिविधि नहीं है तब लॉन्च किया जाता है, जब इस अरे में मौजूद एलिमेंट खाली हो.
अन्य कॉन्फ़िगरेशन
आपको इन RotaryService
संसाधनों को ओवरले करना चाहिए:
- (Android 11 QPR3, Android 11 कार,
Android 12)
config_showHeadsUpNotificationOnBottom
: यह दिखाने के लिए बूलियन मान हेड्स-अप नोटिफ़िकेशन ऊपर के बजाय नीचे दिखाई देने चाहिए. यह ज़रूरी हैconfig_showHeadsUpNotificationOnBottom
के समान मान है इसमें बूलियन संसाधन है:frameworks/base/packages/CarSystemUI/res/values/config.xml
- (Android 11 QPR3, Android 11 कार,
Android 12)
notification_headsup_card_margin_horizontal
: इसके लिए बायां और दायां मार्जिन सबसे पहले सूचना देने वाली विंडो. यहnotification_headsup_card_margin_horizontal
डिम संसाधन इसमें हैpackages/apps/Car/Notification/res/values/dimens.xml
- (Android 12)
excluded_application_overlay_window_titles
: इसकी रेंज उन विंडो के टाइटल जिन्हें ओवरले विंडो नहीं माना जाना चाहिए. इसमें टाइटल शामिल होने चाहिए ऐसी ऐप्लिकेशन विंडो हैं जोTaskViews
याTaskDisplayAreas
दिखाती हैं. डिफ़ॉल्ट रूप से, इस सूची में केवल "मैप" ही होते हैं.
आपके पास इस RotaryService
संसाधन को ओवरले करने का विकल्प है:
- (Android 11 QPR3, Android 11 कार,
Android 12)
long_press_ms
: यह दिखाने के लिए पूर्णांक मान कि कितने मिलीसेकंड देर तक दबाए रखने के लिए मध्य बटन को दबाकर रखना आवश्यक है. शून्य का मतलब सिस्टम है देर तक दबाए रखने के लिए डिफ़ॉल्ट टाइम आउट का इस्तेमाल किया जाना चाहिए. यह डिफ़ॉल्ट मान है.