PassiveMonitoringClientExtensionKt

Added in 1.0.0

public final class PassiveMonitoringClientExtensionKt


Summary

Public methods

static final @NonNull Void

Unregisters the subscription made by PassiveMonitoringClient.setPassiveListenerCallback.

static final @NonNull Void

Unregisters the subscription made by setPassiveListenerService.

static final @NonNull Void

Flushes the sensors for the registered DataTypes.

static final @NonNull PassiveMonitoringCapabilities

Returns the PassiveMonitoringCapabilities of this client for this device.

static final @NonNull Void

Subscribes for updates to be periodically delivered to the app.

Public methods

clearPassiveListenerCallback

public static final @NonNull Void clearPassiveListenerCallback(@NonNull PassiveMonitoringClient receiver)

Unregisters the subscription made by PassiveMonitoringClient.setPassiveListenerCallback.

Data will not be delivered after this call so if clients care about any pending batched data they should call flush before unregistering.

Throws
androidx.health.services.client.HealthServicesException

if Health Service fails to process the call

clearPassiveListenerService

public static final @NonNull Void clearPassiveListenerService(@NonNull PassiveMonitoringClient receiver)

Unregisters the subscription made by setPassiveListenerService.

Data will not be delivered after this call so if clients care about any pending batched data they should call flush before unregistering.

Throws
androidx.health.services.client.HealthServicesException

if Health Service fails to process the call

public static final @NonNull Void flush(@NonNull PassiveMonitoringClient receiver)

Flushes the sensors for the registered DataTypes.

If no listener has been registered by this client, this will be a no-op. This call should be used sparingly and will be subject to throttling by Health Services.

Throws
androidx.health.services.client.HealthServicesException

if Health Service fails to process the call

public static final @NonNull PassiveMonitoringCapabilities getCapabilities(@NonNull PassiveMonitoringClient receiver)

Returns the PassiveMonitoringCapabilities of this client for this device.

This can be used to determine what DataTypes this device supports for passive monitoring and goals. Clients should use the capabilities to inform their requests since Health Services will typically reject requests made for DataTypes which are not supported.

Throws
androidx.health.services.client.HealthServicesException

if Health Service fails to process the call

setPassiveListenerService

public static final @NonNull Void setPassiveListenerService(
    @NonNull PassiveMonitoringClient receiver,
    @NonNull Class<@NonNull PassiveListenerService> service,
    @NonNull PassiveListenerConfig config
)

Subscribes for updates to be periodically delivered to the app.

Data updates will be batched and delivered from the point of initial registration and will continue to be delivered until the DataType is unregistered, either by explicitly calling clearPassiveListenerService or by registering again without that DataType included in the request. Higher frequency updates are available through ExerciseClient or MeasureClient. Any requested goal, user activity, or health event updates will not be batched.

Health Services will automatically bind to the provided PassiveListenerService to send the update. Clients are responsible for defining the service in their app manifest. They should also require the com.google.android.wearable.healthservices.permission.PASSIVE_DATA_BINDING permission in their app manifest service definition in order to ensure that Health Services is the source of the binding.

This registration is unique per subscribing app. Subsequent registrations will replace the previous registration, if one had been made. The client is responsible for ensuring that their requested PassiveListenerConfig is supported on this device by checking the PassiveMonitoringCapabilities. The returned future will fail if the request is not supported on the current device or the client does not have the required permissions for the request.

Parameters
@NonNull Class<@NonNull PassiveListenerService> service

the PassiveListenerService to bind to

@NonNull PassiveListenerConfig config

the PassiveListenerConfig from the client

Throws
androidx.health.services.client.HealthServicesException

if Health Service fails to process the call

java.lang.SecurityException

if calling app does not have the required permissions