Обзор 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();
                }
            })

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