इमोजी के साथ काम करने की सुविधा

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

इमोजी दिखाने वाले डिवाइस
पहली इमेज. इमोजी की तुलना करना

इस बारे में ज़्यादा जानने के लिए, यहां दिए गए लेख पढ़ें:

  • इमोजी के साथ काम करने वाले ऐप्लिकेशन का सैंपल Java | Kotlin

EmojiCompat कैसे काम करता है?

EmojiCompat सहायता लाइब्रेरी, Android 4.4 (एपीआई लेवल 19) और इसके बाद के वर्शन पर काम करने वाले डिवाइसों पर, बैकवर्ड-कंपैटिबल इमोजी की सुविधा लागू करने के लिए क्लास उपलब्ध कराती है. EmojiCompat को, बंडल किए गए या डाउनलोड किए जा सकने वाले फ़ॉन्ट में से किसी एक के साथ कॉन्फ़िगर किया जा सकता है. कॉन्फ़िगरेशन के बारे में ज़्यादा जानने के लिए, यहां दिए गए सेक्शन देखें:

EmojiCompat किसी दिए गए CharSequence के लिए इमोजी की पहचान करता है. साथ ही, ज़रूरत पड़ने पर उन्हें EmojiSpans से बदल देता है और आखिर में इमोजी ग्लिफ़ को रेंडर करता है. दूसरी इमेज में इस प्रोसेस के बारे में बताया गया है.

EmojiCompat प्रोसेस
दूसरी इमेज. इमोजी कॉम्पैट की प्रोसेस

डाउनलोड किए जा सकने वाले फ़ॉन्ट का कॉन्फ़िगरेशन

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

सहायता लाइब्रेरी की डिपेंडेंसी जोड़ना

EmojiCompat सहायता लाइब्रेरी का इस्तेमाल करने के लिए, आपको अपने डेवलपमेंट एनवायरमेंट में, अपने ऐप्लिकेशन प्रोजेक्ट की क्लासपथ डिपेंडेंसी में बदलाव करना होगा.

अपने ऐप्लिकेशन प्रोजेक्ट में सहायता लाइब्रेरी जोड़ने के लिए:

  1. अपने ऐप्लिकेशन की build.gradle फ़ाइल खोलें.
  2. सहायता लाइब्रेरी को dependencies सेक्शन में जोड़ें.

ग्रूवी

dependencies {
    ...
    implementation "androidx.emoji:emoji:28.0.0"
}

Kotlin

dependencies {
    ...
    implementation("androidx.emoji:emoji:28.0.0")
}

डाउनलोड किए जा सकने वाले फ़ॉन्ट का कॉन्फ़िगरेशन शुरू करना

मेटाडेटा और टाइपफ़ेस को लोड करने के लिए, आपको EmojiCompat को शुरू करना होगा. शुरू होने में कुछ समय लग सकता है. इसलिए, शुरू करने की प्रोसेस बैकग्राउंड थ्रेड पर चलती है.

डाउनलोड किए जा सकने वाले फ़ॉन्ट कॉन्फ़िगरेशन के साथ EmojiCompat शुरू करने के लिए, यह तरीका अपनाएं:

  1. FontRequest क्लास का एक इंस्टेंस बनाएं और फ़ॉन्ट उपलब्ध कराने वाली संस्था, फ़ॉन्ट उपलब्ध कराने वाला पैकेज, फ़ॉन्ट क्वेरी, और सर्टिफ़िकेट के लिए हैश के सेट की सूची दें. FontRequest के बारे में ज़्यादा जानकारी के लिए, डाउनलोड किए जा सकने वाले फ़ॉन्ट के दस्तावेज़ में, डाउनलोड किए जा सकने वाले फ़ॉन्ट को प्रोग्राम के हिसाब से इस्तेमाल करना सेक्शन देखें.
  2. FontRequestEmojiCompatConfig का एक इंस्टेंस बनाएं और Context और FontRequest के इंस्टेंस दें.
  3. EmojiCompat को शुरू करने के लिए, init() तरीके को कॉल करें और FontRequestEmojiCompatConfig का इंस्टेंस पास करें.
  4. Kotlin

    class MyApplication : Application() {
    
        override fun onCreate() {
            super.onCreate()
            val fontRequest = FontRequest(
                    "com.example.fontprovider",
                    "com.example",
                    "emoji compat Font Query",
                    CERTIFICATES
            )
            val config = FontRequestEmojiCompatConfig(this, fontRequest)
            EmojiCompat.init(config)
        }
    }
    

    Java

    public class MyApplication extends Application {
      @Override
       public void onCreate() {
         super.onCreate();
         FontRequest fontRequest = new FontRequest(
           "com.example.fontprovider",
           "com.example",
           "emoji compat Font Query",
           CERTIFICATES);
         EmojiCompat.Config config = new FontRequestEmojiCompatConfig(this, fontRequest);
         EmojiCompat.init(config);
       }
    }
    
  5. लेआउट एक्सएमएल में EmojiCompat विजेट का इस्तेमाल करें. अगर AppCompat का इस्तेमाल किया जा रहा है, तो AppCompat के साथ EmojiCompat विजेट इस्तेमाल करना सेक्शन देखें.
  6. <android.support.text.emoji.widget.EmojiTextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"/>
    
    <android.support.text.emoji.widget.EmojiEditText
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"/>
    
    <android.support.text.emoji.widget.EmojiButton
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"/>
    

