Quyền trên Android nhằm bảo vệ quyền riêng tư của người dùng Android. Các quyền này sẽ nhắc người dùng khi ứng dụng muốn truy cập vào các loại dữ liệu cho dữ liệu nhạy cảm như danh bạ hoặc ảnh, cũng như các tính năng hệ thống như thông tin vị trí hoặc tính năng phát hiện bước. Người dùng cấp các quyền này khi tải ứng dụng của bạn xuống lần đầu tiên.
Nếu ứng dụng của bạn cần có quyền truy cập vào bất kỳ loại dữ liệu nào trong số này (một nhóm nhỏ các loại dữ liệu của Google Fit), hãy yêu cầu quyền Android có liên quan trước khi yêu cầu quyền OAuth. Xem bên dưới.
Các loại dữ liệu cần có quyền của Android
Để truy cập vào các loại dữ liệu hoạt động thể chất này, bạn cần yêu cầu ACTIVITY_RECOGNITIONquyền Android:
Cách ghi lại các loại dữ liệu này:
com.google.step_count.deltacom.google.step_count.cumulativecom.google.step_count.cadencecom.google.activity.segmentcom.google.calories.expended
Để đọc các loại dữ liệu này:
com.google.step_count.deltacom.google.step_count.cumulativecom.google.step_count.cadencecom.google.activity.segmentcom.google.activity.exercise
Để truy cập vào các kiểu dữ liệu này, bạn cần yêu cầu quyền ACCESS_FINE_LOCATION của Android:
- Cách đọc các loại dữ liệu này:
com.google.distance.deltacom.google.location.samplecom.google.location.bounding_boxcom.google.speed
Để ghi lại các loại dữ liệu này, bạn cần yêu cầu quyền BODY_SENSORS trên Android:
com.google.heart_rate.bpm
Yêu cầu cấp quyền trên Android
Tìm hiểu về yêu cầu quyền trên Android, quyền nhận dạng hoạt động thể chất, quyền truy cập thông tin vị trí chính xác và quyền truy cập cảm biến cơ thể.
Để truy cập vào các loại dữ liệu nêu trên bằng Google Fit API, bạn cần triển khai logic để xử lý yêu cầu cấp quyền Android cho cả Android 10 và các phiên bản Android trước đó. Các ví dụ này sử dụng quyền ACTIVITY_RECOGNITION.
Android 10
Vì vậy, ứng dụng của bạn có thể nhắm đến cấp độ API mục tiêu 29 trở lên, yêu cầu người dùng cấp quyền và đăng ký quyền trong tệp kê khai ứng dụng.
-
<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION"/> Kiểm tra xem quyền đã được cấp hay chưa:
if (ContextCompat.checkSelfPermission(thisActivity, Manifest.permission.ACTIVITY_RECOGNITION) != PackageManager.PERMISSION_GRANTED) { // Permission is not granted }Nếu chưa được cấp quyền, hãy yêu cầu cấp quyền:
ActivityCompat.requestPermissions(thisActivity, arrayOf(Manifest.permission.ACTIVITY_RECOGNITION), MY_PERMISSIONS_REQUEST_ACTIVITY_RECOGNITION)
Android 9 trở xuống
Vì vậy, ứng dụng của bạn có thể nhắm đến cấp độ API mục tiêu 28 trở xuống:
Yêu cầu quyền
com.google.android.gms.permission.ACTIVITY_RECOGNITION.-
<uses-permission android:name="android.gms.permission.ACTIVITY_RECOGNITION"/>