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"/>