एंड्रॉइड ओपन एक्सेसरी प्रोटोकॉल 2.0, एंड्रॉइड ओपन एक्सेसरी प्रोटोकॉल 2.0

यह दस्तावेज़ एंड्रॉइड ओपन एक्सेसरी (एओए) प्रोटोकॉल में इसकी प्रारंभिक रिलीज के बाद से परिवर्तनों का वर्णन करता है और एओए 1.0 दस्तावेज़ीकरण को पूरक करता है। AOAv2 निम्नलिखित विशेषताएं जोड़ता है:

  • ऑडियो आउटपुट (एंड्रॉइड 8.0 में पदावनत)।
  • Android डिवाइस के लिए एक या अधिक मानव इंटरफ़ेस डिवाइस (HID) के रूप में कार्य करने वाले एक्सेसरी के लिए समर्थन।

एंड्रॉइड एप्लिकेशन डेवलपर्स के लिए उपलब्ध एंड्रॉइड एसडीके एपीआई अपरिवर्तित हैं।

AOAv2 समर्थन का पता लगाना

यह निर्धारित करने के लिए कि क्या कोई कनेक्टेड एंड्रॉइड डिवाइस एक्सेसरीज़ और समर्थित प्रोटोकॉल संस्करण का समर्थन करता है, एक एक्सेसरी को एक getProtocol() कमांड भेजना होगा और परिणाम की जांच करनी होगी। Android डिवाइस जो AOAv1 में केवल विशेषताओं का समर्थन करते हैं, उन्हें प्रोटोकॉल संस्करण के रूप में 1 वापस करना होगा; AOAv2 में अतिरिक्त सुविधाओं का समर्थन करने वाले उपकरणों को प्रोटोकॉल संस्करण के रूप में 2 वापस करना होगा। AOAv2 AOAv1 के साथ पिछड़ा-संगत है, इसलिए मूल सहायक प्रोटोकॉल के लिए डिज़ाइन किए गए सहायक उपकरण नए Android उपकरणों के साथ काम करना जारी रखते हैं।

एक्सेसरी डेवलपमेंट किट 2011 स्रोत कोड ( <adk-src>/adk1/board/AndroidAccessory/AndroidAccessory.cpp ) लाइब्रेरी से निम्न उदाहरण इस प्रोटोकॉल जांच को प्रदर्शित करता है:

bool AndroidAccessory::switchDevice(byte addr)
{
    int protocol = getProtocol(addr);
    if (protocol >= 1) {
        Serial.print("device supports protocol 1 or higher\n");
    } else {
        Serial.print("could not read device protocol version\n");
        return false;
    }

    sendString(addr, ACCESSORY_STRING_MANUFACTURER, manufacturer);
    sendString(addr, ACCESSORY_STRING_MODEL, model);
    sendString(addr, ACCESSORY_STRING_DESCRIPTION, description);
    sendString(addr, ACCESSORY_STRING_VERSION, version);
    sendString(addr, ACCESSORY_STRING_URI, uri);
    sendString(addr, ACCESSORY_STRING_SERIAL, serial);

    usb.ctrlReq(addr, 0, USB_SETUP_HOST_TO_DEVICE | USB_SETUP_TYPE_VENDOR |
                USB_SETUP_RECIPIENT_DEVICE, ACCESSORY_START, 0, 0, 0, 0, NULL);
    return true;
}

AOAv2 में एक्सेसरी मोड में उपलब्ध यूएसबी इंटरफेस के प्रत्येक संयोजन के लिए नई यूएसबी उत्पाद आईडी शामिल हैं:

