Android 4.0.3 के एपीआई

एपीआई लेवल: 15

Android 4.0.3 (ICE_CREAM_SANDWICH_MR1), Android 4.0 (ICE_CREAM_SANDWICH) प्लैटफ़ॉर्म फ़ैमिली का एक बेहतर वर्शन है. इस रिलीज़ में, उपयोगकर्ताओं और डेवलपर के लिए नई सुविधाएं, एपीआई में बदलाव, और कई गड़बड़ियां ठीक की गई हैं.

डेवलपर के लिए, Android 4.0.3 प्लैटफ़ॉर्म, Android SDK टूल के लिए डाउनलोड किए जा सकने वाले कॉम्पोनेंट के तौर पर उपलब्ध है. डाउनलोड किए जा सकने वाले प्लैटफ़ॉर्म में, Android लाइब्रेरी और सिस्टम इमेज के साथ-साथ, इम्यूलेटर स्किन का एक सेट और अन्य चीज़ें शामिल होती हैं. Android 4.0.3 के लिए ऐप्लिकेशन डेवलप करने या टेस्ट करने के लिए, Android SDK मैनेजर का इस्तेमाल करके, अपने SDK टूल में प्लैटफ़ॉर्म डाउनलोड करें.

एपीआई की खास जानकारी

नीचे दिए गए सेक्शन में, Android 4.0.3 में नए एपीआई के बारे में तकनीकी जानकारी दी गई है.

Contacts Provider में Social stream API

सोशल स्ट्रीम के डेटा का इस्तेमाल करने वाले ऐप्लिकेशन, अब उस डेटा को उपयोगकर्ता के हर संपर्क के साथ सिंक कर सकते हैं. साथ ही, हर संपर्क के लिए फ़ोटो के साथ आइटम भी उपलब्ध करा सकते हैं. जैसे, स्टेटस अपडेट और चेक-इन.

किसी संपर्क की सोशल स्ट्रीम की जानकारी देने वाली डेटाबेस टेबल को, android.provider.ContactsContract.StreamItems से तय किया जाता है. इस टेबल का यूआरआई, ContactsContract.RawContacts डायरेक्ट्री में नेस्ट होता है. हर सोशल स्ट्रीम टेबल में, स्ट्रीम के हर आइटम के मेटाडेटा के लिए कई कॉलम होते हैं. जैसे, सोर्स (अवतार) को दिखाने वाला आइकॉन, आइटम का लेबल, मुख्य टेक्स्ट कॉन्टेंट, आइटम के बारे में टिप्पणियां (जैसे, दूसरे लोगों के जवाब) वगैरह. किसी स्ट्रीम से जुड़ी फ़ोटो, किसी दूसरी टेबल में सेव की जाती हैं. इस टेबल के बारे में जानकारी, android.provider.ContactsContract.StreamItemPhotos में दी गई है. यह टेबल, android.provider.ContactsContract.StreamItems के यूआरआई की सब-डायरेक्ट्री के तौर पर उपलब्ध है.

ज़्यादा जानकारी के लिए, android.provider.ContactsContract.StreamItems और android.provider.ContactsContract.StreamItemPhotos देखें.

किसी संपर्क की सोशल स्ट्रीम के आइटम पढ़ने या उनमें बदलाव करने के लिए, ऐप्लिकेशन को अपनी मेनिफ़ेस्ट फ़ाइलों में <uses-permission android:name="android.permission.READ_SOCIAL_STREAM"> और/या <uses-permission android:name="android.permission.WRITE_SOCIAL_STREAM"> एट्रिब्यूट का एलान करके, उपयोगकर्ता से अनुमति का अनुरोध करना होगा.

कैलेंडर की सेवा देने वाली कंपनी
  • Calendar Provider में रंग वाली टेबल दिखाने के लिए, क्लास CalendarContract.Colors जोड़ता है. यह क्लास, किसी खाते के लिए उपलब्ध रंगों को ऐक्सेस करने के लिए फ़ील्ड उपलब्ध कराती है. रंगों का रेफ़रंस, COLOR_KEY से दिया जाता है. यह किसी खाते के नाम/टाइप के लिए यूनीक होना चाहिए. इन वैल्यू को सिर्फ़ सिंक अडैप्टर अपडेट कर सकता है.
  • डेटा एक्सचेंज/सिंक करने की सुविधा के लिए, ALLOWED_AVAILABILITY और ALLOWED_ATTENDEE_TYPES जोड़े गए.
  • इससे, मीटिंग में हिस्सा लेने वाले लोगों के लिए TYPE_RESOURCE (जैसे, कॉन्फ़्रेंस रूम) और AVAILABILITY_TENTATIVE के साथ-साथ इवेंट के लिए EVENT_COLOR_KEY जोड़ता है.

होम स्क्रीन विजेट

