AI-generated Key Takeaways
- 
          
SnapshotClient is the main entry point for the Awareness Snapshot API.
 - 
          
It provides methods to get the current information about nearby beacons, the user's current activity, whether headphones are plugged in, the device's current location, and semantic time intervals.
 - 
          
Some methods require specific permissions declared in AndroidManifest.xml and user consent at runtime.
 - 
          
Beacon snapshots are only available on devices running API level 18 or higher.
 
Main entry point for the Awareness Snapshot API.
See Also
Inherited Field Summary
Public Method Summary
| Task<BeaconStateResponse> | 
                 
                  
                  getBeaconState(Collection<BeaconState.TypeFilter>
                  beaconTypes)
                   
              
                    Gets the current information about nearby beacons.
                   
                 | 
            
| Task<BeaconStateResponse> | |
| Task<DetectedActivityResponse> | 
                 
                  
                  getDetectedActivity()
                   
              
                    Gets the user's current activity (e.g., running, walking, biking, driving,
                    etc.).
                   
                 | 
            
| Task<HeadphoneStateResponse> | 
                 
                  
                  getHeadphoneState()
                   
              
                    Reports whether headphones are plugged into the device.
                   
                 | 
            
| Task<LocationResponse> | 
                 
                  
                  getLocation()
                   
              
                    Gets the device's current location (lat/lng).
                   
                 | 
            
| Task<TimeIntervalsResponse> | 
                 
                  
                  getTimeIntervals()
                   
              
                    Gets the semantic time intervals for the to the current time and location.
                   
                 | 
            
Inherited Method Summary
Public Methods
public Task<BeaconStateResponse> getBeaconState (Collection<BeaconState.TypeFilter> beaconTypes)
Gets the current information about nearby beacons. Note that beacon snapshots are
            only available on devices running API level 18 or higher. If calling from a device
            running API level 17 or earlier, the Task will fail
            and calling 
            getStatusCode() will return status code 
            API_NOT_AVAILABLE.
To use this method, your app must declare the
            android.permission.ACCESS_FINE_LOCATION permission in AndroidManifest.xml,
            and the user must provide consent at runtime.
Parameters
| beaconTypes | The types of beacon attachments to return. See Beacons for details about beacon attachments. | 
|---|
Returns
- a 
TaskwithBeaconStateResponse. UseisSuccessful()to determine success or failure. If successful, usegetBeaconState()to get data on the nearby beacons. 
Throws
| SecurityException | Thrown if a required permission is missing. | 
|---|
public Task<BeaconStateResponse> getBeaconState (TypeFilter... beaconTypes)
Gets the current information about nearby beacons. Note that beacon snapshots are
            only available on API level 18 or higher. If calling from a device prior to API level
            18, the Task will fail
            and calling 
            getStatusCode() will return status code 
            API_NOT_AVAILABLE.
To use this method, your app must declare the
            android.permission.ACCESS_FINE_LOCATION permission in AndroidManifest.xml,
            and the user must provide consent at runtime.
Parameters
| beaconTypes | The types of beacon attachments to return. See Beacons for details about beacon attachments. | 
|---|
Returns
- a 
TaskwithBeaconStateResponse. UseisSuccessful()to determine success or failure. If successful, usegetBeaconState()to get data on the nearby beacons. 
Throws
| SecurityException | Thrown if a required permission is missing. | 
|---|
public Task<DetectedActivityResponse> getDetectedActivity ()
Gets the user's current activity (e.g., running, walking, biking, driving, etc.).
To call this function, a different permission is required depending on your Android API level:
- For Android 10 (API level 29) and later: android.permission.ACTIVITY_RECOGNITION permission
 - For Android 9 (API level 28) and earlier: com.google.android.gms.permission.ACTIVITY_RECOGNITION permission
 
Returns
- a 
TaskwithDetectedActivityResponse. UseisSuccessful()to determine success or failure. If successful, then usegetActivityRecognitionResult()to get the current activity. 
Throws
| SecurityException | Thrown if a required permission is missing. | 
|---|
public Task<HeadphoneStateResponse> getHeadphoneState ()
Reports whether headphones are plugged into the device.
Returns
- a 
TaskwithHeadphoneStateResponse. UseisSuccessful()to determine success or failure. If successful, usegetHeadphoneState()to get the current headphone state. 
public Task<LocationResponse> getLocation ()
Gets the device's current location (lat/lng).
To use this method, your app must declare the
            android.permission.ACCESS_FINE_LOCATION permission in
            AndroidManifest.xml, and the user must provide consent at runtime.
Returns
- a 
TaskwithLocationResponse. UseisSuccessful()to determine success or failure. If successful, then usegetLocation()to get the current device location. 
Throws
| SecurityException | Thrown if a required permission is missing. | 
|---|
public Task<TimeIntervalsResponse> getTimeIntervals ()
Gets the semantic time intervals for the to the current time and location. As
            examples, some attributes are: 
            TIME_INTERVAL_MORNING, 
            TIME_INTERVAL_AFTERNOON, 
            TIME_INTERVAL_EVENING, 
            TIME_INTERVAL_NIGHT, 
            TIME_INTERVAL_WEEKDAY, 
            TIME_INTERVAL_WEEKEND, 
            TIME_INTERVAL_HOLIDAY.
To use this method, your app must declare the
            android.permission.ACCESS_FINE_LOCATION permission in AndroidManifest.xml,
            and the user must provide consent at runtime.
Returns
- a 
TaskwithTimeIntervalsResponse. UseisSuccessful()to determine success or failure. If successful, then usegetTimeIntervals()to get the attributes of the current day and time. 
Throws
| SecurityException | Thrown if a required permission is missing. | 
|---|