Разрешения Android

Разрешения Android предназначены для защиты конфиденциальности пользователя Android. Они подсказывают пользователю, когда приложения хотят получить доступ к типам данных для конфиденциальных данных, таких как контакты или фотографии, а также к системным функциям, таким как определение местоположения или шага. Пользователи предоставляют эти разрешения при первой загрузке вашего приложения.

Если вашему приложению требуется доступ к любому из этих типов данных (подмножество типов данных Google Fit), запросите соответствующее разрешение Android, прежде чем запрашивать разрешения OAuth. См. ниже .

Пример экрана согласия с разрешениями Android
Рис. 1. Экран согласия с разрешениями Android.

Типы данных, для которых требуются разрешения Android

Чтобы получить доступ к этим типам данных о физической активности, вам потребуется запросить разрешение Android ACTIVITY_RECOGNITION :

  • Чтобы записать эти типы данных:

    • 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

Чтобы получить доступ к этим типам данных, вам необходимо запросить разрешение Android ACCESS_FINE_LOCATION :

  • Чтобы прочитать эти типы данных:
    • 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, разрешении на распознавание физической активности, разрешении точного определения местоположения и разрешении датчиков тела .

Чтобы получить доступ к указанным выше типам данных с помощью API Google Fit, вам необходимо реализовать логику для обработки запросов разрешений Android как для Android 10, так и для предыдущих версий Android. В этих примерах используется разрешение ACTIVITY_RECOGNITION .

Андроид 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)
    

Андроид 9 и ниже

Таким образом, ваше приложение может ориентироваться на уровень API 28 или ниже:

  1. Запросите разрешение com.google.android.gms.permission.ACTIVITY_RECOGNITION .

  2. Добавьте разрешение в файл манифеста .

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