首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >华为设备的EmojiCompat

华为设备的EmojiCompat
EN

Stack Overflow用户
提问于 2021-01-14 17:29:38
回答 2查看 168关注 0票数 4

我想在我的应用程序中支持华为设备的表情符号。对于所有其他供应商,我使用这样的代码来初始化EmojiCompat:

代码语言:javascript
复制
 val fontRequest = FontRequest(
            "com.google.android.gms.fonts",
            "com.google.android.gms",
            "Noto Color Emoji Compat",
            R.array.com_google_android_gms_fonts_certs
        )
        val config = FontRequestEmojiCompatConfig(context, fontRequest)
        EmojiCompat.init(config)

但对于华为设备来说,因为他们无法访问谷歌资源(我猜),所以它不起作用,EmojiCompat也不会初始化。我知道可以使用BundledEmojiCompatConfig,但我更喜欢总是获取最新的字体。

除了谷歌为华为设备提供的providerAuthority/Package之外,还有其他选择吗?

EN

回答 2

Stack Overflow用户

发布于 2021-03-09 10:49:49

EmojiCompat是安卓的一部分,并不是谷歌移动服务所独有的。我测试了下面的演示应用程序,它的代码片段与您的相同,它在我的华为Mate 30 Pro上运行良好。

Github link.

票数 0
EN

Stack Overflow用户

发布于 2021-10-30 07:23:28

您可以对无法访问GMS的设备使用BundledEmojiCompatConfig

例如:

  1. 添加依赖项:

代码语言:javascript
复制
def emojiCompatVersion = "1.0.0-rc01"

implementation 'androidx.emoji2:emoji2-views:$emojiCompatVersion'
implementation 'androidx.emoji2:emoji2-bundled:$emojiCompatVersion'

用于初始化

的EmojiCompat帮助器类

代码语言:javascript
复制
import android.content.Context
import androidx.emoji2.bundled.BundledEmojiCompatConfig
import androidx.emoji2.text.EmojiCompat
import androidx.emoji2.text.EmojiCompat.LOAD_STRATEGY_MANUAL

object EmojiCompatHandler {

    fun initializeEmojiCompat(appContext: Context) {
        val config = BundledEmojiCompatConfig(appContext)
            .setReplaceAll(true)
            .setMetadataLoadStrategy(LOAD_STRATEGY_MANUAL)
            .registerInitCallback(object : EmojiCompat.InitCallback() {
                override fun onInitialized() {
                    logDebug("EmojiCompat Initialized Successfully")
                }

                override fun onFailed(throwable: Throwable?) {
                    logDebug("EmojiCompat Failed to Load: ${throwable?.message}")
                }
            })

        EmojiCompat.init(config)
    }
}

  1. 尽可能早地初始化EmojiCompat (根据我的观察,可能会相当慢),

通过Application#onCreate()App Startup

(https://developer.android.com/topic/libraries/app-startup)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65716425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档