Android の権限は、Android ユーザーのプライバシーを保護することを目的としています。アプリは、連絡先や写真などのセンシティブ データと、位置情報や歩数の検出などのシステム機能のために、アプリがデータの種類にアクセスしようとすると、ユーザーにメッセージを表示します。ユーザーは、最初にアプリをダウンロードする際に、これらの権限を付与します。
アプリがこれらのデータ型(Google Fit データ型のサブセット)にアクセスする必要がある場合は、OAuth 権限をリクエストする前に、関連する Android の権限をリクエストします。下記をご覧ください。

Android の権限を必要とするデータ型
これらの身体活動データの種類にアクセスするには、ACTIVITY_RECOGNITION
Android 権限をリクエストする必要があります。
これらのデータタイプを記録するには:
com.google.step_count.delta
com.google.step_count.cumulative
com.google.step_count.cadence
com.google.activity.segment
com.google.calories.expended
これらのデータ型を読み取るには:
com.google.step_count.delta
com.google.step_count.cumulative
com.google.step_count.cadence
com.google.activity.segment
com.google.activity.exercise
これらのデータタイプにアクセスするには、ACCESS_FINE_LOCATION
Android 権限をリクエストする必要があります。
- これらのデータ型を読み取るには:
com.google.distance.delta
com.google.location.sample
com.google.location.bounding_box
com.google.speed
これらのデータタイプを記録するには、BODY_SENSORS
Android 権限をリクエストする必要があります。
com.google.heart_rate.bpm
Android の権限のリクエスト
詳しくは、Android の権限のリクエスト、身体活動認識の権限、精度の高い位置情報の利用許可、ボディセンサーの権限をご覧ください。
Google Fit API で上記のデータタイプにアクセスするには、Android 10 と以前のバージョンの Android の両方で Android の権限のリクエストを処理するロジックを実装する必要があります。以下の例では、ACTIVITY_RECOGNITION
権限を使用しています。
Android 10
そのため、アプリは API レベル 29 以降をターゲットとして、ユーザーに権限をリクエストし、アプリ マニフェスト ファイルに登録できます。
-
<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION"/>
-
if (ContextCompat.checkSelfPermission(thisActivity, Manifest.permission.ACTIVITY_RECOGNITION) != PackageManager.PERMISSION_GRANTED) { // Permission is not granted }
権限がまだ付与されていない場合は、権限をリクエストします。
ActivityCompat.requestPermissions(thisActivity, arrayOf(Manifest.permission.ACTIVITY_RECOGNITION), MY_PERMISSIONS_REQUEST_ACTIVITY_RECOGNITION)
Android 9 以下
そのため、アプリで API レベル 28 以下をターゲットにすることができます。
com.google.android.gms.permission.ACTIVITY_RECOGNITION
権限をリクエストします。-
<uses-permission android:name="android.gms.permission.ACTIVITY_RECOGNITION"/>