मॉडर्न इमोजी इस्तेमाल करें

Compose का इस्तेमाल करके मैसेज लिखना
Android के लिए, Jetpack Compose को यूज़र इंटरफ़ेस (यूआई) टूलकिट के तौर पर सुझाया जाता है. Compose में इमोजी इस्तेमाल करने का तरीका जानें.

इमोजी के स्टैंडर्ड सेट को यूनिकोड हर साल रीफ़्रेश करता है, क्योंकि सभी तरह के ऐप्लिकेशन में इमोजी का इस्तेमाल तेज़ी से बढ़ रहा है.

अगर आपका ऐप्लिकेशन इंटरनेट कॉन्टेंट दिखाता है या टेक्स्ट इनपुट की सुविधा देता है, तो हमारा सुझाव है कि आप नए इमोजी फ़ॉन्ट का इस्तेमाल करें. ऐसा न करने पर, बाद में डाले गए इमोजी, टोफ़ू (☐) नाम के छोटे स्क्वेयर बॉक्स के तौर पर दिख सकते हैं. इसके अलावा, गलत तरीके से रेंडर किए गए अन्य इमोजी के क्रम भी दिख सकते हैं.

Android 11 (एपीआई लेवल 30) और उससे पहले के वर्शन में, इमोजी फ़ॉन्ट को अपडेट नहीं किया जा सकता. इसलिए, उन वर्शन पर इमोजी दिखाने वाले ऐप्लिकेशन को मैन्युअल तरीके से अपडेट करना होगा.

यहां आधुनिक इमोजी के उदाहरण दिए गए हैं.

उदाहरण वर्शन
🫠 🫱🏼‍🫲🏿 🫰🏽 14.0 (सितंबर 2021)
😶‍🌫️ 🧔🏻‍♀️ 🧑🏿‍❤️‍🧑🏾 13.1 (सितंबर 2020)
🥲 🥷🏿 🐻‍❄️ 13.0 (मार्च 2020)
🧑🏻‍🦰 🧑🏿‍🦯 👩🏻‍🤝‍👩🏼 12.1 (अक्टूबर 2019)
🦩 🦻🏿 👩🏼‍🤝‍👩🏻 12.0 (फ़रवरी 2019)

androidx.emoji2:emoji2 लाइब्रेरी, Android के पुराने वर्शन के साथ काम करने की सुविधा को आसान बनाती है. emoji2 लाइब्रेरी, AppCompat लाइब्रेरी की डिपेंडेंसी है. इसे काम करने के लिए, किसी और कॉन्फ़िगरेशन की ज़रूरत नहीं होती.

'लिखें' सुविधा में इमोजी इस्तेमाल करने की सुविधा

मार्च 2023 का BOM (Compose UI 1.4), इमोजी के नए वर्शन के साथ काम करता है. इसमें, एपीआई 21 तक के पुराने Android वर्शन के साथ काम करने की सुविधा भी शामिल है. इस पेज पर, View सिस्टम में नए इमोजी को कॉन्फ़िगर करने का तरीका बताया गया है. ज़्यादा जानकारी के लिए, लिखने के दौरान इमोजी इस्तेमाल करना पेज देखें.

ज़रूरी शर्तें

यह पक्का करने के लिए कि आपका ऐप्लिकेशन नए इमोजी को सही तरीके से दिखाता है या नहीं, इसे Android 10 (एपीआई लेवल 29) या उससे पहले के वर्शन पर चलने वाले डिवाइस पर लॉन्च करें. इस पेज पर आधुनिक इमोजी शामिल हैं, जिन्हें जांच के लिए दिखाया जा सकता है.

नए इमोजी के साथ काम करने के लिए, AppCompat का इस्तेमाल करना

AppCompat 1.4 वर्शन में इमोजी का इस्तेमाल करने की सुविधा शामिल है.

