如何自动安装 WearOS 配套应用程序和 Android 手机应用程序

Posted

技术标签:

【中文标题】如何自动安装 WearOS 配套应用程序和 Android 手机应用程序【英文标题】:How to install WearOS companion app along with the Android phone app automatically 【发布时间】:2021-01-05 01:18:30 【问题描述】:

我已使用 Google Play Console Multi-APK delivery method 将我的 android 和 WearOS 应用作为单独的 APK 发布。

从相应设备浏览时可以发现这两个应用程序 - 手机上的 Android 应用程序和手表上的 WearOS 应用程序。此外,当手机应用安装在 Android 设备上时,我可以在我的 WearOS 设备上看到我可以在 Play 商店应用的“手机上的应用”屏幕上安装配套应用。

Google 的官方 WearOS documentation 声明如下:

在运行 Wear 2.0 的设备上,当用户安装具有 关联的手表应用(嵌入式 APK 或通过 Play 管理中心),用户会收到有关 可用的手表应用程序。点击通知会打开手表播放 商店,让用户可以选择安装手表应用。

但是,在手机上安装 Android 应用后,什么也没有发生。此外,用户不知道该应用程序有 WearOS 配套应用程序,因为它在手机 Play 商店应用程序或网站上不可见。手表也是如此——当用户从他们的 WearOS 设备上发现我的应用并安装它时,手机对应的应用没有安装,也没有通知用户。

WearOS 应用程序不是独立的,因此它需要手机应用程序才能运行。它具有相同的包名称并使用相同的密钥进行签名。手表和手机上的 WearOS 应用程序都允许所有通知。

那么,有没有办法自动安装 WearOS 应用程序,或者至少让用户知道他们可以安装它?谢谢!

【问题讨论】:

【参考方案1】:

自 Wear OS 2.0 以来,无法完全自动化此操作。 Google 全力支持“独立”Wear 应用的理念,而让我们开发集成应用的开发人员大都被冷落了。

据我所知,自 Wear 2.0 以来安装这两个应用程序的唯一方法是如下流程:

    当用户运行您的手机应用时,使用 Capability API 检查您的应用是否安装在配对的手表上。 如果未安装,请向用户显示适当的 UI,告诉他们问题所在。 然后在该 UI 中,使用 RemoteIntent.startRemoteActivity() 为他们提供一个操作,以打开手表上的 Play 商店并访问您的应用列表。

您需要在手表应用中执行类似的操作,以防用户先安装并运行它。

此过程记录在此处(带有一些代码示例):https://developer.android.com/training/wearables/apps/standalone-apps#detecting-your-app

【讨论】:

谢谢。这个自定义解决方案就是我要实现的。我只是想知道为什么谷歌把它放在“独立穿戴应用程序”部分,而它主要适用于非独立应用程序,因为它们需要对应的应用程序才能工作。 我同意,把它放在那个页面上很难找到!如果我的回答对你有帮助,你介意接受吗? 我仍然有这个问题,可能会在上面发布另一个帖子。内部测试对我来说似乎也使事情复杂化了。目前,我在调用 RemoteIntent 后遇到了 FATAL EXCEPTION - NullPointerException。

以上是关于如何自动安装 WearOS 配套应用程序和 Android 手机应用程序的主要内容,如果未能解决你的问题,请参考以下文章

Wear OS 上 Firebase 授权的最佳实践

WearOS 应用程序不接收来自安卓手机的数据

WearOS 始终开启模式无法在设备上运行

WearOS 上的常屏设置

标准和自定义 GATT 特性

使用 Compose 构建 Wear OS 应用