संस्करण उत्पाद आयडी संचार विवरण
एओएवी1 0x2D00 सहायक Android एप्लिकेशन के साथ संचार करने के लिए दो बल्क एंडपॉइंट प्रदान करता है।
0x2D01 एक्सेसरी + एडीबी सहायक विकास के दौरान डिबगिंग उद्देश्यों के लिए। केवल तभी उपलब्ध है जब उपयोगकर्ता ने एंड्रॉइड डिवाइस सेटिंग्स में यूएसबी डिबगिंग को सक्षम किया हो।
एओएवी2 0x2D02 ऑडियो एंड्रॉइड डिवाइस से एक्सेसरी में ऑडियो स्ट्रीमिंग के लिए।
0x2D03 ऑडियो + एडीबी
0x2D04 एक्सेसरी + ऑडियो
0x2D05 एक्सेसरी + ऑडियो + एडीबी

AOAv1 ( 0x2D00 और 0x2D01 ) में प्रयुक्त उत्पाद ID का AOAv2 में समर्थन जारी है।

ऑडियो समर्थन

AOAv2 में 2 चैनल में सक्षम मानक USB ऑडियो क्लास इंटरफ़ेस के माध्यम से एक Android डिवाइस से एक्सेसरी के लिए ऑडियो आउटपुट के लिए समर्थन शामिल है, 44100 Khz की बिट दर के साथ 16-बिट PCM ऑडियो (भविष्य में अतिरिक्त ऑडियो मोड जोड़े जा सकते हैं)।

ऑडियो समर्थन सक्षम करने के लिए, एक्सेसरी को एक नया USB नियंत्रण अनुरोध भेजना होगा:

**SET_AUDIO_MODE**
requestType:    USB_DIR_OUT | USB_TYPE_VENDOR
request:        58
value:          0 for no audio (default),
                1 for 2 channel, 16-bit PCM at 44100 KHz
index:          0
data            none

एक्सेसरी मोड में प्रवेश करने के लिए ACCESSORY_START कमांड भेजने से पहले यह आदेश भेजा जाना चाहिए।

छिपाई समर्थन

AOAv2 एक्सेसरीज़ को Android डिवाइस के साथ एक या अधिक USB मानव इंटरफ़ेस डिवाइस (HID) को पंजीकृत करने की अनुमति देता है। यह दृष्टिकोण विशिष्ट USB HID उपकरणों जैसे USB चूहों और कीबोर्ड के लिए संचार की दिशा को उलट देता है। आम तौर पर, एचआईडी डिवाइस एक यूएसबी होस्ट (यानी एक पर्सनल कंप्यूटर) से जुड़ा एक परिधीय होता है, लेकिन एओए में यूएसबी होस्ट एक यूएसबी परिधीय के लिए एक या अधिक इनपुट डिवाइस के रूप में कार्य कर सकता है।

HID समर्थन मानक HID ईवेंट के लिए एक प्रॉक्सी है; कार्यान्वयन सामग्री या घटनाओं के प्रकार के बारे में कोई धारणा नहीं बनाता है और बस इसे इनपुट सिस्टम के माध्यम से भेजता है, जिससे AOAv2 एक्सेसरी को किसी भी HID डिवाइस (माउस, कीबोर्ड, गेम कंट्रोलर, आदि) के रूप में कार्य करने में सक्षम बनाता है। आप बुनियादी कार्यक्षमता प्रदान करने के लिए HID समर्थन का उपयोग कर सकते हैं, जैसे कि मीडिया डॉक पर प्ले/पॉज़ बटन, या माउस और पूर्ण QWERTY कीबोर्ड के साथ डॉकिंग स्टेशन जैसी उन्नत कार्यक्षमता के लिए।

