public final class HealthDeleteRequest

  1. Object
  2. HealthDeleteRequest

Describes what to delete from HealthStore, either by identifier or by type and time range.

You can only delete your own data

Both platforms restrict deletion to samples your app wrote. A request covering another app’s data silently deletes nothing rather than failing, which is a deliberate platform choice: an app must not be able to discover what other apps recorded by watching which deletes succeed.

Methods

public static HealthDeleteRequest byIds(HealthDataType type, List<String> sampleIds)Deletes specific samples of type by their platform identifiers.
public static HealthDeleteRequest byId(HealthDataType type, String sampleId)Deletes one sample of type by its platform identifier.
public static HealthDeleteRequest byRange(HealthDataType type, HealthTimeRange range)Deletes everything of type that this app wrote inside range.
public HealthDeleteRequest addType(HealthDataType type)Adds another type to a range-based request.
public List<String> getSampleIds()The identifiers to delete, empty for a range-based request.
public List<HealthDataType> getTypes()The types to delete, empty for an identifier-based request.
public HealthTimeRange getTimeRange()The span to delete within, null for an identifier-based request.
public boolean isById()true when this request names specific samples rather than a span.
public void validate() throws HealthExceptionValidates the request.

Inherited methods

Method details

byIds

public static HealthDeleteRequest byIds(HealthDataType type, List<String> sampleIds)

Deletes specific samples of type by their platform identifiers.

The type is required, not redundant: Health Connect deletes by record class plus id and cannot resolve an id on its own, so a request without one could only be honoured by guessing. Asking for it here means the caller states what they are deleting rather than the platform silently deleting nothing.

byId

public static HealthDeleteRequest byId(HealthDataType type, String sampleId)
Deletes one sample of type by its platform identifier.

byRange

public static HealthDeleteRequest byRange(HealthDataType type, HealthTimeRange range)
Deletes everything of type that this app wrote inside range.

addType

public HealthDeleteRequest addType(HealthDataType type)
Adds another type to a range-based request.

getSampleIds

public List<String> getSampleIds()
The identifiers to delete, empty for a range-based request.

getTypes

public List<HealthDataType> getTypes()
The types to delete, empty for an identifier-based request.

getTimeRange

public HealthTimeRange getTimeRange()
The span to delete within, null for an identifier-based request.

isById

public boolean isById()
true when this request names specific samples rather than a span.

validate

public void validate() throws HealthException
Validates the request.

Throws

HealthException
HealthError.INVALID_ARGUMENT when the request names neither identifiers nor a type and range, or ambiguously names both.