gpt4 book ai didi

android - 我如何知道我的应用程序是由 Google Assistant 打开的,而不是正常启动的

转载 作者:行者123 更新时间:2023-12-02 11:05:57 26 4
gpt4 key购买 nike

我如何知道我的应用是由 Google Assistant 打开的,而不是正常启动的。我不需要应用程序操作。我只是想知道,是的,我的应用程序是通过“Ok Google -> 打开应用程序名称”打开的,而不是按图标,或从最近的应用程序中恢复它。 bundle 中是否有我可以检查的 Intent/任何数据?

这是我执行“打开应用程序名称”时的 Intent

Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 pkg=com.xelion.android cmp=com.xelion.android/.activity.InitializationActivity (has extras) }

它还有额外的功能,但不知道是什么:

Bundle[mParcelledData.dataSize=220]

编辑:

我发现这将是使用 Google Assistant 打开的标志:

intent.flags == 0x10000000

但我的问题是,当我从机器构建应用程序或更新它时,这也会运行,知道如何避免这种情况吗?

编辑2:

我也尝试过:

private fun getReferrerCompatible(activity: Activity): Uri? {
val intent = activity.intent
val referrerUri: Uri? = intent.getParcelableExtra(Intent.EXTRA_REFERRER)
if (referrerUri != null) {
return referrerUri
}
val referrer = intent.getStringExtra(REFERRER_NAME)
if (referrer != null) {
// Try parsing the referrer URL; if it's invalid, return null
try {
return Uri.parse(referrer)
} catch (e: ParseException) {
return null
}

}
return null
}

但我仍然得到 NULL 作为引荐来源

我正在尝试:onCreate 中的 intent.extras?.get(KEY_REF_NAME) == REG_G_ASSISTANTgetReferrerCompatible() 。应该晚点吧?就像 onResume 一样?

最佳答案

通过 Google Assistant 打开时,android.intent.extra.REFERRER_NAME 将为 android-app://com.google.android.googlequicksearchbox/https/www.google.com

val KEY_REF_NAME = "android.intent.extra.REFERRER_NAME"
val REG_G_ASSISTANT = "android-app://com.google.android.googlequicksearchbox/https/www.google.com"

if (intent.extras?.get(KEY_REF_NAME) == REG_G_ASSISTANT) {
// APP OPENED THROUGH GOOGLE ASSISTANT
} else {
// APP OPENED THROUGH DEFAULT LAUNCHER
}

关于android - 我如何知道我的应用程序是由 Google Assistant 打开的,而不是正常启动的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58854385/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com