Android の権限

Android の権限は、Android ユーザーのプライバシーを保護することを目的としています。連絡先や写真などのセンシティブ データや、位置情報や歩数の検出などのシステム機能のデータタイプにアプリがアクセスしようとすると、ユーザーにメッセージが表示されます。ユーザーはアプリを初めてダウンロードするときにこれらの権限を付与します。

アプリがこちらのデータタイプ(Google Fit データタイプのサブセット)のいずれかにアクセスする必要がある場合は、OAuth 権限をリクエストする前に、関連する Android 権限をリクエストしてください。下記をご覧ください

Android の権限の同意画面の例
図 1. 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 以降をターゲットとして、ユーザーに権限をリクエストして、その権限をアプリ マニフェスト ファイルに登録できます。

  1. マニフェスト ファイルに権限を追加します

    <uses-permission android:name="android.permission.ACTIVITY_RECOGNITION"/>
    
  2. 権限が付与されているかどうかを確認します

    if (ContextCompat.checkSelfPermission(thisActivity, Manifest.permission.ACTIVITY_RECOGNITION)
              != PackageManager.PERMISSION_GRANTED) {
          // Permission is not granted
    }
    
  3. 権限が付与されていない場合は、権限をリクエストします。

    ActivityCompat.requestPermissions(thisActivity,
                arrayOf(Manifest.permission.ACTIVITY_RECOGNITION),
                MY_PERMISSIONS_REQUEST_ACTIVITY_RECOGNITION)
    

Android 9 以下

そのため、アプリは API レベル 28 以下を対象にできます。

  1. com.google.android.gms.permission.ACTIVITY_RECOGNITION 権限をリクエストします。

  2. マニフェスト ファイルに権限を追加します

    <uses-permission android:name="android.gms.permission.ACTIVITY_RECOGNITION"/>