เซสชันช่วยให้ผู้ใช้ดูรายการกิจกรรมหลักทั้งหมดที่ตนได้ทำได้อย่างรวดเร็วและง่ายดาย โดยจะปรากฏในหน้ารายการบันทึกของแอป Google Fit เช่น เซสชันการหายใจ การเดิน การวิ่ง หรือการนอนหลับตอนกลางคืนคือตัวอย่างของเซสชันแต่ละเซสชัน
ชุดข้อมูลกลุ่มเซสชันจากระยะเวลาที่เจาะจงซึ่งมีการรวบรวมระหว่างกิจกรรม ตัวอย่างเช่น หากผู้ใช้ติดตามเวลาที่พวกเขาเริ่มและวิ่ง 3 กม. ระบบอาจสร้างเซสชันขึ้นมา 1 เซสชัน และข้อมูลการออกกำลังกายทั้งหมดที่อยู่ภายในระยะเวลานั้น (เช่น จำนวนก้าว ความเร็ว ระยะทาง) จะเชื่อมโยงกับเซสชันนั้น
เซสชันจะไม่มีรายละเอียดเกี่ยวกับกิจกรรม ซึ่งอยู่ในชุดข้อมูลนี้ เซสชันมีพร็อพเพอร์ตี้ต่อไปนี้
- ชื่อที่สื่อความหมายและเข้าใจง่าย (เช่น "การวิ่งตอนเช้า")
- คำอธิบาย
- ตัวระบุที่ไม่ซ้ำกัน
- ประเภทกิจกรรมที่มันบันทึกไว้ (เช่น การวิ่ง)
ประโยชน์ของการใช้เซสชัน
- มีประโยชน์สำหรับผู้ใช้: เซสชันช่วยให้คุณจัดระเบียบข้อมูลกิจกรรมและการออกกำลังกายในลักษณะที่เป็นประโยชน์กับผู้ใช้ ดูกิจกรรมทั้งหมดของตนในวันนั้นๆ ได้ในหน้าบันทึกในแอป Google Fit
- ประสบการณ์ของผู้ใช้ที่สอดคล้องกัน: หากแอปหรืออุปกรณ์ที่ใช้ร่วมกันอนุญาตให้ติดตามกิจกรรม (ซึ่งผู้ใช้เริ่มและหยุดกิจกรรมได้) การมีเซสชันสำหรับการออกกำลังกายเหล่านี้จะช่วยให้ผู้ใช้เห็นกิจกรรมของตัวเองในทั้ง 2 แอป
- ข้อมูลที่ครบถ้วนมากขึ้น: Google Fit ยังผสานข้อมูลจากหลายๆ แหล่งที่มาเพื่อเสริมและเสริมสร้างข้อมูลเซสชันของคุณ วิธีนี้ช่วยให้ผู้ใช้เห็นภาพ กิจกรรมที่สมบูรณ์มากขึ้น
- ใช้ประโยชน์จากแพลตฟอร์ม Google Fit: หากผู้ใช้ไม่ได้ติดตามกิจกรรมหรือ แอปไม่รองรับการติดตาม คุณจะยังคงอ่านเซสชันใน Google Fit ได้ คุณค้นหาข้อมูลโดยละเอียดหรือรวมข้อมูลจากฟิตเนสและค้นหาเซสชันที่มีอยู่ได้โดยไม่ต้องใช้สคีมาและพื้นที่เก็บข้อมูลของคุณเอง
- การมีส่วนร่วมของผู้ใช้ที่เพิ่มขึ้น: คุณสามารถแสดงเซสชันที่มีอยู่สำหรับผู้ใช้และแอปที่สร้างเซสชันเหล่านั้น การโต้ตอบกับแอปออกกำลังกายอื่นๆ ด้วยวิธีนี้ สามารถเพิ่มการมีส่วนร่วมของผู้ใช้ได้
กำลังขอสิทธิ์จากผู้ใช้สำหรับเซสชัน
หากคุณต้องการอ่านหรือเขียนเซสชัน แอปของคุณต้องได้รับอนุญาตจากผู้ใช้ การเข้าถึงเซสชันจะใช้ขอบเขตการให้สิทธิ์เดียวกันกับประเภทข้อมูลที่คุณควรขอ ดังนี้
Android
ระบุประเภทเซสชันที่แอปต้องการเข้าถึง โดยใช้วิธีการที่เหมาะสมจาก FitnessOptions
ตัวอย่างเช่น หากต้องการอ่านเซสชันที่เกี่ยวข้องกับการวิ่ง คุณอาจเลือก:
val fitnessOptions = FitnessOptions.builder()
.accessActivitySessions(FitnessOptions.ACCESS_READ)
.addDataType(DataType.TYPE_HEART_RATE_BPM, FitnessOptions.ACCESS_READ)
.addDataType(DataType.TYPE_SPEED, FitnessOptions.ACCESS_READ)
.addDataType(DataType.TYPE_LOCATION_SAMPLE, FitnessOptions.ACCESS_READ)
.build()
ตัวอย่างนี้ระบุว่าแอปของคุณต้องการเข้าถึงข้อมูลเมตาของเซสชันกิจกรรม และยังระบุประเภทข้อมูลที่ต้องการอ่านภายในเซสชันเหล่านั้นด้วย ในตัวอย่างนี้เราใช้ประเภทข้อมูลอัตราการเต้นของหัวใจ ความเร็ว และข้อมูลตำแหน่ง
REST
ขอบเขตคำขอมีดังนี้
- เซสชันที่มีประเภทกิจกรรมการนอนหลับ
https://www.googleapis.com/auth/fitness.sleep.read
https://www.googleapis.com/auth/fitness.sleep.write
- เซสชันอื่นๆ ทั้งหมด
https://www.googleapis.com/auth/fitness.activity.read
https://www.googleapis.com/auth/fitness.activity.write
การใช้เซสชัน
Android
คุณใช้ Sessions API เพื่อดำเนินการต่อไปนี้ได้
- สร้างเซสชันแบบเรียลไทม์
- แทรกเซสชันในฟิตเนส
- แทรกกลุ่มกิจกรรมเพื่อรองรับการหยุดชั่วคราวระหว่างการออกกำลังกาย
- อ่านเซสชันและชุดข้อมูลที่เกี่ยวข้องกับเซสชัน
- เปิดแอปอื่นเพื่อแสดงข้อมูลเกี่ยวกับเซสชันที่สร้างขึ้น
- ได้รับ Intent เมื่อแอปอื่นเริ่มเซสชัน
REST
คุณใช้ Sessions API เพื่อดำเนินการต่อไปนี้ได้
- สร้างเซสชันแบบเรียลไทม์
- แทรกเซสชันในฟิตเนส
- แทรกกลุ่มกิจกรรมเพื่อรองรับการหยุดชั่วคราวระหว่างการออกกำลังกาย
- อ่านเซสชันและชุดข้อมูลที่เกี่ยวข้องกับเซสชัน
วิธีที่ชุดข้อมูลและกลุ่มโต้ตอบกับเซสชัน
ใน Google Fit
- ชุดข้อมูลแสดงถึงชุดของจุดข้อมูลจากแหล่งข้อมูลหนึ่งๆ ในระยะเวลาที่เจาะจง สามารถแทรกชุดข้อมูลได้เอง แต่ถ้าคุณกำลังสร้างเซสชัน การสร้างเซสชันและชุดข้อมูลพร้อมกันอาจง่ายกว่า
- กลุ่มจะจัดกลุ่มชุดข้อมูลในเซสชันตามกิจกรรมที่ผู้ใช้ทำในเซสชัน ตัวอย่างเช่น หากผู้ใช้ติดตามการวิ่ง 30 นาที (เซสชัน) แต่เดินเป็นระยะเวลาสั้นๆ ในระหว่างนี้ การทำงานนี้อาจถูกแบ่งออกเป็นกลุ่ม จะมีส่วนสำหรับการวิ่ง การเดินพักผ่อน แล้วการวิ่งอีกครั้ง
![](https://developers-dot-devsite-v2-prod.appspot.com/static/fit/images/timeline.png?authuser=8&hl=th)
รูปที่ 1 แสดงช่วงเวลาในร้านฟิตเนสที่แอป A, B และ C ได้แทรกชุดข้อมูลและเซสชันบางส่วน ดังนี้
- แอป A แทรกชุดข้อมูล A1 และ A2 ร่วมกับเซสชัน 1 และ A3 โดยไม่ขึ้นอยู่กับเซสชันใดๆ
- แอป B แทรกชุดข้อมูล B1 และ B2 ร่วมกับเซสชัน 2
- แอป C แทรกชุดข้อมูล C1 อย่างอิสระจากเซสชันใดก็ได้
เมื่ออ่านข้อมูลเซสชันจากร้านฟิตเนส ระบบจะเชื่อมโยงข้อมูลการออกกำลังกายทั้งหมดภายในระยะเวลาของเซสชันนั้นโดยอัตโนมัติ แม้ว่าคุณจะแทรกข้อมูลหลังจากสร้างเซสชัน หรือสร้างเซสชันหลังจากที่ติดตามข้อมูลแบบแพสซีฟแล้วก็ตาม เช่น การค้นหาข้อมูลการออกกำลังกายจากเซสชัน 1 จะแสดงผลดังนี้
- ชุดข้อมูล A1
- ชุดข้อมูล A2
- ส่วนของชุดข้อมูล A3 ระหว่าง t1 และ 2
- ส่วนของชุดข้อมูล C1 ระหว่าง t1 และ t2
คุณจะทราบได้ว่าแอปใดแทรกเซสชันและชุดข้อมูลแต่ละรายการ
การสร้างเซสชัน
การสร้างเซสชันทำได้หลายวิธี ดังนี้
- แอปของคุณสร้างเซสชันได้ในช่องทางต่อไปนี้
- แบบเรียลไทม์เมื่อผู้ใช้ติดตามกิจกรรมในอุปกรณ์ (Android เท่านั้น) เป็นประจำ หรือ
- โดยการแทรกด้วยตนเอง
- เมื่อผู้ใช้เพิ่มการออกกำลังกายหรือกิจกรรมในแอป Google Fit ด้วยตนเอง
ควรสร้างเซสชันเมื่อใด
คุณกําลังเพิ่มข้อมูลการนอนหลับใช่ไหม
- ใช่ - สร้างเซสชันและแทรกเซสชันนี้ลงในสโตร์ฟิตเนสด้วยตนเอง เช่น การแทรกเซสชันการนอนหลับ เนื่องจากผู้ใช้ที่มีแอปหรืออุปกรณ์ติดตามการนอนหลับจะไม่โต้ตอบกับอุปกรณ์ เพื่อเริ่มและหยุดกิจกรรมการนอนหลับ (ซึ่งจะติดตามแบบแพสซิน)
- ไม่ - แอปของคุณอนุญาตให้ผู้ใช้เริ่มและหยุดกิจกรรมหรือไม่
- ไม่ - ไม่ต้องสร้างเซสชัน เพิ่มชุดข้อมูลจากแอปเท่านั้น
- ใช่ - เมื่อใช้ Android API ให้สร้างเซสชันแบบเรียลไทม์หากผู้ใช้ติดตามกิจกรรมของตนหรือด้วยตนเอง ใช้ REST API ให้สร้างเซสชันและแทรกเซสชันลงในพื้นที่เก็บข้อมูลการออกกำลังกายด้วยตนเอง
- แอปของคุณตรวจจับได้หรือไม่เมื่อผู้ใช้ทำกิจกรรมต่างๆ ในระดับที่ละเอียดขึ้น (เช่น การเดินเทียบกับการวิ่ง)
- ใช่ - เพิ่มกลุ่ม
- ไม่ - เฉพาะเพิ่มชุดข้อมูลเท่านั้น ละเว้นกลุ่มไปก่อน และให้ Google Fit สร้างส่วนนี้แบบอ้อมๆ
เซสชันการอ่าน
แอปอ่านเซสชันได้ 3 วิธีดังนี้
- มองหาเซสชันเฉพาะที่เซสชันดังกล่าวสร้าง/แทรกไว้
- ชื่อหรือ
- ID
- มองหาเซสชันทั้งหมดที่สร้าง/แทรกไว้ตามช่วงระยะเวลา
- มองหาเซสชันที่มีอยู่ทั้งหมดซึ่งสร้างโดยแอปทั้งหมด (รวมถึง Google Fit) ตามระยะเวลา
ดูแหล่งที่มาที่สร้างเซสชัน
คุณสามารถแสดงให้ผู้ใช้ทราบว่าแอปหรืออุปกรณ์ใดที่สร้างเซสชันแต่ละรายการ แต่ละเซสชันจะมีแหล่งข้อมูลที่เกี่ยวข้อง ซึ่งมีข้อมูลเกี่ยวกับแอปหรืออุปกรณ์ที่รวบรวมหรือเปลี่ยนรูปแบบข้อมูล
Android
ขณะนี้คุณจะดูชื่อแพ็กเกจของเซสชันที่เขียนโดยไคลเอ็นต์ Android ได้เท่านั้น หากต้องการทราบชื่อแพ็กเกจของแอปที่สร้างเซสชัน ให้ใช้เมธอด getAppPackageName
คุณสามารถใช้ข้อมูลนี้ในแอปเพื่อแสดง
ให้ผู้ใช้เห็นว่าแอปอื่นๆ แทรกเซสชันการออกกำลังกายไว้ที่ไหน คุณสามารถแสดงไอคอนของแต่ละแอปเพื่อช่วยให้ผู้ใช้ระบุแอปได้
คุณยังสามารถเริ่ม ความตั้งใจที่จะ เปิดแอปอื่นๆ เพื่อแสดงรายละเอียดของเซสชันที่แอปนั้นสร้างขึ้น แอปอื่นๆ ก็สามารถเริ่ม เพื่อเริ่มแอปของคุณได้เช่นกัน
ดูข้อมูลเพิ่มเติมเกี่ยวกับการค้นหาแหล่งที่มาที่สร้างเซสชัน
REST
หากต้องการทราบชื่อแพ็กเกจของแอป Android ที่สร้างเซสชัน ให้ใช้พร็อพเพอร์ตี้ session.application
สำหรับเซสชันที่สร้างโดยใช้ REST API ให้ใช้พร็อพเพอร์ตี้ session.name
แทน คุณสามารถใช้ข้อมูลนี้ในแอปเพื่อแสดงให้ผู้ใช้เห็นว่ามีแอปอื่นๆ ที่แทรกเซสชันการออกกำลังกายไว้หรือไม่ คุณสามารถแสดงไอคอนของแต่ละแอปเพื่อช่วยให้ผู้ใช้ระบุแอปได้
ดูข้อมูลเพิ่มเติมเกี่ยวกับการค้นหาแหล่งที่มาที่สร้างเซสชัน