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 以下版本

因此,您的應用程式可以指定 28 以下的 API 級別:

  1. 要求 com.google.android.gms.permission.ACTIVITY_RECOGNITION 權限。

  2. 在資訊清單檔案中加入權限

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