检测穿戴应用程序是通过语音命令还是触摸输入启动

2024-03-31

在我的穿戴应用程序中,我想根据应用程序是通过语音命令还是通过触摸输入启动来显示不同的布局选项。但我在文档中找不到任何方法来做到这一点。

我能想到的唯一可能的方法是有两个发射器。但我正在寻找相当直接的解决方案,而不是创建多个启动器。


检查了一下活动日志后,我发现了这一点:

当您单击 Android Wear 中的应用程序时,会记录以下内容:

I/ActivityManager(446): 在显示器 0 上从 uid 10002 开始 u0 {act=android.intent.action.MAIN flg=0x10000000 cmp=com.lge.wearable.compass/.MainActivity}

当您使用语音命令启动应用程序时,会记录以下内容:

I/ActivityManager(446): 启动 u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10008000 pkg=com.lge.wearable.compass cmp=com.lge.wearable。显示器 0 上来自 uid 10002 的 compass/.MainActivity}

区别在于cat or category参数其中包括android.intent.category.LAUNCHER作为一个值。

下面的代码在onCreate函数将区分应用程序是通过语音启动还是通过用户点击启动。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    ....

    Set<String> categories = getIntent().getCategories();
    if(categories != null && categories.contains(Intent.CATEGORY_LAUNCHER)) {
        Log.i(LOGTAG, "app started via voice");
    }else{
        Log.i(LOGTAG, "app started with user tap");
    }

    ....
}

目前这适用于我的应用程序场景,并希望它也适用于其他应用程序场景。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

检测穿戴应用程序是通过语音命令还是触摸输入启动 的相关文章

随机推荐