Jenis data

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

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

  • Bacaan atau pengamatan secara 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 yang mewakili pengamatan instan mencakup stempel waktu, dan titik jenis data gabungan juga mencakup waktu mulai untuk interval.

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 diberikan 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 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 dari class DataType. Cara Anda memanggil Fitness API dengan jenis data bergantung pada hal yang ingin dicapai:

  • Untuk merekam data, gunakan Recording API agar dapat membuat langganan untuk setiap jenis data yang ingin direkam.
  • 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 seketika, 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 bisa mendapatkan nama jenis data dan 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 diotorisasi oleh pengguna untuk mengakses aplikasi. Laporan membantu pengguna memahami jenis data yang ingin diakses oleh aplikasi. Aturan ini juga mempermudah pemberian izin aplikasi untuk menggunakan data tersebut dengan tidak perlu menyetujui setiap jenis data. 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 harus 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, aplikasi harus mendeklarasikan bahwa aplikasi tersebut melakukan pembacaan dan penulisan serta meminta kedua cakupan. Jika hanya menulis data tekanan darah ke platform Google Fit, aplikasi hanya perlu meminta cakupan penulisan.

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

Gunakan tabel ini untuk memeriksa apakah cakupan yang perlu diakses oleh aplikasi Anda bersifat sensitif atau dibatasi (yang menentukan langkah-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 Dibatasi
https://www.googleapis.com/auth/fitness.blood_glucose.read Membaca data glukosa darah dari platform Google Fit. Dibatasi
https://www.googleapis.com/auth/fitness.blood_glucose.write Menulis data glukosa darah ke platform Google Fit. Dibatasi
https://www.googleapis.com/auth/fitness.blood_pressure.read Membaca 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. Dibatasi
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 Menulis data pengukuran tubuh ke platform Google Fit. Dibatasi
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. Dibatasi
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. Dibatasi
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. Dibatasi
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. Dibatasi
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. Dibatasi
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. Dibatasi
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. Dibatasi

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 ditanya 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 untuk meminta otorisasi inkremental.

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

  • Pertimbangkan untuk menambahkan layar yang memperingatkan/memberi tahu pengguna bahwa cakupan ini akan diminta oleh pengguna.
  • 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.