इमोजी का इस्तेमाल करने के लिए, AppCompat का इस्तेमाल करने के लिए, यह तरीका अपनाएं:

  1. देखें कि आपका मॉड्यूल, AppCompat लाइब्रेरी के 1.4.0-alpha01 या इससे बाद के वर्शन पर निर्भर करता है या नहीं.

    build.gradle
    
    // Ensure version is 1.4.0-alpha01 or higher.
    implementation "androidx.appcompat:appcompat.$appcompatVersion"
    
  2. पक्का करें कि टेक्स्ट दिखाने वाली सभी गतिविधियां, AppCompatActivity क्लास को बढ़ाएं.

    Kotlin

    MyActivity.kt
    
    class MyActivity: AppCompatActivity {
    ...
    }
    

    Java

    MyActivity.java
    
    class MyActivity extends AppCompatActivity {
    ...
    }
    
  3. Android 10 या उससे पहले के वर्शन पर काम करने वाले डिवाइस पर अपना ऐप्लिकेशन लॉन्च करके और नीचे दी गई टेस्ट स्ट्रिंग दिखाकर, अपने इंटिग्रेशन की जांच करें. पक्का करें कि सभी वर्ण सही तरीके से रेंडर हों.

    • 14.0: 🫠, 🫱🏼‍🫲🏿, 🫰🏽
    • 13.1: 😶‍🌫️, 🧔🏻‍♀️, 🧑🏿‍❤️‍🧑🏾
    • 13.0: 🥲, 🥷🏿, 🐻‍❄️
    • 12.1: 🧑🏻‍🦰, 🧑🏿‍🦯, 👩🏻‍🤝‍👩🏼
    • 12.0: 🦩, 🦻🏿, 👩🏼‍🤝‍👩🏻

आपका ऐप्लिकेशन, उन सभी डिवाइसों पर पुराने वर्शन के साथ काम करने वाले इमोजी अपने-आप दिखाता है जिन पर emoji2 के साथ काम करने वाले डाउनलोड किए जा सकने वाले फ़ॉन्ट उपलब्ध होते हैं. जैसे, Google Play services के साथ काम करने वाले डिवाइस.

अगर आपका ऐप्लिकेशन AppCompat का इस्तेमाल कर रहा है, लेकिन tofu (☐) दिखाता है

कुछ मामलों में, आपका ऐप्लिकेशन सही इमोजी के बजाय टोफ़ू दिखा सकता है. भले ही, आपने AppCompat लाइब्रेरी जोड़ी हो. इसकी संभावित वजहें और समाधान यहां दिए गए हैं.

आपने ऐप्लिकेशन को हाल ही में फ़्लैश किए गए डिवाइस या नए एमुलेटर पर चलाया हो

ऐप्लिकेशन के Google Play services का डेटा मिटाएं, ताकि स्टार्टअप के दौरान फ़ॉन्ट कैश मेमोरी में सेव न हो. आम तौर पर, कुछ घंटों के बाद यह समस्या ठीक हो जाती है.

ऐप्लिकेशन का डेटा मिटाने के लिए, यह तरीका अपनाएं:

  1. Android डिवाइस पर सेटिंग खोलें.

  2. ऐप्लिकेशन और सूचनाएं पर टैप करें.

  3. सभी ऐप्लिकेशन देखें या ऐप्लिकेशन की जानकारी पर टैप करें.

  4. ऐप्लिकेशन में स्क्रोल करें और Google Play services पर टैप करें.

  5. डिवाइस का स्टोरेज और कैश मेमोरी पर टैप करें.

  6. कैश मेमोरी मिटाएं पर टैप करें.

आपका ऐप्लिकेशन, AppCompat टेक्स्ट से जुड़ी क्लास का इस्तेमाल नहीं कर रहा है

ऐसा तब हो सकता है, जब AppCompatActivity को एक्सटेंड न किया गया हो या कोड में TextView जैसे किसी व्यू को इंस्टैंशिएट किया गया हो. इन बातों का ध्यान रखें:

  • गतिविधि AppCompatActivity तक चलती है.
  • कोड में व्यू बनाते समय, सही AppCompat सब-क्लास का इस्तेमाल करें.

एक्सएमएल को फ़्लोरेट करते समय, AppCompatActivity TextView के बजाय AppCompatTextView को अपने-आप फ़्लोरेट करता है. इसलिए, आपको अपना एक्सएमएल अपडेट करने की ज़रूरत नहीं है.

टेस्ट किए जा रहे फ़ोन में, डाउनलोड किए जा सकने वाले फ़ॉन्ट काम नहीं करते

पुष्टि करें कि DefaultEmojiCompatConfig.create कोई ऐसा कॉन्फ़िगरेशन दिखाता हो जो शून्य न हो.

किसी पुराने एपीआई लेवल वाले एमुलेटर पर, Google Play services को अपग्रेड नहीं किया गया है

