Обзор Snapshot API

Snapshot API позволяет получать информацию о текущем окружении пользователя. С помощью Snapshot API вы можете получить доступ к различным контекстным сигналам:

  • Обнаруженные действия пользователя, например ходьба или вождение.
  • Зарегистрированные вами маячки поблизости.
  • Подключены ли наушники.
  • Местоположение, включая широту и долготу.

Система кеширует эти значения, чтобы быстро возвращать их. Если данных нет, то для получения актуальных значений состояния выполняется считывание и вывод. Awareness API возвращает существующий тип данных для типов контекста, у которых есть общедоступный API.

Каждому контекстному сигналу соответствует метод Snapshot API. Например, чтобы получить текущую обнаруженную активность, вызовите getDetectedActivity(), используйте SuccessListener, чтобы получить DetectedActivityResponse, а затем вызовите getActivityRecognitionResult(), чтобы вернуть ActivityRecognitionResult, из которого можно получить фактические данные запроса.

В примере ниже показано, как получить данные о последнем обнаруженном действии.

        Awareness.getSnapshotClient(this).getDetectedActivity()
            .addOnSuccessListener(new OnSuccessListener<DetectedActivityResponse>() {
                @Override
                public void onSuccess(DetectedActivityResponse dar) {
                    ActivityRecognitionResult arr = dar.getActivityRecognitionResult();
                }
            })

Подробнее о том, что можно делать с данными запроса, читайте в статье Как получить данные снимка.