Android 4.0 से, होम स्क्रीन विजेट में अब अपना पैडिंग शामिल नहीं होना चाहिए. इसके बजाय, सिस्टम अब मौजूदा स्क्रीन की विशेषताओं के आधार पर, हर विजेट के लिए अपने-आप पैडिंग जोड़ता है. इससे ग्रिड में विजेट को एक जैसा और एक ही तरह से दिखाया जा सकता है. होम स्क्रीन विजेट होस्ट करने वाले ऐप्लिकेशन की मदद करने के लिए, प्लैटफ़ॉर्म एक नया तरीका getDefaultPaddingForWidget() उपलब्ध कराता है. ऐप्लिकेशन, सिस्टम से तय किए गए पैडिंग को पाने के लिए इस तरीके को कॉल कर सकते हैं. साथ ही, विजेट को ऐलोकेट करने के लिए सेल की संख्या का हिसाब लगाते समय, इस पैडिंग को ध्यान में रख सकते हैं.

स्पेलिंग की जांच करना

  • स्पेलिंग चेकर की सेवाओं को ऐक्सेस करने वाले ऐप्लिकेशन के लिए, cancel() का नया तरीका, किसी सेशन में स्पेलिंग चेकर के सभी टास्क रद्द कर देता है.
  • सुझावों के लिए एक नया फ़्लैग, RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS, जोड़ा गया है. इससे, सुझावों की संभावना के आधार पर उन्हें अलग-अलग कैटगरी में बांटा जा सकता है. उदाहरण के लिए, अगर कोई डाला गया शब्द उपयोगकर्ता के शब्दकोश में मौजूद नहीं है, लेकिन उसके लिए संभावित सुझाव हैं, तो वर्तनी जांचने वाला टूल फ़्लैग सेट कर सकता है. इसके अलावा, अगर कोई डाला गया शब्द शब्दकोश में मौजूद नहीं है और उसके लिए ऐसे सुझाव हैं जो कम काम के हैं, तो वर्तनी जांचने वाला टूल फ़्लैग सेट नहीं कर सकता.

    स्पेल-चेकर से कनेक्ट किए गए ऐप्लिकेशन, सुझाव देने वाले अन्य एट्रिब्यूट के साथ-साथ RESULT_ATTR_HAS_RECOMMENDED_SUGGESTIONS फ़्लैग का इस्तेमाल कर सकते हैं. साथ ही, getSuggestionsAttributes() और getSuggestionsCount() तरीकों का इस्तेमाल करके यह तय कर सकते हैं कि इनपुट किए गए शब्दों को टाइपो के तौर पर मार्क किया जाए या सुझाव दिए जाएं.

  • टेक्स्ट स्पैन के लिए नई FLAG_AUTO_CORRECTION स्टाइल से पता चलता है कि उपयोगकर्ता जिस शब्द/टेक्स्ट को टाइप/लिख रहा है उस पर अपने-आप सुधार करने की सुविधा लागू होने वाली है. अपने-आप सुधार होने की जानकारी देने के लिए, इस तरह के सुझाव को अलग तरह से रेंडर किया जाता है.

ब्लूटूथ

नए सार्वजनिक तरीके fetchUuidsWithSdp() और getUuids() की मदद से, ऐप्लिकेशन यह तय कर सकते हैं कि किसी रिमोट डिवाइस पर कौनसी सुविधाएं (यूयूआईडी) काम करती हैं. fetchUuidsWithSdp() के मामले में, सिस्टम काम करने वाले यूयूआईडी पाने के लिए, रिमोट डिवाइस पर सेवा खोजता है. इसके बाद, नतीजे को ACTION_UUID इंटेंट में ब्रॉडकास्ट करता है.

यूज़र इंटरफ़ेस (यूआई) टूलकिट

नए तरीके setUserVisibleHint() और getUserVisibleHint() की मदद से, किसी फ़्रैगमेंट में यह जानकारी सेट की जा सकती है कि वह फ़िलहाल उपयोगकर्ता को दिख रहा है या नहीं. सिस्टम, उपयोगकर्ता को दिखने वाले फ़्रैगमेंट के लोडर के चलने तक, ऐसे फ़्रैगमेंट के लोड होने को रोक देता है जो उपयोगकर्ता को नहीं दिखते. डिफ़ॉल्ट रूप से, दिखने के संकेत की वैल्यू "सही" होती है.

ग्राफ़िक्स

सुलभता

  • RemoteViews के क्लाइंट अब setContentDescription() तरीके का इस्तेमाल करके, बड़े किए गए लेआउट में किसी भी व्यू का कॉन्टेंट ब्यौरा सेट और पा सकते हैं.
  • getMaxScrollX(), getMaxScrollY(), setMaxScrollX(), और setMaxScrollY() तरीकों की मदद से, ऐप्लिकेशन किसी AccessibilityRecord ऑब्जेक्ट के लिए ज़्यादा से ज़्यादा स्क्रोल ऑफ़सेट को ऐक्सेस और सेट कर सकते हैं.
  • टच-एक्सप्लोरेशन मोड चालू होने पर, एक नई सुरक्षित सेटिंग ACCESSIBILITY_SPEAK_PASSWORD से पता चलता है कि उपयोगकर्ता, हेडसेट का इस्तेमाल न करने पर भी, पासवर्ड फ़ील्ड में डाले गए टेक्स्ट को बोलकर सुनाने के लिए IME से अनुरोध करता है या नहीं. डिफ़ॉल्ट रूप से, पासवर्ड का टेक्स्ट तब तक नहीं बोला जाता, जब तक हेडसेट का इस्तेमाल नहीं किया जा रहा हो.