AOAv2 नए USB नियंत्रण अनुरोध जोड़ता है जो एक्सेसरी को Android डिवाइस पर एक या अधिक HID इनपुट डिवाइस के रूप में कार्य करने की अनुमति देता है। एचआईडी समर्थन पूरी तरह से एंडपॉइंट शून्य पर नियंत्रण अनुरोधों के माध्यम से नियंत्रित किया जाता है, इसलिए किसी नए यूएसबी इंटरफ़ेस की आवश्यकता नहीं है। चार नए नियंत्रण अनुरोध हैं:

  • ACCESSORY_REGISTER_HID Android डिवाइस के साथ एक नया HID डिवाइस पंजीकृत करता है। एक्सेसरी अन्य तीन कॉलों के लिए HID डिवाइस की पहचान करने के लिए उपयोग की जाने वाली एक आईडी प्रदान करती है। यह आईडी तब तक मान्य है जब तक USB डिस्कनेक्ट नहीं हो जाता या एक्सेसरी HID डिवाइस को अपंजीकृत करने के लिए ACCESSORY_UNREGISTER_HID नहीं भेजती।
  • ACCESSORY_UNREGISTER_HID पहले ACCESSORY_REGISTER_HID के साथ पंजीकृत एक HID डिवाइस को अपंजीकृत करता है।
  • ACCESSORY_SET_HID_REPORT_DESC Android डिवाइस पर एक HID डिवाइस के लिए एक रिपोर्ट डिस्क्रिप्टर भेजता है। इस अनुरोध का उपयोग HID डिवाइस की क्षमताओं का वर्णन करने के लिए किया जाता है और इसे Android डिवाइस पर किसी भी HID ईवेंट की रिपोर्ट करने से पहले भेजा जाना चाहिए। यदि रिपोर्ट डिस्क्रिप्टर एंडपॉइंट शून्य के लिए अधिकतम पैकेट आकार से बड़ा है, तो संपूर्ण डिस्क्रिप्टर को स्थानांतरित करने के लिए कई ACCESSORY_SET_HID_REPORT_DESC कमांड भेजे जाते हैं।
  • ACCESSORY_SEND_HID_EVENT एक्सेसरी से Android डिवाइस पर इनपुट इवेंट भेजता है।

नए नियंत्रण अनुरोधों के लिए कोड परिभाषाएँ हैं:

/* Control request for registering a HID device.
 * Upon registering, a unique ID is sent by the accessory in the
 * value parameter. This ID will be used for future commands for
 * the device
 *
 *  requestType:    USB_DIR_OUT | USB_TYPE_VENDOR
 *  request:        ACCESSORY_REGISTER_HID_DEVICE
 *  value:          Accessory assigned ID for the HID device
 *  index:          total length of the HID report descriptor
 *  data            none
 */
#define ACCESSORY_REGISTER_HID         54

/* Control request for unregistering a HID device.
 *
 *  requestType:    USB_DIR_OUT | USB_TYPE_VENDOR
 *  request:        ACCESSORY_REGISTER_HID
 *  value:          Accessory assigned ID for the HID device
 *  index:          0
 *  data            none
 */
#define ACCESSORY_UNREGISTER_HID         55

/* Control request for sending the HID report descriptor.
 * If the HID descriptor is longer than the endpoint zero max packet size,
 * the descriptor will be sent in multiple ACCESSORY_SET_HID_REPORT_DESC
 * commands. The data for the descriptor must be sent sequentially
 * if multiple packets are needed.
 *
 *  requestType:    USB_DIR_OUT | USB_TYPE_VENDOR
 *  request:        ACCESSORY_SET_HID_REPORT_DESC
 *  value:          Accessory assigned ID for the HID device
 *  index:          offset of data in descriptor
 *                      (needed when HID descriptor is too big for one packet)
 *  data            the HID report descriptor
 */
#define ACCESSORY_SET_HID_REPORT_DESC         56

/* Control request for sending HID events.
 *
 *  requestType:    USB_DIR_OUT | USB_TYPE_VENDOR
 *  request:        ACCESSORY_SEND_HID_EVENT
 *  value:          Accessory assigned ID for the HID device
 *  index:          0
 *  data            the HID report for the event
 */
#define ACCESSORY_SEND_HID_EVENT         57

AOAv1 . के साथ इंटरऑपरेबिलिटी

