Android 權限

Android 權限旨在保護 Android 使用者的隱私權。當應用程式想存取聯絡人或相片等私密資料,以及位置資訊或步數偵測等系統功能時,系統會提示使用者。使用者會在首次下載應用程式時授予這些權限。

如果應用程式需要存取這些資料類型 (Google Fit 資料類型的一小部分),請先要求相關的 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"/>