您可以使用 Snapshot API 获取有关用户当前环境的信息。借助 Snapshot API,您可以访问各种情境信号:
- 检测到的用户活动,例如用户何时走路或开车。
- 您已注册的附近信标。
- 耳机状态,已插入或未插入。
- 位置信息,包括纬度和经度。
系统会缓存这些值,以便快速返回它们。如果没有数据,系统会执行感测和推理,以返回最新的状态值。 对于具有公共 API 的情境类型,Awareness API 会返回现有的数据类型。
每个情境信号都有一个对应的 Snapshot API 方法。例如,如需获取当前检测到的 activity,您可以调用 getDetectedActivity()
,使用 SuccessListener
获取 DetectedActivityResponse
,然后调用 getActivityRecognitionResult()
以返回 ActivityRecognitionResult
,从中可以获取实际的请求数据。
以下示例展示了如何获取最新检测到的 activity:
Awareness.getSnapshotClient(this).getDetectedActivity()
.addOnSuccessListener(new OnSuccessListener<DetectedActivityResponse>() {
@Override
public void onSuccess(DetectedActivityResponse dar) {
ActivityRecognitionResult arr = dar.getActivityRecognitionResult();
}
})
如需详细了解如何使用请求数据,请参阅获取快照数据。