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