किसी पुराने एपीआई लेवल पर एमुलेटर का इस्तेमाल करते समय, हो सकता है कि आपको फ़ॉन्ट उपलब्ध कराने वाली कंपनी ढूंढने के लिए, emoji2 के लिए बंडल की गई Google Play services को अपडेट करना पड़े. ऐसा करने के लिए, एमुलेटर पर Google Play Store में लॉग इन करें.

यह पुष्टि करने के लिए कि आपके डिवाइस पर काम करने वाला वर्शन इंस्टॉल है या नहीं, यह तरीका अपनाएं:

  1. यह कमांड चलाएं:

    adb shell dumpsys package com.google.android.gms | grep version
    
  2. देखें कि versionCode, 211200000 से ज़्यादा हो.

AppCompat के बिना इमोजी की सुविधा का इस्तेमाल करना

अगर आपका ऐप्लिकेशन AppCompat को शामिल नहीं कर सकता, तो वह सीधे emoji2 का इस्तेमाल कर सकता है. इसके लिए, ज़्यादा काम करना पड़ता है. इसलिए, इस तरीके का इस्तेमाल सिर्फ़ तब करें, जब आपका ऐप्लिकेशन AppCompat का इस्तेमाल न कर सके.

AppCompat लाइब्रेरी के बिना इमोजी का इस्तेमाल करने के लिए, यह तरीका अपनाएं:

  1. अपने ऐप्लिकेशन की build.gradle फ़ाइल में, emoji2 और emoji2-views शामिल करें.

    build.gradle
    
    def emojiVersion = "1.0.0-alpha03"
    implementation "androidx.emoji2:emoji2:$emojiVersion"
    implementation "androidx.emoji2:emoji2-views:$emojiVersion"
    

    emoji2-views मॉड्यूल, TextView, Button, और EditText के सब-क्लास उपलब्ध कराता है. ये सब-क्लास, EmojiCompat को लागू करते हैं. इसे ऐसे ऐप्लिकेशन में इस्तेमाल न करें जिसमें AppCompat शामिल है, क्योंकि इसमें पहले से ही EmojiCompat लागू है.

  2. एक्सएमएल और कोड में, जहां भी TextView, EditText या Button का इस्तेमाल किया जाता है वहां इसके बजाय, EmojiTextView, EmojiEditText या EmojiButton का इस्तेमाल करें.

    activity_main.xml
    
    <androidx.emoji2.widget.EmojiTextView ... />
    <androidx.emoji2.widget.EmojiEditText ... />
    <androidx.emoji2.widget.EmojiButton ... />
    

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

  3. इंटिग्रेशन की जांच करने के लिए, Android 11 या उससे पहले के वर्शन पर चलने वाले डिवाइस पर अपना ऐप्लिकेशन लॉन्च करें. साथ ही, यहां दी गई टेस्ट स्ट्रिंग दिखाएं. पक्का करें कि सभी वर्ण सही तरीके से रेंडर हों.

    • 14.0: 🫠, 🫱🏼‍🫲🏿, 🫰🏽
    • 13.1: 😶‍🌫️, 🧔🏻‍♀️, 🧑🏿‍❤️‍🧑🏾
    • 13.0: 🥲, 🥷🏿, 🐻‍❄️
    • 12.1: 🧑🏻‍🦰, 🧑🏿‍🦯, 👩🏻‍🤝‍👩🏼
    • 12.0: 🦩, 🦻🏿, 👩🏼‍🤝‍👩🏻

विजेट के बिना EmojiCompat का इस्तेमाल करना

EmojiCompat सही इमेज रेंडर करने के लिए, EmojiSpan का इस्तेमाल करता है. इसलिए, इसे किसी भी दिए गए CharSequence ऑब्जेक्ट को EmojiSpan ऑब्जेक्ट वाले Spanned ऑब्जेक्ट में बदलना होगा. EmojiCompat क्लास, CharSequences को Spanned इंस्टेंस में बदलने के लिए process() तरीका उपलब्ध कराती है. इस तरीके का इस्तेमाल करके, process() को बैकग्राउंड में कॉल किया जा सकता है और नतीजों को कैश मेमोरी में सेव किया जा सकता है. इससे आपके ऐप्लिकेशन की परफ़ॉर्मेंस बेहतर होती है.

Kotlin

val processed = EmojiCompat.get().process("neutral face \uD83D\uDE10")