मूल प्रोटोकॉल ( एओएवी1 ) यूएसबी पर यूएसबी होस्ट (एक्सेसरी) के साथ सीधे संवाद करने के लिए एंड्रॉइड एप्लिकेशन के लिए समर्थन प्रदान करता है। AOAv2 इस समर्थन को जारी रखता है और एक्सेसरी को एंड्रॉइड ऑपरेटिंग सिस्टम (विशेष रूप से ऑडियो और इनपुट सिस्टम) के साथ संवाद करने की अनुमति देने के लिए नई सुविधाएँ जोड़ता है। AOAv2 का डिज़ाइन एक एक्सेसरी बनाना संभव बनाता है जो मूल फीचर सेट के अलावा नए ऑडियो और HID सपोर्ट का उपयोग करता है। मूल सुविधाओं के साथ बस नई सुविधाओं का उपयोग करें।

AOav2 को Android ऐप के बिना कनेक्ट करना

आप एक एक्सेसरी (जैसे ऑडियो डॉक) डिज़ाइन कर सकते हैं जो ऑडियो और HID समर्थन का उपयोग करती है लेकिन Android डिवाइस पर किसी एप्लिकेशन के साथ संचार नहीं करती है। इन एक्सेसरीज़ के लिए, उपयोगकर्ताओं को नए संलग्न एक्सेसरी को खोजने और उसके साथ संचार करने वाले Android एप्लिकेशन के साथ संबद्ध करने के लिए डायलॉग प्रॉम्प्ट प्राप्त करने की आवश्यकता नहीं है।

एक्सेसरी कनेक्ट होने के बाद ऐसे डायलॉग्स को दबाने के लिए, एक्सेसरी एंड्रॉइड डिवाइस पर निर्माता और मॉडल के नाम नहीं भेजने का विकल्प चुन सकती है। जब ये तार Android डिवाइस को प्रदान नहीं किए जाते हैं:

  • सिस्टम एक्सेसरी के साथ संचार करने के लिए कोई एप्लिकेशन खोजने का प्रयास नहीं करता है।
  • डिवाइस के एक्सेसरी मोड में प्रवेश करने के बाद एक्सेसरी USB इंटरफ़ेस Android डिवाइस USB कॉन्फ़िगरेशन में मौजूद नहीं होता है।
,

यह दस्तावेज़ एंड्रॉइड ओपन एक्सेसरी (एओए) प्रोटोकॉल में इसकी प्रारंभिक रिलीज के बाद से परिवर्तनों का वर्णन करता है और एओए 1.0 दस्तावेज़ीकरण को पूरक करता है। AOAv2 निम्नलिखित विशेषताएं जोड़ता है:

  • ऑडियो आउटपुट (एंड्रॉइड 8.0 में पदावनत)।
  • Android डिवाइस के लिए एक या अधिक मानव इंटरफ़ेस डिवाइस (HID) के रूप में कार्य करने वाले एक्सेसरी के लिए समर्थन।

एंड्रॉइड एप्लिकेशन डेवलपर्स के लिए उपलब्ध एंड्रॉइड एसडीके एपीआई अपरिवर्तित हैं।

AOAv2 समर्थन का पता लगाना

यह निर्धारित करने के लिए कि क्या कोई कनेक्टेड एंड्रॉइड डिवाइस एक्सेसरीज़ और समर्थित प्रोटोकॉल संस्करण का समर्थन करता है, एक एक्सेसरी को एक getProtocol() कमांड भेजना होगा और परिणाम की जांच करनी होगी। Android डिवाइस जो AOAv1 में केवल विशेषताओं का समर्थन करते हैं, उन्हें प्रोटोकॉल संस्करण के रूप में 1 वापस करना होगा; AOAv2 में अतिरिक्त सुविधाओं का समर्थन करने वाले उपकरणों को प्रोटोकॉल संस्करण के रूप में 2 वापस करना होगा। AOAv2 AOAv1 के साथ पिछड़ा-संगत है, इसलिए मूल सहायक प्रोटोकॉल के लिए डिज़ाइन किए गए सहायक उपकरण नए Android उपकरणों के साथ काम करना जारी रखते हैं।

