Jenis data

Google Fit menyediakan sekumpulan jenis data kesehatan dan kebugaran dalam namespace com.google.

Jenis data menentukan format nilai dalam titik data. Titik data dapat mewakili:

  • Bacaan atau pengamatan instan
  • Gabungan dengan statistik selama interval waktu

Google Fit menentukan jenis data untuk pengamatan instan dan jenis data untuk data agregat. Titik data terdiri dari nilai untuk kolom jenis data dan informasi stempel waktu. Titik-titik yang mewakili pengamatan instan mencakup stempel waktu, dan titik-titik jenis data gabungan juga mencakup waktu mulai untuk interval tersebut.

Google Fit juga memungkinkan Anda menentukan jenis data baru.

Grup jenis data

Google Fit memiliki jenis data berikut:

Jenis data publik
Jenis data standar yang disediakan oleh platform memiliki awalan 'com.google' Misalnya, com.google.step_count.delta. Jenis data ini menangkap pembacaan instan untuk data kesehatan dan kebugaran, termasuk aktivitas kebugaran, tidur, dan nutrisi. Semua aplikasi dapat meminta izin yang relevan untuk membaca dan menulis ke jenis data ini, kecuali untuk beberapa jenis data lokasi yang hanya dapat dibaca oleh aplikasi yang menulisnya.

Untuk informasi selengkapnya, lihat:

Jenis data kesehatan
Jenis data yang disediakan oleh platform yang memiliki akses terbatas karena data yang berpotensi sensitif. Untuk informasi selengkapnya, lihat Jenis data kesehatan.
Jenis data gabungan
Jenis data untuk membaca informasi kesehatan dan kebugaran yang digabungkan menurut waktu atau jenis aktivitas. Untuk mengetahui informasi selengkapnya, lihat Jenis data gabungan.
Jenis data kustom pribadi
Jenis data kustom yang ditentukan oleh aplikasi tertentu. Hanya aplikasi yang menentukan jenis data yang dapat membaca dan menulis data dari jenis ini. Untuk informasi selengkapnya, lihat Jenis data kustom.

Menggunakan jenis data

Android

Di Android, jenis data ditentukan sebagai kolom publik class DataType. Cara memanggil Fitness API dengan jenis data bergantung pada apa yang ingin Anda capai:

  • Untuk merekam data, gunakan Recording API untuk membuat langganan bagi setiap jenis data yang ingin Anda rekam.
  • Untuk membaca data, gunakan History API untuk mengirimkan permintaan baca untuk setiap jenis data.
  • Untuk menyisipkan data historis dari masa lalu, gunakan History API untuk mengirimkan permintaan penyisipan untuk setiap jenis data.
  • Untuk membuat sesi, gunakan Sessions API untuk menyisipkan atau merekam data dengan metadata sesi.

Untuk membuat titik data untuk objek DataType instan, tetapkan nilai dengan format yang benar. Contoh berikut menunjukkan cara menetapkan item makanan sebagai string, jenis makanan sebagai konstanta dari class Field, dan konten gizi sebagai nilai float yang dipetakan.

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()

Setelah menetapkan titik data di aplikasi, Anda dapat menyisipkan, membaca, atau menghapus data historis dengan History API.

REST

Resource dataSources mencakup jenis data (dan daftar kolomnya) untuk setiap sumber data. Anda dapat menentukan salah satu jenis data ini saat membuat sumber data, dan Anda dapat memperoleh nama jenis data serta daftar kolomnya saat mengambil sumber data dari penyimpanan kebugaran.

Misalnya, representasi sumber data menentukan jenis datanya sebagai berikut:

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

Cakupan otorisasi

Cakupan otorisasi mencakup grup jenis data yang dapat diberi otorisasi oleh aplikasi untuk diakses. Fitur ini membantu pengguna memahami jenis data yang ingin diakses oleh aplikasi. Kebijakan ini juga mempermudah pemberian izin aplikasi untuk menggunakan data tersebut dengan tidak perlu menyetujui setiap jenis data individual. Pengguna memberikan izin ini setelah mereka mendownload aplikasi Anda.

Contoh layar izin cakupan OAuth
Gambar 2. Layar izin cakupan OAuth.

Setelah menguji aplikasi dengan sejumlah kecil pengguna, sebelum meluncurkan aplikasi, Anda perlu meminta verifikasi berdasarkan cakupan yang relevan dengan jenis data tersebut. Baca halaman jenis data yang ditautkan di atas untuk memahami cakupan mana yang berlaku untuk setiap jenis data.

Misalnya, jika aplikasi Anda perlu membaca dan menulis tekanan darah tulis, aplikasi harus mendeklarasikan bahwa operasi baca dan tulis, serta meminta kedua cakupan. Jika hanya menulis data tekanan darah ke platform Google Fit, Anda hanya perlu meminta cakupan penulisan.

