1

我有几个相同的应用程序,只是它们显示的数据和包名称有所不同。我决定尝试一下 Android Wear,我的主要目标是开发一个 Android Wear 应用程序来显示我的每个手机应用程序的数据(可能有一个 2d 滑块,每个应用程序一行)。

想象一下我有 2 个应用程序:

  • 免费的“com.company.appfree”

  • 临“com.company.apppro”

还有穿戴应用

  • “com.company.appwear”

事实证明,我无法在 Wear 应用程序上获取手机应用程序发送的数据项或消息,除非它的包与手机应用程序包之一(“com.company.appfree”或“com.company.apppro” )

我希望有人告诉我是否有一种方法可以实现这种通信,而无需应用程序具有相同的包。我真的需要一个单一的穿戴应用程序,而不是多个。

谢谢您的帮助!

4

2 回答 2

1

包名称必须匹配可穿戴应用程序和手机应用程序才能使用DataApi。在您的设置中,您将无法进行通信。

但是,这并不意味着您根本无法实现您想要的。您可以通过以下方式设置您的应用程序:

com.company.appfree在通电话

com.company.appfree在可穿戴设备上

com.company.apppro在通电话

现在,添加一个通信通道:

com.company.appfree (phone)< DataApi-->com.company.appfree (wearable)

然后,仅在手机上,添加一个ContentProvidercom.company.appfree使用权限保护它(制作权限保护级别签名,更多信息请参见:http: //developer.android.com/guide/topics/manifest/permission-element。 html ). 现在您有以下沟通渠道:

com.company.apppro (phone)<- ContentProvider-> com.company.appfree (phone)<- DataApi->com.company.appfree (wearable)

于 2015-01-24T18:36:25.167 回答
0

据我所知,没有办法将数据发送到具有不同包的应用程序。此外,只有当包含的应用程序具有相同的包时,您的应用程序才会安装到可穿戴设备上,因此在您的情况下,只有一个应用程序能够包含通用的可穿戴部分。

我认为使两个应用程序与单个手表应用程序通信的唯一方法是将手表应用程序和相应的手持部分实现为单独的应用程序(此应用程序和手表应用程序将共享包名,并且能够与彼此)。您手机上的其他应用程序可以与此应用程序通信以将数据发送到手表。这种通信可以通过广播或服务绑定来实现。因此,您将具有以下结构:

  1. com.company.wearservice和对应的手表应用同包。
  2. com.company.app1并将com.company.app2数据发送到com.company.wearservice,后者将它们发送到可穿戴部分。
于 2015-01-24T16:24:28.597 回答