Tipi di dati

Google Fit fornisce un set di tipi di dati su salute e benessere all'interno dello spazio dei nomi com.google.

I tipi di dati definiscono il formato dei valori all'interno dei punti dati. Un punto dati può rappresentare:

  • Una lettura o osservazione istantanea
  • Un aggregato con statistiche su un intervallo di tempo

Google Fit definisce i tipi di dati per le osservazioni istantanee e i tipi di dati per i dati aggregati. I punti dati sono costituiti da valori per i campi di un tipo di dati e informazioni timestamp. I punti che rappresentano le osservazioni istantanee includono un timestamp e i punti di un tipo di dati aggregato includono anche l'ora di inizio dell'intervallo.

In Google Fit puoi anche definire nuovi tipi di dati.

Gruppi di tipi di dati

Google Fit ha i seguenti tipi di dati:

Tipi di dati pubblici
I tipi di dati standard forniti dalla piattaforma hanno il prefisso "com.google". Ad esempio, com.google.step_count.delta. Questi tipi di dati acquisiscono letture istantanee per i dati su salute e benessere, tra cui attività fisica, sonno e alimentazione. Qualsiasi app può richiedere le autorizzazioni pertinenti per leggere e scrivere in questi tipi di dati, ad eccezione di alcuni tipi di dati sulla posizione che possono essere letti solo dall'app che li ha scritti.

Per ulteriori informazioni, vedi:

Tipi di dati sanitari
Tipi di dati forniti dalla piattaforma che hanno accesso limitato a causa di dati potenzialmente sensibili. Per maggiori informazioni, consulta Tipi di dati sulla salute.
Tipi di dati aggregati
Tipi di dati per leggere le informazioni su salute e benessere aggregati per periodo di tempo o tipo di attività. Per maggiori informazioni, consulta Tipi di dati aggregati.
Tipi di dati personalizzati privati
Tipi di dati personalizzati definiti da un'app specifica. Solo l'app che definisce il tipo di dati può leggere e scrivere dati di questo tipo. Per scoprire di più, consulta Tipi di dati personalizzati.

Utilizzo dei tipi di dati

Android

Su Android, i tipi di dati sono definiti come campi pubblici della classe DataType. Il modo in cui richiami le API Fitness con il tipo di dati dipende da ciò che vuoi ottenere:

  • Per registrare i dati, utilizza l'API Recording per creare una sottoscrizione per ogni tipo di dati che vuoi registrare.
  • Per leggere i dati, utilizza l'API History per inviare una richiesta di lettura per ogni tipo di dati.
  • Per inserire dati storici del passato, utilizza l'API History per inviare una richiesta di inserimento per ogni tipo di dati.
  • Per creare sessioni, utilizza l'API Sessions per inserire o registrare dati con metadati di sessione.

Per creare punti dati per un oggetto DataType istantaneo, assegna i valori con il formato corretto. L'esempio seguente mostra come assegnare l'alimento come stringa, il tipo di pasto come costante della classe Field e i contenuti nutrizionali come valori mobili mappati.

val nutritionSource = DataSource.Builder()
    .setDataType(DataType.TYPE_NUTRITION)
    ...
    .build()

val nutrients = mapOf(
    Field.NUTRIENT_TOTAL_FAT to 0.4f,
    Field.NUTRIENT_SODIUM to 1f,
    Field.NUTRIENT_POTASSIUM to 422f
)
val banana = DataPoint.builder(nutritionSource)
    .setTimestamp(now, TimeUnit.MILLISECONDS)
    .setField(Field.FIELD_FOOD_ITEM, "banana")
    .setField(Field.FIELD_MEAL_TYPE, Field.MEAL_TYPE_SNACK)
    .setField(Field.FIELD_NUTRIENTS, nutrients)
    .build()

Dopo aver impostato i punti dati nella tua app, puoi inserire, leggere o eliminare i dati storici con l'API History.

REST

La risorsa dataSources include il tipo di dati (e un elenco dei relativi campi) per ogni origine dati. Puoi specificare uno di questi tipi di dati quando crei origini dati e puoi ottenere il nome del tipo di dati e un elenco dei relativi campi quando recuperi un'origine dati dall'archivio di fitness.

Ad esempio, una rappresentazione di un'origine dati specifica il tipo di dati come segue:

{
"dataStreamId": "exampleDataSourceId",
...
"dataType": {
  "name": "com.google.step_count.delta"
},
...
}

Ambiti di autorizzazione

Gli ambiti di autorizzazione coprono i gruppi di tipi di dati a cui un utente può autorizzare un'app ad accedere. Aiutano gli utenti a capire a quali tipi di dati vuole accedere un'app. Inoltre, semplificano l'autorizzazione delle app a utilizzare i dati perché non occorre approvare ogni singolo tipo di dati. Gli utenti concedono queste autorizzazioni dopo aver scaricato la tua app.

Esempio della schermata per il consenso degli ambiti OAuth
Figura 2.Schermata per il consenso degli ambiti OAuth.

Dopo aver testato la tua app con un numero limitato di utenti, prima di lanciarla devi richiedere la verifica in base agli ambiti pertinenti a questi tipi di dati. Leggi le pagine sui tipi di dati indicate sopra per capire quali ambiti si applicano a ciascun tipo di dati.

