Как синхронизировать c данные со смарт-часов на смартфон без обмена данными с Google Cloud? - PullRequest
0 голосов
/ 05 августа 2020

Уважаемое Android сообщество,

В настоящее время я работаю над приложением Android, в котором я хотел бы поделиться некоторыми данными датчиков SmartWatch в режиме реального времени со смартфоном. На Github доступна пара таких проектов. Эти проекты используют исключительно DataClient для синхронизации c данных. Мое исследование Android документации для разработчиков привело к некоторой путанице относительно того, когда Android делится данными с облаком Google. Насколько я понимаю из документации , данные, похоже, синхронизируются Android с так называемым облачным узлом. Поскольку информация является конфиденциальной для моих пользователей, я не хотел бы передавать какие-либо данные в облако Google. Поэтому я был бы рад, если бы кто-нибудь поддержал меня, ответив на некоторые из следующих вопросов:

  • Есть ли способ использовать удобный метод syn c DataClient без включения облачного узла?
  • Передаются ли данные в Google, когда я использую вместо этого ChannelClient или MessageClient?

Заранее спасибо, Egregos

1 Ответ

0 голосов
/ 06 августа 2020

Отличный вопрос.

Короткий ответ: нет : вы не можете быть уверены, что какие-либо данные, передаваемые через API Wear, не попадут в облако Google. Связь осуществляется через сервисы Google Play (также известные как GMS), которые непрозрачны. У нас нет возможности узнать, что любые данные, отправленные через GMS, поступают только на телефон, а не в облако.

Более длинный ответ: возможно . DataClient API хранит копию ваших данных в GMS и (как вы говорите) синхронизирует ее с «облачным узлом», так что, вероятно, это неправильное направление к go. Но нет никаких доказательств того, что API MessageClient сохраняет сообщения после их доставки. Итак: используя NodeClient API, вы можете sh установить, что Node.isNearby() телефона истинно; мой опыт показывает, что это приравнивается к Bluetooth-соединению между телефоном и часами. Затем вы можете отправить свои данные через API MessageClient, и они , вероятно, будут доставлены через Bluetooth на телефон, не оставаясь в GMS достаточно долго, чтобы попасть в облако Google.

Если вам нужно Более сильная гарантия, чем это, то вы, вероятно, не сможете использовать API Wear как есть для передачи данных. Еще пара вариантов, которые мне приходят в голову:

  • Выполните собственную передачу данных, вероятно, на основе необработанных API Bluetooth. Это, безусловно, возможно (я сделал это), но это значительный объем работы.
  • Зашифруйте данные перед их передачей в GMS, а затем расшифруйте их в приложении для телефона. Это кажется проще, чем создание собственного уровня связи, но шифрование на самом деле не в моей рулевой рубке, поэтому я не могу дать дополнительных советов по этому поводу.
...