डाउनलोड किए जा सकने वाले फ़ॉन्ट कॉन्फ़िगरेशन के साथ EmojiCompat को कॉन्फ़िगर करने के तरीके के बारे में ज़्यादा जानने के लिए, इमोजी के साथ काम करने वाले सैंपल ऐप्लिकेशन Java | Kotlin पर जाएं.

लाइब्रेरी कॉम्पोनेंट

EmojiCompat प्रोसेस में लाइब्रेरी कॉम्पोनेंट
तीसरी इमेज. EmojiCompat प्रोसेस में लाइब्रेरी के कॉम्पोनेंट
विजेट: EmojiEditText, EmojiTextView, EmojiButton
TextView, EditText, और Button के साथ EmojiCompat का इस्तेमाल करने के लिए, डिफ़ॉल्ट विजेट लागू करना.
EmojiCompat
सहायता लाइब्रेरी का मुख्य सार्वजनिक प्लैटफ़ॉर्म. यह सभी बाहरी कॉल करता है और सिस्टम के अन्य हिस्सों के साथ काम करता है.
EmojiCompat.Config
सिंगलटन इंस्टेंस को कॉन्फ़िगर करता है.
EmojiSpan
एक ReplacementSpan सब-क्लास जो क्रम (क्रमों) की जगह लेती है और ग्लिफ़ को रेंडर करती है.
EmojiCompat फ़ॉन्ट
EmojiCompat, इमोजी दिखाने के लिए फ़ॉन्ट का इस्तेमाल करता है. यह फ़ॉन्ट, Android इमोजी फ़ॉन्ट का बदला हुआ वर्शन है. फ़ॉन्ट में इस तरह बदलाव किया गया है:
  • इमोजी को रेंडर करने के लिए, पुराने सिस्टम के साथ काम करने की सुविधा उपलब्ध कराने के लिए, सभी इमोजी के वर्णों को यूनिकोड के पूरक निजी इस्तेमाल एरिया-ए में एक यूनिकोड कोड पॉइंट के साथ दिखाया जाता है. इसकी शुरुआत U+F0001 से होती है.
  • अतिरिक्त इमोजी मेटाडेटा को फ़ॉन्ट में बाइनरी फ़ॉर्मैट में डाला जाता है और रनटाइम के दौरान इसे EmojiCompat के ज़रिए पार्स किया जाता है. डेटा को फ़ॉन्ट की meta टेबल में एम्बेड किया गया है. साथ ही, इसे निजी टैग Emji के साथ जोड़ा गया है.

कॉन्फ़िगरेशन के विकल्प

EmojiCompat के व्यवहार में बदलाव करने के लिए, EmojiCompat इंस्टेंस का इस्तेमाल किया जा सकता है. कॉन्फ़िगरेशन सेट करने के लिए, बेस क्लास के इन तरीकों का इस्तेमाल किया जा सकता है:

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

Kotlin

val config = FontRequestEmojiCompatConfig(...)
        .setReplaceAll(true)
        .setEmojiSpanIndicatorEnabled(true)
        .setEmojiSpanIndicatorColor(Color.GREEN)
        .registerInitCallback(object: EmojiCompat.InitCallback() {
            ...
        })

Java

EmojiCompat.Config config = new FontRequestEmojiCompatConfig(...)
       .setReplaceAll(true)
       .setEmojiSpanIndicatorEnabled(true)
       .setEmojiSpanIndicatorColor(Color.GREEN)
       .registerInitCallback(new InitCallback() {...})

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

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

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

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

अगर AppCompat widgets का इस्तेमाल किया जा रहा है, तो AppCompat widgets से एक्सटेंशन वाले EmojiCompat विजेट इस्तेमाल किए जा सकते हैं.

  1. सहायता लाइब्रेरी को डिपेंडेंसी सेक्शन में जोड़ें.

    Groovy

    dependencies {
        ...
        implementation "androidx.emoji:emoji-bundled:$version"
    }
    

    Kotlin

          dependencies {
              implementation("androidx.emoji:emoji-appcompat:$version")
          }
          

    ग्रूवी

          dependencies {
              implementation "androidx.emoji:emoji-appcompat:$version"
          }
          
  2. लेआउट एक्सएमएल में EmojiCompat AppCompat Widget विजेट का इस्तेमाल करें.
  3. <android.support.text.emoji.widget.EmojiAppCompatTextView
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"/>
    
    <android.support.text.emoji.widget.EmojiAppCompatEditText
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"/>
    
    <android.support.text.emoji.widget.EmojiAppCompatButton
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"/>
    