एक्सेसरी डेवलपमेंट किट 2011 स्रोत कोड ( <adk-src>/adk1/board/AndroidAccessory/AndroidAccessory.cpp ) लाइब्रेरी से निम्न उदाहरण इस प्रोटोकॉल जांच को प्रदर्शित करता है:

bool AndroidAccessory::switchDevice(byte addr)
{
    int protocol = getProtocol(addr);
    if (protocol >= 1) {
        Serial.print("device supports protocol 1 or higher\n");
    } else {
        Serial.print("could not read device protocol version\n");
        return false;
    }

    sendString(addr, ACCESSORY_STRING_MANUFACTURER, manufacturer);
    sendString(addr, ACCESSORY_STRING_MODEL, model);
    sendString(addr, ACCESSORY_STRING_DESCRIPTION, description);
    sendString(addr, ACCESSORY_STRING_VERSION, version);
    sendString(addr, ACCESSORY_STRING_URI, uri);
    sendString(addr, ACCESSORY_STRING_SERIAL, serial);

    usb.ctrlReq(addr, 0, USB_SETUP_HOST_TO_DEVICE | USB_SETUP_TYPE_VENDOR |
                USB_SETUP_RECIPIENT_DEVICE, ACCESSORY_START, 0, 0, 0, 0, NULL);
    return true;
}

AOAv2 में एक्सेसरी मोड में उपलब्ध यूएसबी इंटरफेस के प्रत्येक संयोजन के लिए नई यूएसबी उत्पाद आईडी शामिल हैं:

संस्करण उत्पाद आयडी संचार विवरण
एओएवी1 0x2D00 सहायक Android एप्लिकेशन के साथ संचार करने के लिए दो बल्क एंडपॉइंट प्रदान करता है।
0x2D01 एक्सेसरी + एडीबी सहायक विकास के दौरान डिबगिंग उद्देश्यों के लिए। केवल तभी उपलब्ध है जब उपयोगकर्ता ने एंड्रॉइड डिवाइस सेटिंग्स में यूएसबी डिबगिंग को सक्षम किया हो।
एओएवी2 0x2D02 ऑडियो एंड्रॉइड डिवाइस से एक्सेसरी में ऑडियो स्ट्रीमिंग के लिए।
0x2D03 ऑडियो + एडीबी
0x2D04 एक्सेसरी + ऑडियो
0x2D05 एक्सेसरी + ऑडियो + एडीबी

AOAv1 ( 0x2D00 और 0x2D01 ) में प्रयुक्त उत्पाद ID का AOAv2 में समर्थन जारी है।

ऑडियो समर्थन

AOAv2 में 2 चैनल में सक्षम मानक USB ऑडियो क्लास इंटरफ़ेस के माध्यम से एक Android डिवाइस से एक्सेसरी के लिए ऑडियो आउटपुट के लिए समर्थन शामिल है, 44100 Khz की बिट दर के साथ 16-बिट PCM ऑडियो (भविष्य में अतिरिक्त ऑडियो मोड जोड़े जा सकते हैं)।

ऑडियो समर्थन सक्षम करने के लिए, एक्सेसरी को एक नया USB नियंत्रण अनुरोध भेजना होगा:

**SET_AUDIO_MODE**
requestType:    USB_DIR_OUT | USB_TYPE_VENDOR
request:        58
value:          0 for no audio (default),
                1 for 2 channel, 16-bit PCM at 44100 KHz
index:          0
data            none

एक्सेसरी मोड में प्रवेश करने के लिए ACCESSORY_START कमांड भेजने से पहले यह आदेश भेजा जाना चाहिए।

छिपाई समर्थन

