Snapshot API 概览
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
您可以使用 Snapshot API 获取有关用户当前环境的信息。借助 Snapshot API,您可以访问各种情境信号:
- 检测到的用户活动,例如用户步行或驾车时。
- 您已注册的附近信标。
- 耳机状态,即是否已插入。
- 位置信息,包括纬度和经度。
系统会缓存这些值,以便快速返回。如果没有数据,系统会执行感知和推理,以返回新的状态值。Awareness API 会针对具有公开 API 的情境类型返回现有数据类型。
每个情境信号都有对应的 Snapshot API 方法。例如,如需获取当前检测到的 activity,您可以调用 getDetectedActivity()
,使用 SuccessListener
获取 DetectedActivityResponse
,然后调用 getActivityRecognitionResult()
以返回 ActivityRecognitionResult
,从中获取实际请求数据。
以下示例展示了如何获取最新检测到的活动:
Awareness.getSnapshotClient(this).getDetectedActivity()
.addOnSuccessListener(new OnSuccessListener<DetectedActivityResponse>() {
@Override
public void onSuccess(DetectedActivityResponse dar) {
ActivityRecognitionResult arr = dar.getActivityRecognitionResult();
}
})
如需详细了解如何使用请求数据,请参阅获取快照数据。
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2025-08-31。
[null,null,["最后更新时间 (UTC):2025-08-31。"],[[["\u003cp\u003eThe Places and Weather contextual signals within the Awareness API are deprecated and have been turned off, with existing implementations restricted until specified dates.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers should utilize the Places SDK for Android instead of the Places contextual signal for new implementations.\u003c/p\u003e\n"],["\u003cp\u003eGoogle does not offer alternative functionality for the Weather contextual signal, impacting existing implementations relying on it.\u003c/p\u003e\n"],["\u003cp\u003eThe Awareness API continues to provide other contextual signals through the Snapshot API, including user activity, nearby beacons, headphone state, and location.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can access these signals using corresponding Snapshot API methods and retrieve relevant data for their applications.\u003c/p\u003e\n"]]],[],null,["# Snapshot API overview\n\n**Deprecation notice: Places and Weather contextual signals** **Warning:**\n| The Places and Weather contextual signals, exposed by the\n| [`getPlaces()`](/android/reference/com/google/android/gms/awareness/SnapshotClient#getPlaces()), and\n| [`getWeather()`](/android/reference/com/google/android/gms/awareness/SnapshotClient#getWeather())\n| methods, were deprecated.\n|\n| - The Places contextual signal was turned off. Continued use of this signal was restricted to customers with existing implementations, through October 30, 2019. New implementations must use the [Places SDK for Android](/places/android-sdk) instead of the Places contextual signal.\n| - The Weather contextual signal has also been turned off. Continued use of this signal has been restricted to customers with existing implementations, through January 31, 2020. Google doesn't offer alternative functionality for the Weather contextual signal.\n\nYou can use the [Snapshot API](/android/reference/com/google/android/gms/awareness/Awareness#getSnapshotClient(android.app.Activity))\nto get information about the user's current environment. With the Snapshot API,\nyou can access a variety of [context signals](/awareness/overview#context-types):\n\n- Detected user activity, such as when they walk or drive.\n- Nearby beacons that you've registered.\n- Headphone state, plugged in or not.\n- Location, which includes latitude and longitude.\n\nThe system caches these values so that they can be returned quickly. If there's\nno data, sensing and inference are performed to return fresh state values.\nThe Awareness API returns the existing data type for context types that have a\npublic API.\n\nEach context signal has a corresponding Snapshot API method. For example, to\nget the current detected activity, you call\n[`getDetectedActivity()`](/android/reference/com/google/android/gms/awareness/SnapshotClient#getDetectedActivity()),\nuse a `SuccessListener` to get a [`DetectedActivityResponse`](/android/reference/com/google/android/gms/awareness/snapshot/DetectedActivityResponse),\nthen call [`getActivityRecognitionResult()`](/android/reference/com/google/android/gms/awareness/snapshot/DetectedActivityResponse#getActivityRecognitionResult())\nto return an [`ActivityRecognitionResult`](/android/reference/com/google/android/gms/location/ActivityRecognitionResult)\nfrom which you can get the actual request data.\n\nThe following example shows how to get the latest detected activity: \n\n Awareness.getSnapshotClient(this).getDetectedActivity()\n .addOnSuccessListener(new OnSuccessListener\u003cDetectedActivityResponse\u003e() {\n @Override\n public void onSuccess(DetectedActivityResponse dar) {\n ActivityRecognitionResult arr = dar.getActivityRecognitionResult();\n }\n })\n\nFor more information about what you can do with the request data, see\n[Get Snapshot data](/awareness/android-api/snapshot-get-data)."]]