बंडल किए गए फ़ॉन्ट का कॉन्फ़िगरेशन

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

ध्यान दें: फ़ॉन्ट का साइज़ कई मेगाबाइट में होता है.

सहायता लाइब्रेरी की डिपेंडेंसी जोड़ना

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

अपने ऐप्लिकेशन प्रोजेक्ट में सहायता लाइब्रेरी जोड़ने के लिए:

  1. अपने ऐप्लिकेशन की build.gradle फ़ाइल खोलें.
  2. सहायता लाइब्रेरी को dependencies सेक्शन में जोड़ें.

ग्रूवी

dependencies {
    ...
    implementation "androidx.emoji:emoji:28.0.0"
}

Kotlin

dependencies {
    ...
    implementation("androidx.emoji:emoji:28.0.0")
}

EmojiCompat को कॉन्फ़िगर करने के लिए, बंडल किए गए फ़ॉन्ट का इस्तेमाल करना

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

  1. EmojiCompat का इंस्टेंस बनाने और Context का इंस्टेंस देने के लिए, BundledEmojiCompatConfig का इस्तेमाल करें.
  2. EmojiCompat को शुरू करने के लिए, init() तरीके को कॉल करें और BundledEmojiCompatConfig का इंस्टेंस पास करें.

Kotlin

class MyApplication : Application() {

    override fun onCreate() {
        super.onCreate()
        val config = BundledEmojiCompatConfig(this)
        EmojiCompat.init(config)
    }
}

Java

public class MyApplication extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        EmojiCompat.Config config = new BundledEmojiCompatConfig(this);
        EmojiCompat.init(config);
        ...
    }
}

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

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

Kotlin

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

Java

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

IME के लिए EmojiCompat का इस्तेमाल करना

EmojiCompat की सहायता लाइब्रेरी का इस्तेमाल करके, कीबोर्ड उन इमोजी को रेंडर कर सकते हैं जिनका इस्तेमाल, उस ऐप्लिकेशन में किया जा सकता है जिससे इंटरैक्ट किया जा रहा है. IME, hasEmojiGlyph() तरीके का इस्तेमाल करके यह देख सकते हैं कि EmojiCompat इमोजी को रेंडर कर सकता है या नहीं. इस तरीके से, इमोजी का CharSequence लिया जाता है. अगर EmojiCompat, इमोजी को पहचानकर उसे रेंडर कर सकता है, तो यह true दिखाता है.

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

  • EDITOR_INFO_METAVERSION_KEY
  • अगर बंडल में कुंजी मौजूद है, तो वैल्यू से उस इमोजी मेटाडेटा के वर्शन का पता चलता है जिसका इस्तेमाल ऐप्लिकेशन करता है. अगर यह कुंजी मौजूद नहीं है, तो इसका मतलब है कि ऐप्लिकेशन EmojiCompat का इस्तेमाल नहीं कर रहा है.

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

EditorInfo.extras बंडल में कुंजियां मिलने के बाद, कीबोर्ड hasEmojiGlyph() वाला तरीका इस्तेमाल कर सकता है. इसमें metadataVersion, EDITOR_INFO_METAVERSION_KEY की वैल्यू होती है. इसकी मदद से यह पता लगाया जा सकता है कि ऐप्लिकेशन किसी खास इमोजी को रेंडर कर सकता है या नहीं.

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

अपने ऐप्लिकेशन में CharSequence को प्रीप्रोसेस करने के लिए, process() तरीके का इस्तेमाल कभी भी किया जा सकता है. साथ ही, इसे किसी भी ऐसे विजेट में जोड़ा जा सकता है जो Spanned इंस्टेंस को रेंडर कर सकता है. उदाहरण के लिए, TextView. इसके अलावा, EmojiCompat आपको नीचे दी गई विजेट हेल्पर क्लास की सुविधा भी देता है, ताकि आप अपने पसंद के मुताबिक बनाए गए विजेट को कम से कम समय में इमोजी सहायता से बेहतर बना सकें.

TextView का सैंपल

Kotlin

class MyTextView(context: Context) : AppCompatTextView(context) {

    private val emojiTextViewHelper: EmojiTextViewHelper by lazy(LazyThreadSafetyMode.NONE) {
        EmojiTextViewHelper(this).apply {
            updateTransformationMethod()
        }
    }