Java

CharSequence processed = EmojiCompat.get().process("neutral face \uD83D\uDE10");

इनपुट के तरीके के संपादकों के लिए EmojiCompat का इस्तेमाल करना

EmojiCompat क्लास की मदद से, कीबोर्ड उस ऐप्लिकेशन के साथ काम करने वाले इमोजी को रेंडर कर सकते हैं जिससे वे इंटरैक्ट कर रहे हैं. इनपुट के तरीके के संपादक (आईएमई), getEmojiMatch() के तरीके का इस्तेमाल करके यह जांच कर सकते हैं कि EmojiCompat का कोई इंस्टेंस, इमोजी को रेंडर कर सकता है या नहीं. यह तरीका, किसी इमोजी का CharSequence लेता है और अगर EmojiCompat इमोजी का पता लगाकर उसे रेंडर कर सकता है, तो true दिखाता है.

कीबोर्ड यह भी देख सकता है कि ऐप्लिकेशन में EmojiCompat का कौनसा वर्शन काम करता है. इससे यह तय किया जा सकता है कि पैलेट में कौनसा इमोजी रेंडर किया जाए. वर्शन की जांच करने के लिए, अगर उपलब्ध हो, तो कीबोर्ड EditorInfo.extras बंडल में इन बटन को खोज सकता है:

  • EDITOR_INFO_METAVERSION_KEY: इससे उस इमोजी मेटाडेटा के वर्शन की जानकारी मिलती है जिसका इस्तेमाल ऐप्लिकेशन करता है. अगर यह कुंजी मौजूद नहीं है, तो इसका मतलब है कि ऐप्लिकेशन EmojiCompat का इस्तेमाल नहीं कर रहा है.
  • EDITOR_INFO_REPLACE_ALL_KEY: अगर पासकोड मौजूद है और उसे true पर सेट किया गया है, तो ऐप्लिकेशन सभी इमोजी को बदलने के लिए EmojiCompat को कॉन्फ़िगर करता है. भले ही, वे सिस्टम में मौजूद हों.

EmojiCompat के किसी इंस्टेंस को कॉन्फ़िगर करने के बारे में ज़्यादा जानें.

कस्टम व्यू में इमोजी का इस्तेमाल करना

अगर आपके ऐप्लिकेशन में ऐसे कस्टम व्यू हैं जो TextView के डायरेक्ट या इनडायरेक्ट सबक्लास हैं, जैसे कि Button, Switch या EditText, और वे व्यू उपयोगकर्ता से जनरेट किए गए कॉन्टेंट को दिखा सकते हैं, तो हर व्यू में EmojiCompat लागू करना ज़रूरी है.

यह प्रोसेस इस बात पर निर्भर करती है कि आपका ऐप्लिकेशन AppCompat लाइब्रेरी का इस्तेमाल करता है या नहीं.

AppCompat की मदद से, ऐप्लिकेशन के लिए कस्टम व्यू जोड़ना

अगर आपका ऐप्लिकेशन AppCompat का इस्तेमाल करता है, तो प्लैटफ़ॉर्म पर लागू करने के बजाय, AppCompat को लागू करने की समयसीमा बढ़ाएं. AppCompat में अपने व्यू बढ़ाने के तरीके के बारे में जानने के लिए, यहां दी गई टेबल का इस्तेमाल करें:

इसके बजाय... बढ़ाएं
TextView AppCompatTextView
EditText AppCompatEditText
ToggleButton AppCompatToggleButton
Switch SwitchCompat
Button AppCompatButton
CheckedTextView AppCompatCheckedTextView
RadioButton AppCompatRadioButton
CheckBox AppCompatCheckBox
AutoCompleteTextView AppCompatAutoCompleteTextView
MultiAutoCompleteTextView AppCompatMultiAutoCompleteTextView

AppCompat के बिना काम करने वाले ऐप्लिकेशन के लिए कस्टम व्यू जोड़ना

अगर आपका ऐप्लिकेशन AppCompat का इस्तेमाल नहीं करता है, तो emoji2-views-helper मॉड्यूल में मौजूद व्यू इंटिग्रेशन हेल्पर का इस्तेमाल करें. ये हेल्पर, कस्टम व्यू में इस्तेमाल करने के लिए डिज़ाइन किए गए हैं. ये ऐसे हेल्पर हैं जिनका इस्तेमाल AppCompat लाइब्रेरी, इमोजी की सुविधा लागू करने के लिए करती है.