Ad esempio, se l'app deve leggere e scrivere scrivendo la pressione sanguigna, deve dichiarare che sta eseguendo sia la lettura che la scrittura e richiedere entrambi gli ambiti. Se sta solo scrivendo i dati sulla pressione sanguigna nella piattaforma Google Fit, deve solo richiedere l'ambito di scrittura.

Scegli i tipi di dati in modo responsabile. Non richiedere ogni tipo di dati nel caso in cui la tua app ne abbia bisogno. I tipi specificati determinano gli ambiti per i quali l'utente deve concedere l'autorizzazione. Chiedi solo i tipi di dati necessari per la tua app in modo che sia più probabile che gli utenti concedano l'accesso. Gli utenti concedono più facilmente l'accesso ad ambiti limitati e chiaramente descritti.

Utilizza questa tabella per controllare se gli ambiti a cui l'app richiede l'accesso sono sensibili o limitati (che determina i passaggi di verifica che dovrai seguire):

Ambito Descrizione Categoria
https://www.googleapis.com/auth/fitness.activity.read Leggere i dati relativi alle attività dalla piattaforma Google Fit. Con restrizioni
https://www.googleapis.com/auth/fitness.activity.write Scrivere i dati relativi alle attività nella piattaforma Google Fit Con restrizioni
https://www.googleapis.com/auth/fitness.blood_glucose.read Leggere i dati sulla glicemia dalla piattaforma Google Fit. Con restrizioni
https://www.googleapis.com/auth/fitness.blood_glucose.write Scrivere i dati sulla glicemia nella piattaforma Google Fit. Con restrizioni
https://www.googleapis.com/auth/fitness.blood_pressure.read Leggere i dati sulla pressione sanguigna dalla piattaforma Google Fit. Con restrizioni
https://www.googleapis.com/auth/fitness.blood_pressure.write Scrivere i dati sulla pressione sanguigna nella piattaforma Google Fit. Con restrizioni
https://www.googleapis.com/auth/fitness.body.read Leggere i dati di misurazione del corpo (altezza, peso, percentuale di grasso corporeo) dalla piattaforma Google Fit. Con restrizioni
https://www.googleapis.com/auth/fitness.body.write Scrivere i dati delle misurazioni del corpo nella piattaforma Google Fit. Con restrizioni
https://www.googleapis.com/auth/fitness.body_temperature.read Leggere i dati sulla temperatura corporea dalla piattaforma Google Fit. Con restrizioni
https://www.googleapis.com/auth/fitness.body_temperature.write Scrivere i dati sulla temperatura corporea nella piattaforma Google Fit. Con restrizioni
https://www.googleapis.com/auth/fitness.heart_rate.read Leggere i dati sulla frequenza cardiaca dalla piattaforma Google Fit. Con restrizioni
https://www.googleapis.com/auth/fitness.heart_rate.write Scrivere dati sulla frequenza cardiaca nella piattaforma Google Fit. Con restrizioni
https://www.googleapis.com/auth/fitness.location.read Leggere i dati sulla posizione dalla piattaforma Google Fit. Con restrizioni
https://www.googleapis.com/auth/fitness.location.write Scrivere i dati sulla posizione nella piattaforma Google Fit. Con restrizioni
https://www.googleapis.com/auth/fitness.nutrition.read Leggere i dati relativi all'alimentazione dalla piattaforma Google Fit. Con restrizioni
https://www.googleapis.com/auth/fitness.nutrition.write Scrivere i dati relativi all'alimentazione nella piattaforma Google Fit. Con restrizioni
https://www.googleapis.com/auth/fitness.oxygen_saturation.read Leggere i dati sulla saturazione di ossigeno dalla piattaforma Google Fit. Con restrizioni
https://www.googleapis.com/auth/fitness.oxygen_saturation.write Scrivere i dati sulla saturazione di ossigeno nella piattaforma Google Fit. Con restrizioni
https://www.googleapis.com/auth/fitness.reproductive_health.read Leggere i dati sulla salute riproduttiva dalla piattaforma Google Fit. Con restrizioni
https://www.googleapis.com/auth/fitness.reproductive_health.write Scrivere dati sulla salute riproduttiva nella piattaforma Google Fit. Con restrizioni
https://www.googleapis.com/auth/fitness.sleep.read Leggere i dati relativi al sonno dalla piattaforma Google Fit. Con restrizioni
https://www.googleapis.com/auth/fitness.sleep.write Scrivere i dati relativi al sonno nella piattaforma Google Fit. Con restrizioni

Aggiunta di nuovi ambiti a un'app esistente

Quando aggiorni la tua app per richiedere un nuovo ambito (ad esempio, se aggiungi i nuovi ambiti relativi al sonno o alla frequenza cardiaca oppure aggiungi un ambito di lettura), agli utenti verrà chiesto che la tua app richiede l'accesso a questi ambiti e possono scegliere di concedere o rifiutare l'accesso.

È consigliabile richiedere l'autorizzazione degli utenti per le risorse nel momento in cui ne hai bisogno. Segui le linee guida per la richiesta di autorizzazione incrementale.

Gli utenti saranno più propensi a concedere l'accesso se capiscono perché o come la tua app utilizza questi dati:

  • Valuta la possibilità di aggiungere una schermata che avvisa/informa gli utenti che verranno richiesti questi ambiti.
  • Spiega chiaramente perché la tua app richiede l'accesso a questi ambiti/dati, in modo che gli utenti possano prendere una decisione consapevole.

Scopri di più sulle best practice relative alle autorizzazioni app per Android.