    override fun setFilters(filters: Array<InputFilter>) {
        super.setFilters(emojiTextViewHelper.getFilters(filters))
    }

    override fun setAllCaps(allCaps: Boolean) {
        super.setAllCaps(allCaps)
        emojiTextViewHelper.setAllCaps(allCaps)
    }
}

Java

public class MyTextView extends AppCompatTextView {
   ...
   public MyTextView(Context context) {
       super(context);
       init();
   }
   ...
   private void init() {
       getEmojiTextViewHelper().updateTransformationMethod();
   }

   @Override
   public void setFilters(InputFilter[] filters) {
       super.setFilters(getEmojiTextViewHelper().getFilters(filters));
   }

   @Override
   public void setAllCaps(boolean allCaps) {
       super.setAllCaps(allCaps);
       getEmojiTextViewHelper().setAllCaps(allCaps);
   }

   private EmojiTextViewHelper getEmojiTextViewHelper() {
       ...
   }
}
EditText का सैंपल

Kotlin

class MyEditText(context: Context) : AppCompatEditText(context) {

    private val emojiEditTextHelper: EmojiEditTextHelper by lazy(LazyThreadSafetyMode.NONE) {
        EmojiEditTextHelper(this).also {
            super.setKeyListener(it.getKeyListener(keyListener))
        }
    }

    override fun setKeyListener(input: KeyListener?) {
        input?.also {
            super.setKeyListener(emojiEditTextHelper.getKeyListener(it))
        }
    }

    override fun onCreateInputConnection(outAttrs: EditorInfo): InputConnection {
        val inputConnection: InputConnection = super.onCreateInputConnection(outAttrs)
        return emojiEditTextHelper.onCreateInputConnection(
                inputConnection,
                outAttrs
        ) as InputConnection
    }
}

Java

public class MyEditText extends AppCompatEditText {
   ...
   public MyEditText(Context context) {
       super(context);
       init();
   }
   ...
   private void init() {
       super.setKeyListener(getEmojiEditTextHelper().getKeyListener(getKeyListener()));
   }

   @Override
   public void setKeyListener(android.text.method.KeyListener keyListener) {
       super.setKeyListener(getEmojiEditTextHelper().getKeyListener(keyListener));
   }

   @Override
   public InputConnection onCreateInputConnection(EditorInfo outAttrs) {
       InputConnection inputConnection = super.onCreateInputConnection(outAttrs);
       return getEmojiEditTextHelper().onCreateInputConnection(inputConnection, outAttrs);
   }

   private EmojiEditTextHelper getEmojiEditTextHelper() {
       ...
   }
}

अक्सर पूछे जाने वाले सवाल

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

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

  • EmojiCompat सहायता लाइब्रेरी कितनी मेमोरी का इस्तेमाल करती है?
  • फ़िलहाल, इमोजी ढूंढने के लिए डेटा स्ट्रक्चर, ऐप्लिकेशन की स्मृति में लोड किया जाता है और इसमें करीब 200 केबी का इस्तेमाल होता है.

  • क्या कस्टम TextView के लिए EmojiCompat का इस्तेमाल किया जा सकता है?
  • हां. EmojiCompat, कस्टम विजेट के लिए हेल्पर क्लास उपलब्ध कराता है. किसी दी गई स्ट्रिंग को पहले से प्रोसेस करके, उसे Spanned में बदला भी जा सकता है. विजेट की सहायक क्लास के बारे में ज़्यादा जानकारी के लिए, कस्टम विजेट के साथ EmojiCompat का इस्तेमाल करना सेक्शन देखें.

  • Android 4.4 (एपीआई लेवल 19) या इससे पहले के वर्शन पर काम करने वाले डिवाइसों पर, लेआउट एक्सएमएल में विजेट जोड़ने पर क्या होगा?
  • EmojiCompat सहायता लाइब्रेरी या उसके विजेट को उन ऐप्लिकेशन में शामिल किया जा सकता है जो Android 4.4 (एपीआई लेवल 19) या इससे पहले के वर्शन पर काम करने वाले डिवाइसों पर काम करते हैं. हालांकि, अगर कोई डिवाइस एपीआई लेवल 19 से पहले के Android वर्शन पर काम करता है, तो EmojiCompat और उसके विजेट "काम नहीं कर रहे हैं" स्थिति में होंगे. इसका मतलब है कि EmojiTextView, एक सामान्य TextView के जैसे ही काम करता है. EmojiCompat इंस्टेंस; init() तरीका कॉल करने पर, यह तुरंत LOAD_STATE_SUCCEEDED स्थिति में आ जाता है.

अन्य संसाधन

EmojiCompat लाइब्रेरी का इस्तेमाल करने के बारे में ज़्यादा जानकारी के लिए, EmojiCompat देखें.