Snapshot API overview

You can use the Snapshot API to get information about the user's current environment. With the Snapshot API, you can access a variety of context signals:

  • Detected user activity, such as walking or driving.
  • Nearby beacons that you've registered.
  • Headphone state (plugged in or not).
  • Location, including latitude and longitude.
  • Place where the user is currently located.
  • Weather conditions in the user's current location.

The system caches these values so that they can be returned quickly. If there is no data, sensing and inference are performed to return fresh state values. The Awareness API returns the existing data type for context types that have a public API. For example, the call to SnapshotApi.getPlaces() returns a list of PlaceLikelihood instances, from which you can get data about the places near the user's current location.

Each context signal has a corresponding Snapshot API method. For example, to get the current detected activity, you would call getDetectedActivity(), use a SuccessListener to get a DetectedActivityResponse, then call getActivityRecognitionResult() to return an ActivityRecognitionResult from which you can get the actual request data. The following example shows how to get the latest detected activity:

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

For more information about what you can do with the request data, review Get Snapshot data.