एपीआई लेवल: 12
डेवलपर के लिए, Android 3.1 प्लेटफ़ॉर्म
(HONEYCOMB_MR1
) इस तौर पर उपलब्ध है
Android SDK के लिए डाउनलोड किया जा सकने वाला कॉम्पोनेंट. डाउनलोड किए जा सकने वाले प्लैटफ़ॉर्म में ये चीज़ें शामिल हैं
एक Android लाइब्रेरी और सिस्टम इमेज, साथ ही एम्युलेटर स्किन का एक सेट और
वगैरह को कॉपी करने का विकल्प है. डाउनलोड किए जा सकने वाले प्लैटफ़ॉर्म में कोई भी बाहरी लाइब्रेरी मौजूद नहीं है.
डेवलपर के लिए, Android 3.1 प्लेटफ़ॉर्म Android SDK के लिए डाउनलोड किया जा सकने वाला कॉम्पोनेंट. डाउनलोड किए जा सकने वाले प्लैटफ़ॉर्म में ये चीज़ें शामिल हैं एक Android लाइब्रेरी और सिस्टम इमेज, साथ ही एम्युलेटर स्किन का एक सेट और वगैरह को कॉपी करने का विकल्प है. Android 3.1 पर डेवलप करना या उसकी जांच करना शुरू करने के लिए, Android SDK Manager का इस्तेमाल करके, प्लैटफ़ॉर्म को अपने SDK टूल में डाउनलोड करें.
एपीआई की खास जानकारी
नीचे दिए गए सेक्शन से इस बात की खास जानकारी मिलती है कि डेवलपर के लिए नया क्या है जिसमें फ़्रेमवर्क API में नई सुविधाएं और बदलाव शामिल हैं. पिछला वर्शन.
यूएसबी एपीआई
Android 3.1, Google Play पर प्लैटफ़ॉर्म पर चल रहे ऐप्लिकेशन के साथ कनेक्ट किए गए सहायक डिवाइस (जैसे, कीबोर्ड, माउस, मॉनिटर, वेबकैम वगैरह) को इंटिग्रेट करना. ये एपीआई, यूएसबी (यूनिवर्सल सीरियल बस) स्टैक और उन सेवाओं पर आधारित हैं जो यह प्लैटफ़ॉर्म में पहले से मौजूद है. यह यूएसबी होस्ट और डिवाइस, दोनों पर काम करता है इंटरैक्शन. API का उपयोग करके, डेवलपर ऐसे ऐप्लिकेशन बना सकते हैं जो कनेक्ट किए गए अलग-अलग तरह के डिवाइसों को खोजने, उनसे बातचीत करने, और उन्हें मैनेज करने की सुविधा यूएसबी.
स्टैक और एपीआई, बुनियादी तौर पर दो तरह के यूएसबी हार्डवेयर में अंतर करते हैं. Android पर चलने वाला डिवाइस, होस्ट के तौर पर काम कर रहा है या बाहरी हार्डवेयर होस्ट के रूप में काम कर रहा है:
- यूएसबी डिवाइस कनेक्ट किया गया हार्डवेयर का एक हिस्सा होता है, जो होस्ट के तौर पर काम करने के लिए, Android पर चलने वाला डिवाइस. उदाहरण के लिए, ज़्यादातर इनपुट डिवाइस, माउस, और जॉयस्टिक, यूएसबी डिवाइस हैं. उसी तरह, कई कैमरे, हब वगैरह भी होते हैं.
- यूएसबी ऐक्सेसरी कनेक्ट किए गए हार्डवेयर का एक हिस्सा होता है, जिसमें यूएसबी होती है होस्ट कंट्रोलर, पावर उपलब्ध कराता है, और जिसे कनेक्ट करने के लिए डिज़ाइन किया गया है यूएसबी की मदद से Android पर चलने वाले डिवाइस. कई सहायक डिवाइस (जैसे, कीबोर्ड, माउस, मॉनिटर, वेबकैम वगैरह) ऐक्सेसरी, रोबोटिक्स कंट्रोलर से लेकर म्यूज़िकल इक्विपमेंट, एक्सरसाइज़ साइकल, के साथ और भी बहुत कुछ.
दोनों तरह के लिए — यूएसबी डिवाइस और यूएसबी ऐक्सेसरी — प्लैटफ़ॉर्म के यूएसबी एपीआई अटैच किए जाने पर, इंटेंट ब्रॉडकास्ट के ज़रिए खोज करने में मदद करते हैं या डिटैच्ड के साथ-साथ स्टैंडर्ड इंटरफ़ेस, एंडपॉइंट, और ट्रांसफ़र मोड (कंट्रोल, बल्क, और रुकावट).
यूएसबी एपीआई, android.hardware.usb
पैकेज में उपलब्ध हैं. कॉन्टेंट बनाने
सेंट्रल क्लास UsbManager
है, जो
पहचान करने और बातचीत करने के लिए मददगार तरीके
और यूएसबी डिवाइस और यूएसबी ऐक्सेसरी, दोनों के लिए इस्तेमाल किया जा सकता है. ऐप्लिकेशन इंस्टॉल कर सकने वाले
UsbManager
. इसके बाद, अटैच की गई सूची के लिए क्वेरी करें
और फिर उनसे कनेक्ट कर सकते हैं या उन्हें मैनेज कर सकते हैं.
UsbManager
ऐसे इंटेंट ऐक्शन के बारे में भी बताता है
सिस्टम ब्रॉडकास्ट करता है. यूएसबी डिवाइस या ऐक्सेसरी के जुड़े होने की सूचना देने के लिए या
डिटैच किया गया.
अन्य क्लास में ये शामिल हैं:
UsbDevice
, बाहरी इकाई का प्रतिनिधित्व करने वाली क्लास USB डिवाइस के रूप में कनेक्ट किया गया हार्डवेयर (Android-पावर्ड डिवाइस इस तरह काम करता है होस्ट).UsbAccessory
, बाहरी हार्डवेयर के बारे में जानकारी दे रहा है USB होस्ट के रूप में कनेक्ट होता है (जिसमें Android-पावर्ड डिवाइस USB की तरह काम करता है डिवाइस).UsbInterface
औरUsbEndpoint
, जिनसे स्टैंडर्ड यूएसबी का ऐक्सेस मिलता है इंटरफ़ेस और एंडपॉइंट हैं.- डेटा भेजने और पाने और कंट्रोल करने के लिए,
UsbDeviceConnection
औरUsbRequest
किसी USB डिवाइस पर या उससे प्राप्त होने वाले संदेशों को सिंक्रोनस और एसिंक्रोनस रूप से. UsbConstants
, जो इसके लिए कॉन्सटेंट देता है एंडपॉइंट टाइप, डिवाइस क्लास वगैरह की जानकारी देनी होगी.
ध्यान दें कि भले ही यूएसबी स्टैक, प्लैटफ़ॉर्म में पहले से मौजूद है, लेकिन असल सपोर्ट यूएसबी होस्ट और ओपन ऐक्सेसरी मोड के लिए, करते हैं. खास तौर पर, होस्ट मोड, सही यूएसबी का इस्तेमाल करता है कंट्रोलर हार्डवेयर की जानकारी भी उपलब्ध कराई जाएगी.
इसके अलावा, डेवलपर Google Play पर फ़िल्टर करने का अनुरोध कर सकते हैं. जैसे: उनके ऐप्लिकेशन उन उपयोगकर्ताओं के लिए उपलब्ध नहीं हैं जिनके डिवाइस यूएसबी की मदद से काम करता है. फ़िल्टर करने का अनुरोध करने के लिए, एक या दोनों एलिमेंट जोड़ें ऐप्लिकेशन मेनिफ़ेस्ट के नीचे, अगर कोई ज़रूरत हो, तो:
- अगर ऐप्लिकेशन सिर्फ़ उन डिवाइस को दिखना चाहिए जो यूएसबी का इस्तेमाल करते हैं
होस्ट मोड (यूएसबी डिवाइसों का कनेक्शन), तो इस एलिमेंट के बारे में बताएं:
<uses-feature android:name="android.hardware.usb.host" android:required="true">
- अगर ऐप्लिकेशन सिर्फ़ उन डिवाइस को दिखना चाहिए जो यूएसबी का इस्तेमाल करते हैं
ऐक्सेसरी (यूएसबी होस्ट के कनेक्शन), इस एलिमेंट के बारे में बताएं:
<uses-feature android:name="android.hardware.usb.accessory" android:required="true">
इनसे इंटरैक्ट करने वाले ऐप्लिकेशन डेवलप करने के तरीके के बारे में पूरी जानकारी के लिए यूएसबी ऐक्सेसरी, कृपया डेवलपर दस्तावेज़.
यूएसबी होस्ट एपीआई का इस्तेमाल करने वाले ऐप्लिकेशन के नमूने देखने के लिए, ADB टेस्ट और Missile देखें लॉन्चर
एमटीपी/पीटीपी एपीआई
Android 3.1 एक नया MTP API दिखाता है, जो ऐप्लिकेशन को सीधे इंटरैक्ट करने की सुविधा देता है कनेक्ट किए गए कैमरों और अन्य PTP डिवाइसों के साथ कनेक्ट करता है. नया एपीआई डिवाइस के अटैच होने और हटाए जाने पर, सूचना पाने के लिए ऐप्लिकेशन, उन डिवाइसों पर फ़ाइलें और स्टोरेज मैनेज करें. साथ ही, और उनसे महसूस किया जा सकता है. MTP API, पीटीपी (पिक्चर ट्रांसफ़र प्रोटोकॉल) सबसेट को लागू करता है के मानकों के बारे में बताया गया है.
MTP API, android.mtp
पैकेज में उपलब्ध है और
ये क्लास:
MtpDevice
ऐसे MTP डिवाइस को इनकैप्सुलेट करता है जो यूएसबी होस्ट बस से कनेक्ट किया गया है. कोई ऐप्लिकेशन किसी ऑब्जेक्ट को इंस्टैंशिएट कर सकता है और फिर इसकी विधियों का इस्तेमाल करके डिवाइस के बारे में जानकारी हासिल करें और ऑब्जेक्ट सेव करते हैं. साथ ही, कनेक्शन खोलने और डेटा ट्रांसफ़र करने की सुविधा देते हैं. इसके कुछ तरीके यहां दिए गए हैं:getObjectHandles()
, डिवाइस पर मौजूद उन सभी ऑब्जेक्ट के लिए हैंडल की सूची दिखाता है दिए गए फ़ॉर्मैट और पैरंट से मैच करें. किसी ऑब्जेक्ट के बारे में जानकारी पाने के लिए, ऐप्लिकेशन,getObjectInfo()
को हैंडल पास कर सकता है.importFile()
की मदद से, ऐप्लिकेशन किसी ऑब्जेक्ट का डेटा, बाहरी स्टोरेज वाली फ़ाइल में कॉपी कर सकता है स्टोरेज. यह कॉल आपकी पसंद के हिसाब से समय के लिए ब्लॉक हो सकता है. यह डेटा का साइज़ और डिवाइस की स्पीड हो. इसलिए, इसे स्पेयर रेट से बनाया जाना चाहिए थ्रेड.open()
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है ऐप्लिकेशन को कनेक्ट किए गए MTP/PTP डिवाइस को खोलने देता है.getThumbnail()
का शुल्क देकर, प्रॉडक्ट को लौटाया जा सकता है बाइट अरे के रूप में ऑब्जेक्ट का थंबनेल.
MtpStorageInfo
में स्टोरेज के बारे में जानकारी होती है किसी MTP डिवाइस पर मौजूद इकाई, जो इसमें बताए गए StorageInfo डेटासेट के मुताबिक है MTP स्पेसिफ़िकेशन के सेक्शन 5.2.2 में बताया गया है. क्लास की विधियों से एक ऐप्लिकेशन (आवेदन) हटाने की सुविधा मिलती है देखें कि क्या स्टोरेज यूनिट की जानकारी वाली स्ट्रिंग, खाली जगह, ज़्यादा से ज़्यादा स्टोरेज कपैसिटी, स्टोरेज आईडी, और वॉल्यूम आइडेंटिफ़ायर होता है.MtpDeviceInfo
के पास किसी MTP डिवाइस की जानकारी है MTP के सेक्शन 5.1.1 में बताए गए DeviceInfo डेटासेट के मुताबिक स्पेसिफ़िकेशन. क्लास की विधियों से ऐप्लिकेशन को डिवाइस के निर्माता, मॉडल, सीरियल नंबर, और वर्शन.MtpObjectInfo
में, सेव किए गए किसी ऑब्जेक्ट की जानकारी होती है एक MTP डिवाइस पर, जो सेक्शन में बताए गए ObjectInfo डेटासेट के मुताबिक है MTP की खास बातों में 5.3.1. क्लास की विधियों से ऐप्लिकेशन को ऑब्जेक्ट का साइज़, डेटा फ़ॉर्मैट, असोसिएशन का टाइप, बनाने की तारीख, और थंबनेल जानकारी.MtpConstants
, MTP फ़ाइल के एलान के लिए कॉन्सटेंट उपलब्ध कराता है फ़ॉर्मैट कोड, असोसिएशन टाइप, और सुरक्षा की स्थिति.
नए इनपुट डिवाइस और मोशन इवेंट के लिए सहायता
Android 3.1 नए इनपुट डिवाइस और नए इनपुट डिवाइस का समर्थन करने के लिए इनपुट सबसिस्टम को बढ़ाता है सभी व्यू और विंडो में, मोशन इवेंट के टाइप की सुविधा. डेवलपर इन पर बना सकते हैं इन क्षमताओं की मदद से उपयोगकर्ता माउस का इस्तेमाल करके, अपने ऐप्लिकेशन से इंटरैक्ट कर सकते हैं. ट्रैकबॉल, जॉयस्टिक, गेमपैड और अन्य डिवाइस शामिल हैं, इसके अतिरिक्त कीबोर्ड और टचस्क्रीन.
माउस, स्क्रोलव्हील, और ट्रैकबॉल इनपुट को हैंडल करने के लिए, यह प्लैटफ़ॉर्म इन सुविधाओं के साथ काम करता है दो नई मोशन इवेंट कार्रवाइयां:
ACTION_SCROLL
, जो पॉइंटर की जानकारी देता है वह जगह जहां बिना टच किए स्क्रोल किया जा सकता है, जैसे कि माउस स्क्रोल व्हील से हुआ है. MotionEvent में,AXIS_HSCROLL
औरAXIS_VSCROLL
ऐक्सिस की वैल्यू से मिलते-जुलते स्क्रोल की जानकारी मिलती है गतिविधि.ACTION_HOVER_MOVE
, मौजूदा कोई बटन न दबाए जाने पर माउस की स्थिति, और साथ ही कोई इंटरमीडिएट पिछलेHOVER_MOVE
इवेंट के बाद से पॉइंट. कर्सर घुमाकर बाहर निकलें सूचनाएं अभी काम नहीं कर रही हैं.
जॉयस्टिक और गेमपैड का इस्तेमाल करने के लिए, InputDevice
क्लास
इसमें ये नए इनपुट डिवाइस स्रोत शामिल हैं:
SOURCE_CLASS_JOYSTICK
— स्रोत डिवाइस में जॉयस्टिक ऐक्सिस हैं.SOURCE_CLASS_BUTTON
— स्रोत डिवाइस में बटन या कुंजियां हैं.SOURCE_GAMEPAD
— सोर्स डिवाइस इसमें गेमपैड के बटन हैं, जैसे किKEYCODE_BUTTON_A
याKEYCODE_BUTTON_B
. इसका मतलब हैSOURCE_CLASS_BUTTON
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया हैSOURCE_JOYSTICK
— सोर्स डिवाइस इसमें जॉयस्टिक ऐक्सिस हैं. SOURCE_CLASS_JOYSTICK का अर्थ है.
इन नए सोर्स के साथ-साथ माउस से मिलने वाले मोशन इवेंट के बारे में बताने के लिए
और ट्रैकबॉल के साथ काम करता है, तो यह प्लैटफ़ॉर्म अब MotionEvent
पर ऐक्सिस कोड को उसी तरह परिभाषित करता है जिस तरह यह KeyEvent
पर मुख्य कोड को तय करता है. जॉयस्टिक के लिए नए ऐक्सिस कोड
और गेम कंट्रोलर में
AXIS_HAT_X
, AXIS_HAT_Y
, AXIS_RTRIGGER
, AXIS_ORIENTATION
, AXIS_THROTTLE
, और कई अन्य.
मौजूदा MotionEvent
ऐक्सिस को AXIS_X
, AXIS_Y
से दिखाया जाता है.
AXIS_PRESSURE
, AXIS_SIZE
, AXIS_TOUCH_MAJOR
, AXIS_TOUCH_MINOR
, AXIS_TOOL_MAJOR
, AXIS_TOOL_MINOR
, और AXIS_ORIENTATION
.
इसके अलावा, MotionEvent
कई जेनरिक प्रॉडक्ट की जानकारी देता है
वे ऐक्सिस कोड जिनका इस्तेमाल तब किया जाता है, जब फ़्रेमवर्क को यह पता नहीं चलता कि किसी
खास ऐक्सिस पर. कुछ खास डिवाइस
मोशन डेटा को ऐप्स में भेजना. ऐक्सिस और उनसे जुड़े कामों की पूरी सूची देखने के लिए
व्याख्याओं के लिए, MotionEvent
क्लास से जुड़ा दस्तावेज़ देखें.
यह प्लैटफ़ॉर्म, ऐप्लिकेशन को अलग-अलग बैच में मोशन इवेंट उपलब्ध कराता है. इससे
इवेंट में कोई मौजूदा स्थिति और कई तथाकथित ऐतिहासिक आंदोलन शामिल हो सकते हैं.
ऐप्लिकेशन को पाने के लिए getHistorySize()
का उपयोग करना चाहिए
पुराने सैंपल की संख्या पता कर सकते हैं और फिर सभी पुराने सैंपल को वापस पा सकते हैं और उन्हें प्रोसेस कर सकते हैं
getHistoricalAxisValue()
का इस्तेमाल करके सैंपल देखें. इसके बाद, आवेदनों को वर्तमान
getAxisValue()
का इस्तेमाल करके सैंपल.
कुछ ऐक्सिस को ऐक्सेस करने के खास तरीकों का इस्तेमाल करके हासिल किया जा सकता है. उदाहरण के लिए,
getAxisValue()
पर कॉल करने के बजाय, ऐप्लिकेशन getX()
पर कॉल कर सकते हैं. जिन ऐक्स में पहले से ऐक्सेसर मौजूद हैं उनमें AXIS_X
, AXIS_Y
,
AXIS_PRESSURE
, AXIS_SIZE
, AXIS_TOUCH_MAJOR
, AXIS_TOUCH_MINOR
, AXIS_TOOL_MAJOR
, AXIS_TOOL_MINOR
, और AXIS_ORIENTATION
.
हर इनपुट डिवाइस का एक यूनीक आईडी होता है. यह आईडी सिस्टम से असाइन किया जाता है. यह आईडी,
एक से ज़्यादा सोर्स होते हैं. जब कोई डिवाइस कई सोर्स से जानकारी देता है, तो एक से ज़्यादा सोर्स होते हैं
एक ही ऐक्सिस का इस्तेमाल करके, ऐक्सिस का डेटा दे सकते हैं. उदाहरण के लिए, कोई स् पर्श इवेंट आ रहा है
टच सोर्स से, स्क्रीन की पोज़िशन के डेटा के लिए X ऐक्सिस का इस्तेमाल किया जाता है, जबकि जॉयस्टिक का इस्तेमाल किया जाता है
जॉयस्टिक सोर्स से आने वाला इवेंट, स्टिक की पोज़िशन के लिए X ऐक्सिस का इस्तेमाल करेगा
आज़माएं. इस कारण से, एप्लिकेशन के लिए ऐक्सिस को समझना
जिस सोर्स से वे वैल्यू दिखती हैं उसके हिसाब से वैल्यू दी जाती हैं. कोई मोशन करते समय
इवेंट, ऐप्लिकेशन को InputDevice
पर तरीकों का इस्तेमाल करना चाहिए
क्लास का इस्तेमाल करें. खास तौर पर,
ऐप्लिकेशन किसी डिवाइस के सभी ऐक्सिस या किसी डिवाइस के सभी ऐक्सिस से जुड़ी क्वेरी करने के लिए, getMotionRanges()
का इस्तेमाल कर सकते हैं
डिवाइस का सोर्स. दोनों मामलों में, ऐक्सिस की रेंज की जानकारी
InputDevice.MotionRange
ऑब्जेक्ट
हर ऐक्सिस के मान में.
आख़िर में, जॉयस्टिक, गेमपैड, माउस, और
ट्रैकबॉल, टच इवेंट नहीं हैं. प्लैटफ़ॉर्म,
View
को "सामान्य" की तरह पास करना मोशन इवेंट.
खास तौर पर, यह नॉन-टच मोशन इवेंट को
onTouchEvent()
के बजाय, onGenericMotionEvent()
पर कॉल के ज़रिए View
.
यह प्लैटफ़ॉर्म, सामान्य मोशन इवेंट को अलग-अलग तरीके से डिस्पैच करता है. यह इवेंट,
इवेंट सोर्स क्लास का इस्तेमाल करता है. SOURCE_CLASS_POINTER
इवेंट
पॉइंटर के नीचे मौजूद View
पर जाएं. यह बटन, टच करने के तरीके की तरह ही होता है
इवेंट काम करते हैं. बाकी सभी, फ़िलहाल फ़ोकस किए गए View
पर जाते हैं.
उदाहरण के लिए, इसका मतलब है कि View
को फ़ोकस करने पर,
जॉयस्टिक इवेंट पाएँ. अगर ज़रूरत हो, तो ऐप्लिकेशन इन इवेंट को
इसके बजाय, onGenericMotionEvent()
लागू करके ऐक्टिविटी या डायलॉग के लेवल पर पहुंचें.
जॉयस्टिक गति का उपयोग करने वाला नमूना एप्लिकेशन देखने के लिए इवेंट के लिए, GameController Input देखें और GameView शामिल है.
आरटीपी एपीआई
Android 3.1, पहले से मौजूद आरटीपी (रीयल-टाइम ट्रांसपोर्ट प्रोटोकॉल) के लिए एपीआई की जानकारी दिखाता है स्टैक करें, किस ऐप्लिकेशन का इस्तेमाल, मांग पर या इंटरैक्टिव डेटा को मैनेज करने के लिए किया जा सकता है स्ट्रीमिंग. खास तौर पर, ऐसे ऐप्लिकेशन जो वीओआईपी, पुश-टू-टॉक, कॉन्फ़्रेंसिंग, और ऑडियो स्ट्रीमिंग, सेशन शुरू करने और कॉन्टेंट भेजने या पाने के लिए इस एपीआई का इस्तेमाल कर सकते हैं किसी भी उपलब्ध नेटवर्क पर डेटा स्ट्रीम.
आरटीपी एपीआई, android.net.rtp
पैकेज में उपलब्ध है. क्लास
शामिल करें:
RtpStream
, ऐसी स्ट्रीम की बेस क्लास है जो यह भेजती हैं और आरटीपी से मीडिया पेलोड वाले नेटवर्क पैकेट पाएं.AudioStream
,RtpStream
की एक सब-क्लास है जो आरटीपी पर ऑडियो पेलोड ले जाती है.AudioGroup
, एक लोकल ऑडियो हब है. डिवाइस के स्पीकर, माइक्रोफ़ोन, औरAudioStream
को मिक्स किया जा रहा है.AudioCodec
, जिसमें कोडेक का कलेक्शन होता हैAudioStream
के लिए तय किया गया है.
ऑडियो कॉन्फ़्रेंसिंग और इसी तरह के इस्तेमाल के लिए, एक ऐप्लिकेशन इंस्टैंशिएट करता है दो क्लास स्ट्रीम के एंडपॉइंट के रूप में:
AudioStream
एक रिमोट एंडपॉइंट के बारे में बताता है और इसमें शामिल होता है और कॉन्फ़िगर की गईAudioCodec
.AudioGroup
किसी एक के लिए लोकल एंडपॉइंट दिखाता है या ज़्यादाAudioStream
.AudioGroup
मिक्स सभीAudioStream
. साथ ही, डिवाइस के साथ वैकल्पिक रूप से इंटरैक्ट करता है स्पीकर और माइक्रोफ़ोन एक साथ.
सबसे आसान तरीके में एक रिमोट एंडपॉइंट और लोकल एंडपॉइंट शामिल होते हैं.
ज़्यादा मुश्किल इस्तेमाल के लिए, कृपया यहां बताई गई सीमाएं देखें
AudioGroup
.
RTP API का इस्तेमाल करने के लिए, ऐप्लिकेशन को इसके ज़रिए उपयोगकर्ता से अनुमति का अनुरोध करना होगा:
<uses-permission
android:name="android.permission.INTERNET">
का एलान किया जा रहा है
की मेनिफ़ेस्ट फ़ाइलों में दी जाती है. डिवाइस का माइक्रोफ़ोन पाने के लिए, <uses-permission
android:name="android.permission.RECORD_AUDIO">
की अनुमति की भी ज़रूरत होगी.
साइज़ बदलने की सुविधा वाले ऐप्लिकेशन विजेट
Android 3.1 से, डेवलपर अपने होमस्क्रीन विजेट बना सकते हैं साइज़ बदलने लायक — हॉरिज़ॉन्टल, वर्टिकल या दोनों ऐक्सिस पर. उपयोगकर्ता विजेट के साइज़ में बदलाव करने वाले हैंडल दिखाएं. इसके बाद, हॉरिज़ॉन्टल और/या वर्टिकल को खींचें और छोड़ें हैंडल का इस्तेमाल करके लेआउट ग्रिड पर साइज़ बदला जा सकता है.
डेवलपर
विजेट के AppWidgetProviderInfo
मेटाडेटा में resizeMode
एट्रिब्यूट. इस
resizeMode
एट्रिब्यूट में "हॉरिज़ॉन्टल", "वर्टिकल", और "कोई नहीं" शामिल हैं.
किसी विजेट का साइज़, हॉरिज़ॉन्टल या वर्टिकल तौर पर साइज़ बताने के लिए,
"हॉरिज़ॉन्टल|वर्टिकल".
यहां एक उदाहरण दिया गया है:
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android" android:minWidth="294dp" android:minHeight="72dp" android:updatePeriodMillis="86400000" android:previewImage="@drawable/preview" android:initialLayout="@layout/example_appwidget" android:configure="com.example.android.ExampleAppWidgetConfigure" android:resizeMode="horizontal|vertical" > </appwidget-provider>
होम स्क्रीन विजेट के बारे में ज़्यादा जानकारी के लिए, ऐप्लिकेशन विजेट देखें दस्तावेज़.
ऐनिमेशन फ़्रेमवर्क
- नई Viewप्रॉपर्टी Animator क्लास
- एक नई
ViewPropertyAnimator
क्लास सुविधाजनक यह डेवलपर के लिएView
ऑब्जेक्ट पर चुनिंदा प्रॉपर्टी को ऐनिमेट करने का तरीका है. क्लास यह प्रॉपर्टी के ऐनिमेशन को ऑटोमेट करता है और ऑप्टिमाइज़ करता है. साथ ही, किसीView
ऑब्जेक्ट पर एक साथ कई ऐनिमेशन मैनेज करना.ViewPropertyAnimator
का इस्तेमाल करना आसान है. इसके लिए प्रॉपर्टी को ऐनिमेट करने के लिए एकView
,animate()
को इस नंबर पर कॉल करें उसView
के लिए एकViewPropertyAnimator
ऑब्जेक्ट बनाएं. इसका इस्तेमाल करेंViewPropertyAnimator
की मदद से यह तय करें कि किस प्रॉपर्टी को ऐनिमेट करें और कैसे करें. उदाहरण के लिए,View
को फ़ेड करके पारदर्शी बनाने के लिए,alpha(0);
को कॉल करें.ViewPropertyAnimator
ऑब्जेक्ट यह मौजूदाAnimator
क्लास को कॉन्फ़िगर करने और उसे शुरू करने की जानकारी को मैनेज करता है. इसके बाद, ऐनिमेशन.
- एक नई
- ऐनिमेशन के बैकग्राउंड का रंग
- नए
getBackgroundColor()
औरsetBackgroundColor(int)
तरीके से आपको विंडो ऐनिमेशन के लिए ऐनिमेशन के पीछे का बैकग्राउंड कलर मिलता है/सेट हो जाता है सिर्फ़. फ़िलहाल, अपनी पसंद के ऐल्फ़ा लेवल के साथ, बैकग्राउंड का रंग काला होना चाहिए.
- नए
ViewAnimator
से ऐनिमेशन वाला अंश फ़ेच किया जा रहा है- एक नया
getAnimatedFraction()
तरीका आपको वर्तमान एनिमेशन अंश प्राप्त करने देता है — बीत चुका/प्रक्षेपित हाल ही के फ़्रेम अपडेट में इस्तेमाल किया गया फ़्रैक्शन —ValueAnimator
से लिया गया है.
- एक नया
यूज़र इंटरफ़ेस (यूआई) फ़्रेमवर्क
- लेयर की फ़ोर्स्ड रेंडरिंग
buildLayer()
इस्तेमाल करने का नया तरीका, ऐप्लिकेशन को किसी व्यू की लेयर को ज़बरदस्ती बनाने और उसमें मौजूद व्यू को तुरंत रेंडर करने के लिए किया जा सकता है. उदाहरण के लिए, कोई ऐप्लिकेशन इस तरीके का इस्तेमाल करके, व्यू को लेयर पर क्लिक करें. अगर व्यू जटिल है, तो उसे ऐनिमेशन शुरू करने से पहले वाली लेयर, फ़्रेम स्किप नहीं करेगी, तो उसे स्किप नहीं किया जाएगा.
- कैमरे की दूरी
- ऐप्लिकेशन नई विधि का उपयोग कर सकते हैं
दिल्ली से दूरी सेट करने के लिए,
setCameraDistance(float)
कैमरा क्लिक करें. इससे ऐप्लिकेशन के 3D रूपांतरण पर बेहतर नियंत्रण मिलता है देखें, जैसे कि रोटेशन.
- ऐप्लिकेशन नई विधि का उपयोग कर सकते हैं
दिल्ली से दूरी सेट करने के लिए,
- तारीख के हिसाब से सही तारीख चुनने की सुविधा से कैलेंडर व्यू पाना
getCalendarView()
का एक नया तरीका आपकोDatePicker
सेCalendarView
पाने की सुविधा देता है इंस्टेंस.
- व्यू अलग होने पर कॉलबैक पाना
- नए
View.OnAttachStateChangeListener
से आपको रिसीव करो कॉलबैक तब होता है, जब कोई व्यू अपनी विंडो से अटैच या अलग किया जाता है.addOnAttachStateChangeListener()
का इस्तेमाल करें लिसनर जोड़ने के लिए औरaddOnAttachStateChangeListener()
को हटाने के लिए.
- नए
- फ़्रैगमेंट ब्रेडक्रंब लिसनर, नया onInflate() सिग्नेचर
- एक नया तरीका,
setOnBreadCrumbClickListener()
, आपकी मदद करने के लिए, ऐप्लिकेशन फ़्रैगमेंट-ब्रेडक्रंब क्लिक को बीच में रोकते हैं और ज़रूरी कार्रवाई करते हैं या फ़्रैगमेंट, जिस पर क्लिक किया गया था. Fragment
क्लास में,onInflate(attrs, savedInstanceState)
का इस्तेमाल नहीं किया जा सकता. इसके बजाय, कृपयाonInflate(activity, attrs, savedInstanceState)
का इस्तेमाल करें.
- एक नया तरीका,
- खोज परिणाम को नए टैब में दिखाएं
ACTION_WEB_SEARCH
इंटेंट के लिएEXTRA_NEW_SEARCH
डेटा कुंजी आपको इसमें खोज खोलने देती है पर क्लिक करें.
- ड्रॉ करने लायक टेक्स्ट कर्सर
- अब आप नए
संसाधन एट्रिब्यूट
textCursorDrawable
.
- अब आप नए
संसाधन एट्रिब्यूट
- रिमोट व्यू में बच्चे को दिखाने की सेटिंग
- सुविधा का एक नया तरीका
setDisplayedChild(viewId, childIndex)
,RemoteViews
सब-क्लास में उपलब्ध है. आपकोViewAnimator
में दिखने वाले चाइल्ड खाते को सेट करने औरAdapterViewAnimator
सब-क्लास. जैसे,AdapterViewFlipper
,StackView
,ViewFlipper
, औरViewSwitcher
.
- सुविधा का एक नया तरीका
- गेमपैड और अन्य इनपुट डिवाइसों के लिए सामान्य कुंजियां
KeyEvent
यहां जेनरिक कीकोड की रेंज जोड़ता है: गेमपैड के बटन शामिल कर सकें. क्लास में यह भी जोड़ा जाता हैisGamepadButton(int)
और कई अन्य लोग की-कोड के साथ काम करने के लिए सहायक विधियां.
ग्राफ़िक्स
- बिटमैप मैनेज करने में मदद करने वाले टूल
setHasAlpha(boolean)
ऐप्लिकेशन को यह बताने देता है कि बिटमैप के सभी पिक्सल ओपेक (गलत) माने जाते हैं या पिक्सेल में गैर-ओपेक अल्फ़ा मान हो सकते हैं (सही). ध्यान दें, कुछ कॉन्फ़िगरेशन (जैसे के रूप में) वैल्यू. इसका उद्देश्य एक ड्रॉइंग संकेत के रूप में है, जैसा कि कुछ मामलों में एक ऐसा बिटमैप होता है जिसे अपारदर्शी होने के लिए, गैर-ओपेक वाले केस की तुलना में ज़्यादा तेज़ ड्रॉइंग केस लिया जा सकता है हर पिक्सल की ऐल्फ़ा वैल्यू.getByteCount()
को बिटमैप का साइज़ बाइट हैं.getGenerationId()
, ऐप्लिकेशन को यह सुविधा देता है कि पता लगाता है कि क्या बिटमैप में बदलाव किया गया है, जैसे कि कैश मेमोरी के लिए.sameAs(android.graphics.Bitmap)
तय करता है क्या दिया गया बिट मैप मौजूदा बिटमैप से अलग डाइमेंशन में, कॉन्फ़िगरेशन या पिक्सल डेटा से कनेक्ट कर सकते हैं.
- कैमरे की जगह सेट करना और उसे घुमाना
Camera
, इस खाते के लिए दो नए तरीकेrotate()
औरsetLocation()
जोड़ेगा का कंट्रोल 3D ट्रांसफ़ॉर्मेशन के लिए, कैमरे की जगह की जानकारी देखें.
नेटवर्क
- बेहतर परफ़ॉर्मेंस वाला वाई-फ़ाई लॉक
- बेहतर परफ़ॉर्मेंस वाले नए वाई-फ़ाई लॉक की मदद से, ऐप्लिकेशन मैनेज किए जा सकते हैं
डिवाइस की स्क्रीन बंद होने पर भी बेहतर परफ़ॉर्मेंस वाले वाई-फ़ाई कनेक्शन.
लंबे समय तक संगीत, वीडियो या आवाज़ स्ट्रीम करने वाले ऐप्लिकेशन
स्ट्रीमिंग प्रदर्शन सुनिश्चित करने के लिए उच्च-प्रदर्शन वाला वाई-फ़ाई लॉक, भले ही स्क्रीन
बंद है. यह ज़्यादा पावर इस्तेमाल करता है, इसलिए ऐप्लिकेशन को
लंबे समय तक चलने वाले चालू रहने की ज़रूरत होने पर बेहतर परफ़ॉर्मेंस देने वाला वाई-फ़ाई
कनेक्शन.
बेहतर परफ़ॉर्मेंस वाला लॉक बनाने के लिए,
WIFI_MODE_FULL_HIGH_PERF
को लॉक मोड के रूप में इस डिवाइस में पास करेंcreateWifiLock()
को कॉल.
- बेहतर परफ़ॉर्मेंस वाले नए वाई-फ़ाई लॉक की मदद से, ऐप्लिकेशन मैनेज किए जा सकते हैं
डिवाइस की स्क्रीन बंद होने पर भी बेहतर परफ़ॉर्मेंस वाले वाई-फ़ाई कनेक्शन.
लंबे समय तक संगीत, वीडियो या आवाज़ स्ट्रीम करने वाले ऐप्लिकेशन
स्ट्रीमिंग प्रदर्शन सुनिश्चित करने के लिए उच्च-प्रदर्शन वाला वाई-फ़ाई लॉक, भले ही स्क्रीन
बंद है. यह ज़्यादा पावर इस्तेमाल करता है, इसलिए ऐप्लिकेशन को
लंबे समय तक चलने वाले चालू रहने की ज़रूरत होने पर बेहतर परफ़ॉर्मेंस देने वाला वाई-फ़ाई
कनेक्शन.
- ट्रैफ़िक से जुड़े ज़्यादा आंकड़े
- ऐप्लिकेशन अब और ज़्यादा प्रकार के नेटवर्क उपयोग के बारे में आंकड़ों को ऐक्सेस कर सकते हैं
TrafficStats
में नए तरीकों का इस्तेमाल करके. ऐप्लिकेशन Google Tag Manager यूडीपी आंकड़े, पैकेट काउंट, टीसीपी ट्रांसमिशन/पेलोड बाइट पाने और सेगमेंट.
- ऐप्लिकेशन अब और ज़्यादा प्रकार के नेटवर्क उपयोग के बारे में आंकड़ों को ऐक्सेस कर सकते हैं
- SIP की पुष्टि करने वाला उपयोगकर्ता नाम
- ऐप्लिकेशन अब किसी प्रोफ़ाइल के लिए SIP प्रमाणीकरण उपयोगकर्ता नाम पा सकते हैं और उसे सेट कर सकते हैं
इसका उपयोग कर रहा है
getAuthUserName()
औरsetAuthUserName()
.
- ऐप्लिकेशन अब किसी प्रोफ़ाइल के लिए SIP प्रमाणीकरण उपयोगकर्ता नाम पा सकते हैं और उसे सेट कर सकते हैं
इसका उपयोग कर रहा है
डाउनलोड मैनेजर
- पूरे हो चुके डाउनलोड मैनेज करना
- ऐप्लिकेशन अब ऐसे डाउनलोड शुरू कर सकते हैं जो उपयोगकर्ताओं को केवल
पूरा हुआ. इस तरह का डाउनलोड शुरू करने के लिए, ऐप्लिकेशन
VISIBILITY_VISIBLE_NOTIFY_ONLY_COMPLETION
को पास करते हैंsetNotificationVisibility()
तरीके में अनुरोध ऑब्जेक्ट. addCompletedDownload()
एक नई तरीका है. इसका इस्तेमाल करके, ऐप्लिकेशन डेटाबेस डाउनलोड करता है, ताकि डाउनलोड ऐप्लिकेशन इसे प्रबंधित कर सके.
- ऐप्लिकेशन अब ऐसे डाउनलोड शुरू कर सकते हैं जो उपयोगकर्ताओं को केवल
पूरा हुआ. इस तरह का डाउनलोड शुरू करने के लिए, ऐप्लिकेशन
- साइज़ के हिसाब से क्रम में लगाए गए, डाउनलोड किए गए वीडियो दिखाएं
- ऐप्लिकेशन इसके अनुसार डाउनलोड ऐप्लिकेशन को आकार के अनुसार क्रम से लगाने वाले मोड में शुरू कर सकते हैं
ACTION_VIEW_DOWNLOADS
इंटेंट में नया अतिरिक्तINTENT_EXTRAS_SORT_BY_SIZE
जोड़ना.
- ऐप्लिकेशन इसके अनुसार डाउनलोड ऐप्लिकेशन को आकार के अनुसार क्रम से लगाने वाले मोड में शुरू कर सकते हैं
IME फ़्रेमवर्क
- इनपुट के तरीके की अतिरिक्त मान कुंजी पाना
InputMethodSubtype
, तरीका यह देखने के लिएcontainsExtraValueKey()
कि ExtraValue स्ट्रिंग सेव की गई है या नहीं और इस सब-टाइप के लिए तरीकाgetExtraValueOf()
है, जिससे ExtraValue हैशमैप से कोई खास कुंजी वैल्यू निकाली जा सकती है.
मीडिया
- ऑडियो स्ट्रीम करने के नए फ़ॉर्मैट
- मीडिया फ़्रेमवर्क, रॉ ADTS AAC कॉन्टेंट के लिए अंतर्निहित समर्थन जोड़ता है, बेहतरीन क्वालिटी के ऑडियो स्ट्रीम के लिए, FLAC ऑडियो की सुविधा मिलती है (लॉसलेस) कंप्रेस किया गया ऑडियो कॉन्टेंट. इस्तेमाल किए जा सकने वाले मीडिया फ़ॉर्मैट देखें दस्तावेज़ देखें.
लॉन्च से जुड़े कंट्रोल बंद किए गए ऐप्लिकेशन
Android 3.1 से, सिस्टम का पैकेज मैनेजर ऐसे ऐप्लिकेशन जो रुकी हुई स्थिति में हैं और जिन्हें कंट्रोल करने का विकल्प दिया गया है को बैकग्राउंड में चलने वाली प्रोसेस और अन्य ऐप्लिकेशन से लॉन्च किया जाता है.
ध्यान दें कि किसी ऐप्लिकेशन की रुकी हुई स्थिति और किसी गतिविधि की रोका गया स्थिति. सिस्टम उन दोनों रुकी हुई स्थितियों को अलग-अलग मैनेज करता है.
प्लैटफ़ॉर्म दो नए इंटेंट फ़्लैग तय करता है, जिनसे भेजने वाले को पता चलता है क्या इंटेंट को रोके गए कॉम्पोनेंट को चालू करने की अनुमति दी जानी चाहिए का इस्तेमाल करें.
FLAG_INCLUDE_STOPPED_PACKAGES
— संभावित टारगेट की सूची में, रोके गए ऐप्लिकेशन के इंटेंट फ़िल्टर शामिल करें समस्या का हल नहीं किया जा सकता.FLAG_EXCLUDE_STOPPED_PACKAGES
— संभावित ऐप्लिकेशन की सूची से, रोके गए ऐप्लिकेशन के इंटेंट फ़िल्टर को बाहर रखें टारगेट के लिए.
जब इन दोनों फ़्लैग को किसी इंटेंट में तय नहीं किया जाता है, तो डिफ़ॉल्ट व्यवहार है रोके गए ऐप्लिकेशन के फ़िल्टर को आपकी सूची में टारगेट के बारे में बताता है.
ध्यान दें कि सिस्टम, FLAG_EXCLUDE_STOPPED_PACKAGES
को सभी ब्रॉडकास्ट में जोड़ता है
इंटेंट. यह ऐसा इसलिए करता है, ताकि बैकग्राउंड में चलने वाली सेवाओं के ब्रॉडकास्ट को रोका जा सके
अचानक या बिना वजह से रोके गए ऐप्लिकेशन के कॉम्पोनेंट लॉन्च करना.
कोई पृष्ठभूमि सेवा या ऐप्लिकेशन
ब्रॉडकास्ट करने के लिए FLAG_INCLUDE_STOPPED_PACKAGES
फ़्लैग
ऐसे इंटेंट जिन्हें रोके गए ऐप्लिकेशन को चालू करने की अनुमति होनी चाहिए.
ऐप्लिकेशन पहली बार इंस्टॉल होने पर रुकी हुई स्थिति में होते हैं, लेकिन लॉन्च कर दिया गया हो और जब उपयोगकर्ता उसे मैन्युअल रूप से बंद कर दे (' ऐप्लिकेशन).
ऐप्लिकेशन पहली बार लॉन्च और अपग्रेड करने की सूचना
ऐप्लिकेशन के पहली बार लॉन्च होने के बारे में, प्लैटफ़ॉर्म पर बेहतर सूचनाएं मिलती हैं. साथ ही, दो नए इंटेंट ऐक्शन के ज़रिए अपग्रेड करता है:
ACTION_PACKAGE_FIRST_LAUNCH
— इन्हें भेजा गया किसी ऐप्लिकेशन के पहली बार लॉन्च होने पर, उस ऐप्लिकेशन का इंस्टॉलर पैकेज (इसका मतलब है कि पहली बार जब इसे रोका गया स्थिति से बाहर लाया गया हो). डेटा पैकेज का नाम शामिल होता है.ACTION_MY_PACKAGE_REPLACED
— सूचनाएं एक ऐसा ऐप्लिकेशन जिसे उसे अपडेट किया गया था, जिस पर एक नया वर्शन इंस्टॉल किया गया था पहले से मौजूद वर्शन. इसे सिर्फ़ उस ऐप्लिकेशन पर भेजा जाता है जिसे बदला गया है. यह कोई अतिरिक्त डेटा नहीं है. इसे पाने के लिए, इंटेंट फ़िल्टर का एलान करें आपको यह कार्रवाई करनी होगी. इंटेंट का इस्तेमाल उस कोड को ट्रिगर करने के लिए किया जा सकता है जो फिर से चलाने के लिए उचित स्थिति में रखना चाहिए.यह इंटेंट सीधे ऐप्लिकेशन पर भेजा जाता है, लेकिन सिर्फ़ ऐप्लिकेशन में को तब अपग्रेड किया गया, जब यह शुरू होने की स्थिति में था (बंद स्थिति में नहीं).
मुख्य सुविधाएं
- LRU कैश
- नई
LruCache
क्लास की मदद से, आपके आवेदनों को फ़ायदा मिलेगा कैश मेमोरी से बाहर रखा जा सकता है. ऐप्लिकेशन, क्लास का इस्तेमाल करने में लगने वाले समय को कम कर सकते हैं नेटवर्क से डेटा की कंप्यूटिंग या डाउनलोड करने के साथ-साथ, कैश किए गए डेटा के लिए मेमोरी फ़ुटप्रिंट.LruCache
एक कैश मेमोरी है जो सीमित वैल्यू के लिए मज़बूत रेफ़रंस देता है. हर बार जब कोई वैल्यू होती है ऐक्सेस करने के बाद, वह सूची में सबसे ऊपर चला जाता है. जब किसी पूर्ण वैल्यू को जोड़ा जाता है कैश मेमोरी में सेव करता है, तो उस सूची के आखिर में मौजूद वैल्यू हटा दी जाती है और हो सकता है कि गार्बेज कलेक्शन.
- नई
- फ़ाइल डिस्क्रिप्टर,
int
के तौर पर- अब आप
getFd()
याdetachFd()
में से किसी एक का इस्तेमाल करके,ParcelFileDescriptor
के लिए नेटिव फ़ाइल डिस्क्रिप्टर पूर्णांक पा सकते हैं.
- अब आप
WebKit
- फ़ाइल स्कीम कुकी
CookieManager
अब उन कुकी के साथ काम करता है जो यहfile:
यूआरआई स्कीम.setAcceptFileSchemeCookies()
का इस्तेमाल इन कामों के लिए किया जा सकता है कोई इंस्टेंस बनाने से पहले, फ़ाइल स्कीम कुकी के लिए सहायता चालू/बंद करें कुलWebView
याCookieManager
. मेंCookieManager
इंस्टेंस में, यह देखा जा सकता है कि फ़ाइल स्कीम कुकी की जांच की जा रही है या नहीं कोallowFileSchemeCookies()
पर कॉल करके चालू किया गया है.
- लॉगिन के अनुरोध की सूचना
- Android 3.0 में प्रस्तुत की गई ब्राउज़र ऑटोलॉग सुविधाओं का समर्थन करने के लिए,
नया ईमेल
तरीका
onReceivedLoginRequest()
होस्ट को सूचना देती है वह ऐप्लिकेशन जिसे उपयोगकर्ता के लिए अपने-आप लॉगिन करने का अनुरोध प्रोसेस किया गया था.
- Android 3.0 में प्रस्तुत की गई ब्राउज़र ऑटोलॉग सुविधाओं का समर्थन करने के लिए,
नया ईमेल
तरीका
- क्लास और इंटरफ़ेस हटाए गए
- इसके बाद, Public API से कई क्लास और इंटरफ़ेस हटा दिए गए थे पहले रुकी हुई थी. एपीआई देखें अंतर की रिपोर्ट देखें.
ब्राउज़र
ब्राउज़र ऐप्लिकेशन, वेब पर काम करने के लिए ये सुविधाएं जोड़ता है ऐप्लिकेशन:
- HTML5 में एम्बेड किए गए वीडियो के इनलाइन प्लेबैक के लिए समर्थन
<video>
टैग. जहां भी मुमकिन हो, वीडियो को हार्डवेयर से तेज़ी से चलाया जाता है. - सभी साइटों (मोबाइल और डेस्कटॉप से कनेक्ट होता है.
नए फ़ीचर कॉन्सटेंट
इस प्लैटफ़ॉर्म पर, हार्डवेयर की नई सुविधाओं को एक साथ जोड़ा गया है. डेवलपर के पास इनका एलान करने की सुविधा होती है
साथ ही, बाहरी इकाइयों को जानकारी देने के लिए, जैसे कि Google
ऐप्लिकेशन की नई हार्डवेयर क्षमताओं के लिए ज़रूरी शर्तों का प्ले
प्लैटफ़ॉर्म के इस वर्शन में. डेवलपर इनके साथ-साथ अन्य सुविधाओं का एलान करते हैं
<uses-feature>
मेनिफ़ेस्ट एलिमेंट में कॉन्सटेंट.
android.hardware.usb.accessory
— ऐप्लिकेशन यूएसबी का इस्तेमाल करता है एपीआई का इस्तेमाल, यूएसबी और होस्ट के रूप में काम करता है.android.hardware.usb.host
— ऐप्लिकेशन यूएसबी एपीआई का इस्तेमाल करता है यूएसबी के ज़रिए कनेक्ट किए गए बाहरी हार्डवेयर डिवाइसों के साथ संपर्क करने और इस तरह से काम करने के लिए डिवाइस.
Google Play, <uses-feature>
मेनिफ़ेस्ट एलिमेंट में बताई गई सुविधाओं के हिसाब से ऐप्लिकेशन को फ़िल्टर करता है. इसके बारे में ज़्यादा जानकारी पाने के लिए,
ऐप्लिकेशन मेनिफ़ेस्ट में सुविधाओं के बारे में जानकारी देने के लिए, Google Play
फ़िल्टर.
एपीआई में अंतर की रिपोर्ट
Android 3.1 (एपीआई) में एपीआई में हुए सभी बदलावों की ज़्यादा जानकारी के लिए लेवल 12), API देखें अंतर की रिपोर्ट.
एपीआई लेवल
Android 3.1 प्लेटफ़ॉर्म फ़्रेमवर्क एपीआई को मैन्युअल तौर पर इस्तेमाल किया जा सकता है. Android 3.1 API को एक पूर्णांक आइडेंटिफ़ायर असाइन किया जाता है — 12 — इसका मतलब है कि सेव किया जाता है. "एपीआई लेवल" कहा जाने वाला यह आइडेंटिफ़ायर, सिस्टम को सही तरीके से यह तय करने की अनुमति देता है कि कोई ऐप्लिकेशन इसके साथ काम करता है या नहीं सिस्टम पर क्लिक करें.
अपने ऐप्लिकेशन में Android 3.1 में प्रस्तुत किए गए API का उपयोग करने के लिए,
आपको इसमें दी गई Android लाइब्रेरी के हिसाब से ऐप्लिकेशन को कंपाइल करना होगा
Android 3.1 SDK प्लैटफ़ॉर्म पर भी काम करता है. अपनी ज़रूरतों के आधार पर,
शायद
android:minSdkVersion="12"
भी जोड़ना होगा
ऐप्लिकेशन के <uses-sdk>
एलिमेंट की विशेषता
मेनिफ़ेस्ट.
ज़्यादा जानकारी के लिए, एपीआई क्या है, यह पढ़ें लेवल?