AOAv2 एक्सेसरीज़ को Android डिवाइस के साथ एक या अधिक USB मानव इंटरफ़ेस डिवाइस (HID) को पंजीकृत करने की अनुमति देता है। यह दृष्टिकोण विशिष्ट USB HID उपकरणों जैसे USB चूहों और कीबोर्ड के लिए संचार की दिशा को उलट देता है। आम तौर पर, एचआईडी डिवाइस एक यूएसबी होस्ट (यानी एक पर्सनल कंप्यूटर) से जुड़ा एक परिधीय होता है, लेकिन एओए में यूएसबी होस्ट एक यूएसबी परिधीय के लिए एक या अधिक इनपुट डिवाइस के रूप में कार्य कर सकता है।

HID समर्थन मानक HID ईवेंट के लिए एक प्रॉक्सी है; कार्यान्वयन सामग्री या घटनाओं के प्रकार के बारे में कोई धारणा नहीं बनाता है और बस इसे इनपुट सिस्टम के माध्यम से भेजता है, जिससे AOAv2 एक्सेसरी को किसी भी HID डिवाइस (माउस, कीबोर्ड, गेम कंट्रोलर, आदि) के रूप में कार्य करने में सक्षम बनाता है। आप बुनियादी कार्यक्षमता प्रदान करने के लिए HID समर्थन का उपयोग कर सकते हैं, जैसे कि मीडिया डॉक पर प्ले/पॉज़ बटन, या माउस और पूर्ण QWERTY कीबोर्ड के साथ डॉकिंग स्टेशन जैसी उन्नत कार्यक्षमता के लिए।

AOAv2 नए USB नियंत्रण अनुरोध जोड़ता है जो एक्सेसरी को Android डिवाइस पर एक या अधिक HID इनपुट डिवाइस के रूप में कार्य करने की अनुमति देता है। एचआईडी समर्थन पूरी तरह से एंडपॉइंट शून्य पर नियंत्रण अनुरोधों के माध्यम से नियंत्रित किया जाता है, इसलिए किसी नए यूएसबी इंटरफ़ेस की आवश्यकता नहीं है। चार नए नियंत्रण अनुरोध हैं:

  • ACCESSORY_REGISTER_HID Android डिवाइस के साथ एक नया HID डिवाइस पंजीकृत करता है। एक्सेसरी अन्य तीन कॉलों के लिए HID डिवाइस की पहचान करने के लिए उपयोग की जाने वाली एक आईडी प्रदान करती है। यह आईडी तब तक मान्य है जब तक USB डिस्कनेक्ट नहीं हो जाता या एक्सेसरी HID डिवाइस को अपंजीकृत करने के लिए ACCESSORY_UNREGISTER_HID नहीं भेजती।
  • ACCESSORY_UNREGISTER_HID पहले ACCESSORY_REGISTER_HID के साथ पंजीकृत एक HID डिवाइस को अपंजीकृत करता है।
  • ACCESSORY_SET_HID_REPORT_DESC Android डिवाइस पर एक HID डिवाइस के लिए एक रिपोर्ट डिस्क्रिप्टर भेजता है। इस अनुरोध का उपयोग HID डिवाइस की क्षमताओं का वर्णन करने के लिए किया जाता है और इसे Android डिवाइस पर किसी भी HID ईवेंट की रिपोर्ट करने से पहले भेजा जाना चाहिए। यदि रिपोर्ट डिस्क्रिप्टर एंडपॉइंट शून्य के लिए अधिकतम पैकेट आकार से बड़ा है, तो संपूर्ण डिस्क्रिप्टर को स्थानांतरित करने के लिए कई ACCESSORY_SET_HID_REPORT_DESC कमांड भेजे जाते हैं।
  • ACCESSORY_SEND_HID_EVENT एक्सेसरी से Android डिवाइस पर इनपुट इवेंट भेजता है।

नए नियंत्रण अनुरोधों के लिए कोड परिभाषाएँ हैं:

/* Control request for registering a HID device.
 * Upon registering, a unique ID is sent by the accessory in the
 * value parameter. This ID will be used for future commands for
 * the device
 *
 *  requestType:    USB_DIR_OUT | USB_TYPE_VENDOR
 *  request:        ACCESSORY_REGISTER_HID_DEVICE
 *  value:          Accessory assigned ID for the HID device
 *  index:          total length of the HID report descriptor
 *  data            none
 */