AppCompat का इस्तेमाल न करने वाले ऐप्लिकेशन के लिए कस्टम व्यू की सुविधा चालू करने के लिए, यह तरीका अपनाएं.

  1. emoji2-views-helper लाइब्रेरी जोड़ें:

    implementation "androidx.emoji2:emoji2-views-helper:$emojiVersion"
    
  2. अपने ऐप्लिकेशन के कस्टम व्यू में, EmojiTextViewHelper या EmojiEditTextHelper को शामिल करने के लिए, दिए गए निर्देशों का पालन करें.

  3. Android 10 या उससे पहले के वर्शन पर काम करने वाले डिवाइस पर अपना ऐप्लिकेशन लॉन्च करके और नीचे दी गई टेस्ट स्ट्रिंग दिखाकर, अपने इंटिग्रेशन की जांच करें. पक्का करें कि सभी वर्ण सही तरीके से रेंडर हों.

    • 14.0: 🫠, 🫱🏼‍🫲🏿, 🫰🏽
    • 13.1: 😶‍🌫️, 🧔🏻‍♀️, 🧑🏿‍❤️‍🧑🏾
    • 13.0: 🥲, 🥷🏿, 🐻‍❄️
    • 12.1: 🧑🏻‍🦰, 🧑🏿‍🦯, 👩🏻‍🤝‍👩🏼
    • 12.0: 🦩, 🦻🏿, 👩🏼‍🤝‍👩🏻

emoji2 को हैंडल करने के लिए वैकल्पिक सुविधाएं

अपने ऐप्लिकेशन में emoji2 लाइब्रेरी शामिल करने के बाद, इस सेक्शन में बताई गई वैकल्पिक सुविधाएं जोड़ी जा सकती हैं.

किसी दूसरे फ़ॉन्ट या डाउनलोड किए जा सकने वाले फ़ॉन्ट की सेवा देने वाली कंपनी का इस्तेमाल करने के लिए, emoji2 को कॉन्फ़िगर करना

किसी दूसरे फ़ॉन्ट या डाउनलोड किए जा सकने वाले फ़ॉन्ट की सेवा देने वाली कंपनी का इस्तेमाल करने के लिए, emoji2 को कॉन्फ़िगर करने के लिए, ये काम करें:

  1. अपने मेनिफ़ेस्ट में ये जोड़कर, EmojiCompatInitializer को बंद करें:

    <provider
    android:name="androidx.startup.InitializationProvider"
    android:authorities="${applicationId}.androidx-startup"
    android:exported="false"
    tools:node="merge">
    <meta-data android:name="androidx.emoji2.text.EmojiCompatInitializer"
               tools:node="remove" />
    </provider>
  2. निम्न में से कोई एक कार्य करें:

    • DefaultEmojiCompatConfiguration.create(context) को कॉल करके, डिफ़ॉल्ट कॉन्फ़िगरेशन का इस्तेमाल करें.

    • EmojiCompat.Config का इस्तेमाल करके, किसी दूसरे सोर्स से फ़ॉन्ट लोड करने के लिए अपना कॉन्फ़िगरेशन बनाएं. इस क्लास में, EmojiCompat के व्यवहार में बदलाव करने के कई विकल्प मिलते हैं. इनके बारे में नीचे दिए गए सेक्शन में बताया गया है.

EmojiCompat के व्यवहार में बदलाव करना

EmojiCompat के व्यवहार में बदलाव करने के लिए, EmojiCompat.Config के किसी इंस्टेंस का इस्तेमाल किया जा सकता है.

कॉन्फ़िगरेशन का सबसे ज़रूरी विकल्प setMetadataLoadStrategy() है. इससे यह तय होता है कि EmojiCompat फ़ॉन्ट कब लोड करेगा. EmojiCompat.load() को कॉल करने के तुरंत बाद फ़ॉन्ट लोड होना शुरू हो जाता है. साथ ही, इससे ज़रूरी डाउनलोड ट्रिगर हो जाते हैं. अगर आपका ऐप्लिकेशन फ़ॉन्ट डाउनलोड करने के लिए कोई थ्रेड उपलब्ध नहीं कराता है, तो सिस्टम एक थ्रेड बनाता है.