पाठ से वाक्

  • नेटवर्क टीटीएस (टेक्स्ट को बोली में बदलने की सुविधा) की सहायता के लिए क्वेरी करने और उसे चालू करने का नया तरीका getFeatures()जोड़ा गया.
  • एक नई लिसनर क्लास, UtteranceProgressListener जोड़ता है. इंजन, बोली को टेक्स्ट में बदलने की प्रोसेस में हुई गड़बड़ियों की सूचना पाने के लिए, इसे रजिस्टर कर सकते हैं.

डेटाबेस

  • नई CrossProcessCursorWrapper क्लास की मदद से, कॉन्टेंट की सेवा देने वाली कंपनियां, क्रॉस-प्रोसेस क्वेरी के लिए ज़्यादा असरदार तरीके से नतीजे दिखा सकती हैं. नई क्लास, कर्सर को रैप करने के लिए एक काम का बिल्डिंग ब्लॉक है. इन कर्सर को रिमोट प्रोसेस पर भेजा जाएगा. यह सामान्य Cursor ऑब्जेक्ट को CrossProcessCursor ऑब्जेक्ट में भी बदल सकता है.

    CrossProcessCursorWrapper क्लास, परफ़ॉर्मेंस से जुड़ी सामान्य समस्याओं और गड़बड़ियों को ठीक करती है. ये समस्याएं, कॉन्टेंट प्रोवाइडर को लागू करते समय ऐप्लिकेशन में आती हैं.

  • CursorWindow(java.lang.String) कंस्ट्रक्टर अब इनपुट के तौर पर नाम की स्ट्रिंग लेता है. सिस्टम अब लोकल और रिमोट कर्सर विंडो के बीच अंतर नहीं करता. इसलिए, CursorWindow(boolean) अब काम नहीं करता.

मूड

डिवाइस पर आम तौर पर इस्तेमाल होने वाले ऐप्लिकेशन को टारगेट करने के लिए, नई कैटगरी जोड़ता है. जैसे, CATEGORY_APP_BROWSER, CATEGORY_APP_CALENDAR, CATEGORY_APP_MAPS वगैरह.

कैमरा

  • MediaMetadataRetriever एक नया कॉन्स्टैंट जोड़ता है METADATA_KEY_LOCATION, ताकि ऐप्लिकेशन किसी इमेज या वीडियो की जगह की जानकारी ऐक्सेस कर सकें.
  • CamcorderProfile, QVGA (320x240) रिज़ॉल्यूशन वाली प्रोफ़ाइलें जोड़ता है. क्वालिटी लेवल को QUALITY_QVGA.andQUALITY_TIME_LAPSE_QVGA कॉन्स्टेंट से दिखाया जाता है.
  • setVideoStabilization(), getVideoStabilization(), और isVideoStabilizationSupported() के नए तरीकों की मदद से, Camera के लिए वीडियो स्टेबलाइज़ेशन की सुविधा को देखा और मैनेज किया जा सकता है.

अनुमतियां

ये नई अनुमतियां हैं:

  • android.Manifest.permission#READ_SOCIAL_STREAM और android.Manifest.permission#WRITE_SOCIAL_STREAM: सिंक करने वाले एडेप्टर को, शेयर किए गए कॉन्टैक्ट प्रोवाइडर में मौजूद किसी संपर्क के सोशल स्ट्रीम डेटा को पढ़ने और उसमें डेटा लिखने की अनुमति दें.

Android 4.0.3 (एपीआई लेवल 15) में एपीआई से जुड़े सभी बदलावों के बारे में ज़्यादा जानने के लिए, एपीआई के बीच अंतर की रिपोर्ट देखें.

एपीआई लेवल

Android 4.0.3 एपीआई को एक पूर्णांक आइडेंटिफ़ायर—15—असाइन किया गया है. इसे सिस्टम में ही सेव किया जाता है. इस आइडेंटिफ़ायर को "एपीआई लेवल" कहा जाता है. इससे सिस्टम को यह पता लगाने में मदद मिलती है कि कोई ऐप्लिकेशन, सिस्टम के साथ काम करता है या नहीं.

अपने ऐप्लिकेशन में Android 4.0.3 में लॉन्च किए गए एपीआई का इस्तेमाल करने के लिए, आपको ऐप्लिकेशन को ऐसे Android प्लैटफ़ॉर्म के लिए कॉम्पाइल करना होगा जो एपीआई लेवल 15 या उससे बाद के वर्शन के साथ काम करता हो. अपनी ज़रूरतों के हिसाब से, आपको <uses-sdk> एलिमेंट में android:minSdkVersion="15" एट्रिब्यूट भी जोड़ना पड़ सकता है.

ज़्यादा जानकारी के लिए, एपीआई लेवल वाला दस्तावेज़ देखें.