#define ACCESSORY_REGISTER_HID         54

/* Control request for unregistering a HID device.
 *
 *  requestType:    USB_DIR_OUT | USB_TYPE_VENDOR
 *  request:        ACCESSORY_REGISTER_HID
 *  value:          Accessory assigned ID for the HID device
 *  index:          0
 *  data            none
 */
#define ACCESSORY_UNREGISTER_HID         55

/* Control request for sending the HID report descriptor.
 * If the HID descriptor is longer than the endpoint zero max packet size,
 * the descriptor will be sent in multiple ACCESSORY_SET_HID_REPORT_DESC
 * commands. The data for the descriptor must be sent sequentially
 * if multiple packets are needed.
 *
 *  requestType:    USB_DIR_OUT | USB_TYPE_VENDOR
 *  request:        ACCESSORY_SET_HID_REPORT_DESC
 *  value:          Accessory assigned ID for the HID device
 *  index:          offset of data in descriptor
 *                      (needed when HID descriptor is too big for one packet)
 *  data            the HID report descriptor
 */
#define ACCESSORY_SET_HID_REPORT_DESC         56

/* Control request for sending HID events.
 *
 *  requestType:    USB_DIR_OUT | USB_TYPE_VENDOR
 *  request:        ACCESSORY_SEND_HID_EVENT
 *  value:          Accessory assigned ID for the HID device
 *  index:          0
 *  data            the HID report for the event
 */
#define ACCESSORY_SEND_HID_EVENT         57

AOAv1 . के साथ इंटरऑपरेबिलिटी

मूल प्रोटोकॉल ( एओएवी1 ) यूएसबी पर यूएसबी होस्ट (एक्सेसरी) के साथ सीधे संवाद करने के लिए एंड्रॉइड एप्लिकेशन के लिए समर्थन प्रदान करता है। AOAv2 इस समर्थन को जारी रखता है और एक्सेसरी को एंड्रॉइड ऑपरेटिंग सिस्टम (विशेष रूप से ऑडियो और इनपुट सिस्टम) के साथ संवाद करने की अनुमति देने के लिए नई सुविधाएँ जोड़ता है। AOAv2 का डिज़ाइन एक एक्सेसरी बनाना संभव बनाता है जो मूल फीचर सेट के अलावा नए ऑडियो और HID सपोर्ट का उपयोग करता है। मूल सुविधाओं के साथ बस नई सुविधाओं का उपयोग करें।

AOav2 को Android ऐप के बिना कनेक्ट करना

आप एक एक्सेसरी (जैसे ऑडियो डॉक) डिज़ाइन कर सकते हैं जो ऑडियो और HID समर्थन का उपयोग करती है लेकिन Android डिवाइस पर किसी एप्लिकेशन के साथ संचार नहीं करती है। इन एक्सेसरीज़ के लिए, उपयोगकर्ताओं को नए संलग्न एक्सेसरी को खोजने और उसके साथ संचार करने वाले Android एप्लिकेशन के साथ संबद्ध करने के लिए डायलॉग प्रॉम्प्ट प्राप्त करने की आवश्यकता नहीं है।

एक्सेसरी कनेक्ट होने के बाद ऐसे डायलॉग्स को दबाने के लिए, एक्सेसरी एंड्रॉइड डिवाइस पर निर्माता और मॉडल के नाम नहीं भेजने का विकल्प चुन सकती है। जब ये तार Android डिवाइस को प्रदान नहीं किए जाते हैं:

  • सिस्टम एक्सेसरी के साथ संचार करने के लिए कोई एप्लिकेशन खोजने का प्रयास नहीं करता है।
  • डिवाइस के एक्सेसरी मोड में प्रवेश करने के बाद एक्सेसरी USB इंटरफ़ेस Android डिवाइस USB कॉन्फ़िगरेशन में मौजूद नहीं होता है।