LOAD_STRATEGY_MANUAL की मदद से, EmojiCompat.load() को कॉल करने का समय कंट्रोल किया जा सकता है. साथ ही, LOAD_STRATEGY_DEFAULT की मदद से, EmojiCompat.init() को कॉल करने पर, EmojiCompat.load() को एक साथ लोड किया जा सकता है.

ज़्यादातर ऐप्लिकेशन LOAD_STRATEGY_MANUAL का इस्तेमाल करते हैं, ताकि वे फ़ॉन्ट लोड होने की थ्रेड और समय को कंट्रोल कर सकें. ऐप्लिकेशन चालू होने में लगने वाले समय को कम करने के लिए, आपके ऐप्लिकेशन को पहली स्क्रीन दिखने तक इंतज़ार करना चाहिए. EmojiCompatInitializer इस तरीके का पालन करता है और इमोजी फ़ॉन्ट को तब तक लोड नहीं करता, जब तक पहली स्क्रीन फिर से चालू नहीं हो जाती.

कॉन्फ़िगरेशन के अन्य पहलुओं को सेट करने के लिए, बेस क्लास के इन तरीकों का इस्तेमाल करें:

  • setReplaceAll(): इससे यह तय होता है कि EmojiCompat, EmojiSpan के उदाहरणों के साथ मिले सभी इमोजी को बदलता है या नहीं. डिफ़ॉल्ट रूप से, जब EmojiCompat को लगता है कि सिस्टम किसी इमोजी को रेंडर कर सकता है, तो वह उस इमोजी को बदलता नहीं है. true पर सेट करने पर, EmojiCompat सभी इमोजी को EmojiSpan ऑब्जेक्ट से बदल देता है.
  • setEmojiSpanIndicatorEnabled(): इससे पता चलता है कि EmojiCompat, इमोजी को EmojiSpan ऑब्जेक्ट से बदलता है या नहीं. true पर सेट होने पर, EmojiCompat EmojiSpan के लिए बैकग्राउंड बनाता है. इस तरीके का इस्तेमाल मुख्य रूप से डीबग करने के लिए किया जाता है.
  • setEmojiSpanIndicatorColor: EmojiSpan को दिखाने के लिए रंग सेट करता है. डिफ़ॉल्ट वैल्यू GREEN है.
  • registerInitCallback(): यह किसी ऐप्लिकेशन को EmojiCompat शुरू करने की स्थिति के बारे में बताता है.

शुरू करने के लिए, सुनने वाले जोड़ना

EmojiCompat और EmojiCompat.Config क्लास, शुरू करने के कॉलबैक को रजिस्टर और अनरजिस्टर करने के लिए, registerInitCallback() और unregisterInitCallback() मैथड उपलब्ध कराती हैं. आपका ऐप्लिकेशन इन कॉलबैक का इस्तेमाल करके, बैकग्राउंड थ्रेड या कस्टम व्यू पर इमोजी को प्रोसेस करने से पहले, EmojiCompat के शुरू होने का इंतज़ार करता है.

इन तरीकों का इस्तेमाल करने के लिए, EmojiCompat.InitCallback क्लास का इंस्टेंस बनाएं. इन तरीकों को कॉल करें और EmojiCompat.InitCallback क्लास का इंस्टेंस पास करें. शुरू करने की प्रोसेस पूरी होने पर, EmojiCompat क्लास, onInitialized() तरीके को कॉल करती है. अगर लाइब्रेरी शुरू नहीं होती है, तो EmojiCompat क्लास, onFailed() तरीका कॉल करती है.

किसी भी समय शुरू करने की स्थिति देखने के लिए, getLoadState() तरीका कॉल करें. यह तरीका इनमें से कोई एक वैल्यू दिखाता है: LOAD_STATE_LOADING, LOAD_STATE_SUCCEEDED या LOAD_STATE_FAILED.

emoji2 के साथ बंडल किए गए फ़ॉन्ट इस्तेमाल करने की सुविधा

अपने ऐप्लिकेशन में इमोजी फ़ॉन्ट को बंडल करने के लिए, emoji2-bundled आर्टफ़ैक्ट का इस्तेमाल किया जा सकता है. हालांकि, NotoColorEmoji फ़ॉन्ट का साइज़ 10 एमबी से ज़्यादा होने की वजह से, हमारा सुझाव है कि जहां तक हो सके, आपके ऐप्लिकेशन में डाउनलोड किए जा सकने वाले फ़ॉन्ट का इस्तेमाल किया जाए. emoji2-bundled आर्टफ़ैक्ट का मकसद, उन डिवाइसों पर काम करने वाले ऐप्लिकेशन के लिए है जिन पर डाउनलोड किए जा सकने वाले फ़ॉन्ट काम नहीं करते.

