Am also faced same issue, now its fixed and working as expected in older devices.
Step - 1 :
Need to add dependencies' as below :
implementation 'androidx.emoji:emoji:1.1.0'
implementation 'androidx.emoji:emoji-appcompat:1.1.0'
implementation 'androidx.emoji:emoji-bundled:1.1.0'
Step - 2 :
Create Application class and add below code in your onCreate() method of Application class and add Application class into AndroidManifest.xml
// add below code in onCreate() method
val emojiConfig = BundledEmojiCompatConfig(this)
emojiConfig.setReplaceAll(true)
.registerInitCallback(object : InitCallback() {
override fun onInitialized() {
Timber.d( "EmojiCompat initialized")
}
override fun onFailed(throwable: Throwable?) {
Timber.d("EmojiCompat initialization failed $throwable" )
}
})
EmojiCompat.init(emojiConfig)
Step - 3 :
Now you can add View in xml :
<androidx.emoji.widget.EmojiAppCompatTextView
android:id="@+id/tvEmoji"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:singleLine="true"
android:text="@string/str_following"
android:textColor="@color/colorLabelUse"
android:textSize="14sp" />
Step - 4 :
Now you can create instance of view and its support all the emoji with backward compatibility. you can add as a emoji as string like below :
private static final String EMOJI = "\uD83D\uDC69\u200D\uD83D\uDCBB";//
// TextView variant provided by EmojiCompat library
EmojiAppCompatTextView emojiTextView = findViewById(R.id.tvEmoji);
emojiTextView.setText(getString(R.string.emoji_text_view, EMOJI));
emojiTextView.setText(String.format("Emoji EditText %s",EMOJI));
==================ENJOY========================