如何在不与谷歌云共享数据的情况下将数据从智能手表同步到智能手机



尊敬的安卓社区,

我目前正在开发一个Android应用程序,我想在那里与智能手机实时共享智能手表的一些传感器数据。Github上有几个这样的项目。这些项目仅使用DataClient来同步数据。我对安卓开发者文档的调查导致了一些关于安卓何时与谷歌云共享数据的困惑。据我所知,数据似乎是由安卓系统通过所谓的云节点同步的。由于这些信息对我的用户很敏感,我不想与谷歌云共享任何数据。因此,如果有人能支持我回答以下问题,我会很高兴:

  • 有没有一种方法可以在不启用云节点的情况下使用DataClient的方便同步方法
  • 当我使用ChannelClient或MessageClient时,数据是否与谷歌共享

提前感谢您,Egregos

好问题。

简短的答案是:你不能确定你通过Wear API传输的任何数据都不会进入谷歌云。通信由谷歌播放服务(又称GMS(处理,这是不透明的。我们无法知道,通过GMS发送的任何数据都只会进入手机,而不会进入云端。

较长的答案是可能。DataClient API将您的数据的副本存储在GMS中,并(如您所说(将其与;"云节点";,所以这可能不是正确的方向。但没有证据表明MessageClient API会在消息传递后保留消息。因此:使用NodeClientAPI,您可以确定手机的Node.isNearby()是真的;我的经验是,这相当于手机和手表之间的蓝牙连接。然后,您可以通过MessageClient API发送数据,数据可能会通过蓝牙发送到手机,而不会在GMS中停留足够长的时间来访问谷歌云。

如果您需要比这更有力的保证,那么您可能无法将Wear API按原样用于数据传输。我想到的其他几个选择:

  • 滚动您自己的数据传输,可能基于原始蓝牙API。这当然是可能的(我已经做到了(,但工作量很大
  • 在将数据传递给GMS之前对其进行加密,然后在手机应用程序中对其进行解密。这似乎比建立自己的通信层更容易,但加密并不是我的职责所在,所以我对此没有太多建议

最新更新