emoji2-bundled आर्टफ़ैक्ट का इस्तेमाल करने के लिए, यह तरीका अपनाएं:

  1. emoji2-bundled और emoji2 आर्टफ़ैक्ट शामिल करें:

    implementation "androidx.emoji2:emoji2:$emojiVersion"
    implementation "androidx.emoji2:emoji2-bundled:$emojiVersion"
    
  2. बंडल किए गए कॉन्फ़िगरेशन का इस्तेमाल करने के लिए, emoji2 को कॉन्फ़िगर करें:

    Kotlin

    EmojiCompat.init(BundledEmojiCompatConfig(context))
    

    Java

    EmojiCompat.init(new BundledEmojiCompatConfig(context));
    
  3. AppCompat के साथ या इसके बिना emojicompat को शामिल करने के लिए, ऊपर दिए गए चरणों का पालन करके इंटिग्रेशन की जांच करें. पक्का करें कि टेस्ट स्ट्रिंग सही तरीके से दिख रही हो.

    • 14.0: 🫠, 🫱🏼‍🫲🏿, 🫰🏽
    • 13.1: 😶‍🌫️, 🧔🏻‍♀️, 🧑🏿‍❤️‍🧑🏾
    • 13.0: 🥲, 🥷🏿, 🐻‍❄️
    • 12.1: 🧑🏻‍🦰, 🧑🏿‍🦯, 👩🏻‍🤝‍👩🏼
    • 12.0: 🦩, 🦻🏿, 👩🏼‍🤝‍👩🏻

EmojiCompat के अपने-आप कॉन्फ़िगर होने का असर

सिस्टम, स्टार्टअप लाइब्रेरी, EmojiCompatInitializer, और DefaultEmojiCompatConfig का इस्तेमाल करके डिफ़ॉल्ट कॉन्फ़िगरेशन लागू करता है.

आपके ऐप्लिकेशन में पहली ऐक्टिविटी फिर से शुरू होने के बाद, इमोजी फ़ॉन्ट लोड करने की प्रोसेस को शुरू करने वाला टूल, इमोजी फ़ॉन्ट लोड करने का शेड्यूल तय करता है. इस छोटी सी देरी की वजह से, आपका ऐप्लिकेशन बैकग्राउंड थ्रेड में फ़ॉन्ट लोड होने की वजह से, बिना किसी इंतज़ार के अपना शुरुआती कॉन्टेंट दिखा पाता है.

DefaultEmojiCompatConfig, सिस्टम में इंस्टॉल किए गए ऐसे फ़ॉन्ट की सेवा देने वाली कंपनी को ढूंढता है जिसने EmojiCompat इंटरफ़ेस को लागू किया हो. जैसे, Google Play की सेवाएं. Google Play services की मदद से काम करने वाले डिवाइसों पर, यह फ़ॉन्ट को Google Play services का इस्तेमाल करके लोड करता है.

इमोजी फ़ॉन्ट को लोड करने के लिए, इनिशियलाइज़र एक बैकग्राउंड थ्रेड बनाता है. फ़ॉन्ट डाउनलोड होने में 10 सेकंड लग सकते हैं. फ़ॉन्ट डाउनलोड होने के बाद, EmojiCompat को शुरू करने में बैकग्राउंड थ्रेड को करीब 150 मिलीसेकंड लगते हैं.

EmojiCompat को शुरू करने में देरी करें. भले ही, आपने EmojiCompatInitializer को बंद कर दिया हो. अगर आपने EmojiCompat को मैन्युअल तरीके से कॉन्फ़िगर किया है, तो ऐप्लिकेशन की पहली स्क्रीन दिखने के बाद EmojiCompat.load() को कॉल करें. इससे, पहली स्क्रीन लोड होने के दौरान बैकग्राउंड में होने वाली रुकावट से बचा जा सकता है.

लोड होने के बाद, EmojiCompat इमोजी के मेटाडेटा को सेव करने के लिए, करीब 300 केबी रैम का इस्तेमाल करता है.