Вы можете использовать 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();
}
})
Подробнее о том, что можно делать с данными запроса, читайте в разделе Получение данных снимка.