Tipi di dati

Google Fit fornisce un insieme di tipi di dati relativi a salute e benessere sotto lo spazio dei nomi com.google.

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

  • Lettura o osservazione istantanea
  • Un aggregato con statistiche in 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 di timestamp. I punti che rappresentano osservazioni istantanee includono un timestamp, mentre i punti di un tipo di dati aggregati includono anche l'ora di inizio dell'intervallo.

Inoltre, Google Fit ti consente di definire nuovi tipi di dati.

Gruppi di tipi di dati

Google Fit offre 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 dati immediati su dati di salute e benessere, tra cui attività fisica, sonno e alimentazione. Qualsiasi app può richiedere le autorizzazioni pertinenti per leggere e scrivere su 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 con accesso limitato a causa di dati potenzialmente sensibili. Per ulteriori informazioni, consulta Tipi di dati sulla salute.
Tipi di dati aggregati
Tipi di dati per leggere informazioni su salute e benessere aggregate in base al tempo o al tipo di attività. Per ulteriori informazioni, consulta la pagina Tipi di dati aggregati.
Tipi di dati personalizzati privati
I 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 ulteriori informazioni, 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. Le modalità di richiamo delle API Fitness con il tipo di dati dipendono dall'obiettivo da raggiungere:

  • Per registrare i dati, utilizza l'API Logging per creare una sottoscrizione per ogni tipo di dati da 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 i metadati della sessione.

Per creare punti dati per un oggetto DataType indeterminato, assegna i valori nel formato corretto. L'esempio seguente mostra come assegnare l'elemento alimentare come stringa, il tipo di pasto come costante della classe Field e i contenuti nutrienti come valori decimali 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 nell'app, puoi inserire, leggere o eliminare dati storici tramite 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; puoi recuperare il nome del tipo di dati e un elenco dei relativi campi quando recuperi un'origine dati dal negozio di fitness.

Ad esempio, una rappresentazione dell'origine dati specifica il tipo di dati nel seguente modo:

{
"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. Aiutano gli utenti a capire a quali tipi di dati vuole accedere un'app. Semplifica inoltre l'autorizzazione delle app a utilizzare questi dati senza dover 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.La schermata per il consenso degli ambiti OAuth.

Dopo aver testato l'app con un numero ridotto di utenti, prima di avviarla devi richiedere la verifica in base agli ambiti pertinenti per tali tipi di dati. Leggi le pagine dei 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 la pressione del sangue in scrittura, deve dichiarare di essere in lettura e scrittura e di richiedere entrambi gli ambiti. Se sta scrivendo solo 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 tutti i tipi di dati nel caso in cui la tua app ne avesse bisogno. I tipi specificati determinano per quali ambiti viene chiesto all'utente di concedere l'autorizzazione. Chiedi i tipi di dati richiesti dalla tua app soltanto per aumentare le probabilità di accesso. Gli utenti autorizzano più facilmente l'accesso ad ambiti limitati e chiaramente descritti.

Utilizza questa tabella per verificare se gli ambiti a cui la tua app deve accedere sono sensibili o con restrizioni (che determina i passaggi di verifica che dovrai seguire):

Ambito Descrizione Categoria
https://www.googleapis.com/auth/fitness.activity.read Leggere i dati sulle attività provenienti dalla piattaforma Google Fit. Con restrizioni
https://www.googleapis.com/auth/fitness.activity.write Scrivere dati sulle 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 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 dati sulla pressione sanguigna nella piattaforma Google Fit. Con restrizioni
https://www.googleapis.com/auth/fitness.body.read Leggere i dati sulla 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 di misurazione del corpo sulla 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 sulla piattaforma Google Fit. Con restrizioni
https://www.googleapis.com/auth/fitness.heart_rate.read Lettura dei dati sul battito cardiaco dalla piattaforma Google Fit. Con restrizioni
https://www.googleapis.com/auth/fitness.heart_rate.write Scrivere dati sulla frequenza cardiaca sulla 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 Leggi i dati sull'alimentazione dalla piattaforma Google Fit. Con restrizioni
https://www.googleapis.com/auth/fitness.nutrition.write Scrivere i dati nutrizionali sulla piattaforma Google Fit. Con restrizioni
https://www.googleapis.com/auth/fitness.oxygen_saturation.read Leggere i dati sulla saturazione dell'ossigeno dalla piattaforma Google Fit. Con restrizioni
https://www.googleapis.com/auth/fitness.oxygen_saturation.write Scrivere dati sulla saturazione di ossigeno sulla piattaforma Google Fit. Con restrizioni
https://www.googleapis.com/auth/fitness.reproductive_health.read Leggere dati sulla salute riproduttiva dalla piattaforma Google Fit. Con restrizioni
https://www.googleapis.com/auth/fitness.reproductive_health.write Scrivere dati sulla salute riproduttiva sulla piattaforma Google Fit. Con restrizioni
https://www.googleapis.com/auth/fitness.sleep.read Leggere i dati sul sonno dalla piattaforma Google Fit. Con restrizioni
https://www.googleapis.com/auth/fitness.sleep.write Scrivere dati sul sonno nella piattaforma Google Fit. Con restrizioni

Aggiunta di nuovi ambiti a un'app esistente

Quando aggiorni l'app per richiedere un nuovo ambito (ad esempio, se aggiungi i nuovi ambiti del sonno o del battito cardiaco o aggiungi un ambito di lettura), agli utenti viene richiesto che la tua app richieda l'accesso a questi ambiti e che possano scegliere di concedere o rifiutare l'accesso.

È buona norma richiedere agli utenti l'autorizzazione per le risorse nel momento in cui ne hai bisogno. Segui le linee guida sulla richiesta di autorizzazione incrementale.

Gli utenti saranno più propensi a concedere l'accesso se capiscono perché/come usa questi dati:

  • Valuta la possibilità di aggiungere una schermata che avvisa/informa gli utenti che verranno loro 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.