Android 权限

Android 权限旨在保护 Android 用户的隐私。它们会在应用需要访问敏感数据(例如联系人或照片)以及系统功能(例如位置信息或步数检测)时提示用户。用户在首次下载您的应用时授予这些权限。

如果您的应用需要访问其中任何一种这些数据类型(Google 健身数据类型的一部分),请先请求相关的 Android 权限,然后再请求 OAuth 权限。请参阅下文

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