สิทธิ์ของ Android มีจุดประสงค์เพื่อปกป้องความเป็นส่วนตัวของผู้ใช้ Android โดยจะแจ้ง ผู้ใช้เมื่อแอปต้องการเข้าถึงประเภทข้อมูลสำหรับข้อมูลที่ละเอียดอ่อน เช่น รายชื่อติดต่อหรือรูปภาพ และ ฟีเจอร์ของระบบ เช่น การตรวจหาตำแหน่งหรือการตรวจหาจำนวนก้าว ผู้ใช้จะให้สิทธิ์เหล่านี้เมื่อดาวน์โหลดแอปของคุณเป็นครั้งแรก
หากแอปของคุณต้องเข้าถึงประเภทข้อมูลเหล่านี้ (ชุดข้อมูลย่อยของประเภทข้อมูล Google Fit) ให้ขอสิทธิ์ที่เกี่ยวข้องของ Android ก่อนขอสิทธิ์ OAuth ดูด้านล่าง
ประเภทข้อมูลที่ต้องใช้สิทธิ์ของ Android
หากต้องการเข้าถึงประเภทข้อมูลกิจกรรมการเคลื่อนไหวร่างกายเหล่านี้ คุณจะต้องขอACTIVITY_RECOGNITIONสิทธิ์ของ Android ดังนี้
วิธีบันทึกข้อมูลประเภทเหล่านี้
com.google.step_count.deltacom.google.step_count.cumulativecom.google.step_count.cadencecom.google.activity.segmentcom.google.calories.expended
วิธีอ่านประเภทข้อมูลเหล่านี้
com.google.step_count.deltacom.google.step_count.cumulativecom.google.step_count.cadencecom.google.activity.segmentcom.google.activity.exercise
หากต้องการเข้าถึงประเภทข้อมูลเหล่านี้ คุณจะต้องขอACCESS_FINE_LOCATIONสิทธิ์ของ Android ดังนี้
- หากต้องการอ่านประเภทข้อมูลเหล่านี้ ให้ทำดังนี้
com.google.distance.deltacom.google.location.samplecom.google.location.bounding_boxcom.google.speed
หากต้องการบันทึกข้อมูลประเภทเหล่านี้ คุณจะต้องขอBODY_SENSORSสิทธิ์ Android ดังนี้
com.google.heart_rate.bpm
การขอสิทธิ์ของ Android
ดูข้อมูลเกี่ยวกับการขอสิทธิ์ของ Android, สิทธิ์การจดจำกิจกรรมการเคลื่อนไหวร่างกาย, สิทธิ์เข้าถึงตำแหน่งแบบละเอียด และสิทธิ์เข้าถึงเซ็นเซอร์ร่างกาย
หากต้องการเข้าถึงประเภทข้อมูลข้างต้นด้วย Google Fit API คุณจะต้อง
ใช้ตรรกะเพื่อจัดการการขอสิทธิ์ Android สำหรับทั้ง Android 10 และ
Android เวอร์ชันก่อนหน้า ตัวอย่างเหล่านี้ใช้สิทธิ์ ACTIVITY_RECOGNITION
Android 10
ดังนั้นแอปของคุณจึงกำหนดเป้าหมายเป็นระดับ API เป้าหมาย 29 ขึ้นไป ขอสิทธิ์จากผู้ใช้ และลงทะเบียนสิทธิ์ในไฟล์ Manifest ของแอปพลิเคชันได้
-
<uses-permission android:name="android.permission.ACTIVITY_RECOGNITION"/> -
if (ContextCompat.checkSelfPermission(thisActivity, Manifest.permission.ACTIVITY_RECOGNITION) != PackageManager.PERMISSION_GRANTED) { // Permission is not granted } หากยังไม่ได้ให้สิทธิ์ ให้ขอสิทธิ์โดยทำดังนี้
ActivityCompat.requestPermissions(thisActivity, arrayOf(Manifest.permission.ACTIVITY_RECOGNITION), MY_PERMISSIONS_REQUEST_ACTIVITY_RECOGNITION)
Android 9 และต่ำกว่า
ดังนั้นแอปของคุณจึงกำหนดเป้าหมายเป็น API ระดับ 28 หรือต่ำกว่าได้
ขอสิทธิ์
com.google.android.gms.permission.ACTIVITY_RECOGNITION-
<uses-permission android:name="android.gms.permission.ACTIVITY_RECOGNITION"/>