Pilih jenis data secara bertanggung jawab. Jangan meminta setiap jenis data jika aplikasi Anda mungkin membutuhkannya. Jenis yang ditentukan menentukan cakupan yang diminta pengguna untuk memberikan izin. Hanya minta jenis data yang dibutuhkan aplikasi agar pengguna lebih cenderung memberikan akses. Pengguna lebih siap memberikan akses ke cakupan terbatas yang dijelaskan dengan jelas.

Gunakan tabel ini untuk memeriksa apakah cakupan yang memerlukan akses oleh aplikasi Anda bersifat sensitif atau dibatasi (yang menentukan langkah verifikasi yang harus Anda ikuti):

Cakupan Deskripsi Kategori
https://www.googleapis.com/auth/fitness.activity.read Membaca data aktivitas dari platform Google Fit. Dibatasi
https://www.googleapis.com/auth/fitness.activity.write Menulis data aktivitas ke platform Google Fit Sensitif
https://www.googleapis.com/auth/fitness.blood_glucose.read Baca data glukosa darah dari platform Google Fit. Dibatasi
https://www.googleapis.com/auth/fitness.blood_glucose.write Tulis data glukosa darah ke platform Google Fit. Sensitif
https://www.googleapis.com/auth/fitness.blood_pressure.read Baca data tekanan darah dari platform Google Fit. Dibatasi
https://www.googleapis.com/auth/fitness.blood_pressure.write Menulis data tekanan darah ke platform Google Fit. Sensitif
https://www.googleapis.com/auth/fitness.body.read Membaca data pengukuran tubuh (tinggi, berat, persentase lemak tubuh) dari platform Google Fit. Dibatasi
https://www.googleapis.com/auth/fitness.body.write Tulis data pengukuran tubuh ke platform Google Fit. Sensitif
https://www.googleapis.com/auth/fitness.body_temperature.read Membaca data suhu tubuh dari platform Google Fit. Dibatasi
https://www.googleapis.com/auth/fitness.body_temperature.write Menulis data suhu tubuh ke platform Google Fit. Sensitif
https://www.googleapis.com/auth/fitness.heart_rate.read Membaca data detak jantung dari platform Google Fit. Dibatasi
https://www.googleapis.com/auth/fitness.heart_rate.write Menulis data detak jantung ke platform Google Fit. Sensitif
https://www.googleapis.com/auth/fitness.location.read Membaca data lokasi dari platform Google Fit. Dibatasi
https://www.googleapis.com/auth/fitness.location.write Menulis data lokasi ke platform Google Fit. Sensitif
https://www.googleapis.com/auth/fitness.nutrition.read Baca data nutrisi dari platform Google Fit. Dibatasi
https://www.googleapis.com/auth/fitness.nutrition.write Tulis data nutrisi ke platform Google Fit. Sensitif
https://www.googleapis.com/auth/fitness.oxygen_saturation.read Membaca data saturasi oksigen dari platform Google Fit. Dibatasi
https://www.googleapis.com/auth/fitness.oxygen_saturation.write Menulis data saturasi oksigen ke platform Google Fit. Sensitif
https://www.googleapis.com/auth/fitness.reproductive_health.read Baca data kesehatan reproduksi dari platform Google Fit. Dibatasi
https://www.googleapis.com/auth/fitness.reproductive_health.write Menulis data kesehatan reproduksi ke platform Google Fit. Sensitif
https://www.googleapis.com/auth/fitness.sleep.read Membaca data tidur dari platform Google Fit. Dibatasi
https://www.googleapis.com/auth/fitness.sleep.write Tulis data tidur ke platform Google Fit. Sensitif

Menambahkan cakupan baru ke aplikasi yang sudah ada

Saat Anda mengupdate aplikasi untuk meminta cakupan baru (misalnya, jika Anda menambahkan cakupan tidur atau detak jantung baru, atau menambahkan cakupan baca), pengguna akan diberi tahu bahwa aplikasi Anda meminta akses ke cakupan tersebut dan mereka dapat memilih untuk memberikan atau menolak akses.

Praktik terbaiknya adalah meminta otorisasi dari pengguna untuk resource pada saat Anda membutuhkannya. Ikuti panduan tentang meminta otorisasi inkremental.

Pengguna akan lebih cenderung memberikan akses jika mereka memahami alasan/cara aplikasi Anda menggunakan data ini:

  • Pertimbangkan untuk menambahkan layar yang memperingatkan/memberi tahu pengguna bahwa cakupan tersebut akan diminta.
  • Jelaskan dengan jelas mengapa aplikasi Anda meminta akses ke cakupan/data ini agar pengguna dapat membuat keputusan yang tepat.

Pelajari lebih lanjut praktik terbaik seputar izin aplikasi untuk Android.