ภาพรวมของ API ชั้นข้อมูล

โหนดในระบบคลาวด์จะควบคุมโดยเซิร์ฟเวอร์ที่ Google เป็นเจ้าของ
รูปที่ 1 ตัวอย่างเครือข่ายของโหนดที่มีอุปกรณ์พกพาและอุปกรณ์ Wear OS

Wearable Data Layer API ซึ่งเป็นส่วนหนึ่งของบริการ Google Play มีช่องทางการสื่อสารระหว่างอุปกรณ์ที่สวมใส่ได้ (เช่น สมาร์ทวอทช์) กับอุปกรณ์พกพาที่เชื่อมต่อ (โดยปกติจะเป็นสมาร์ทโฟน) ซึ่งเป็นวิธีซิงค์และโอนข้อมูลระหว่างอุปกรณ์

หมายเหตุ: API นี้ใช้ได้เฉพาะในนาฬิกา Wear OS และอุปกรณ์ Android ที่จับคู่เท่านั้น สำหรับนาฬิกา Wear OS ที่จับคู่กับโทรศัพท์ iOS แอปจะค้นหา API อื่นๆ ในระบบคลาวด์ได้หากมีการเชื่อมต่ออินเทอร์เน็ต ดูข้อมูลเพิ่มเติมเกี่ยวกับ API อื่นๆ เหล่านี้ได้ที่การเข้าถึงเครือข่ายและการซิงค์ใน Wear OS

ข้อควรระวัง: เนื่องจาก API ของชั้นข้อมูลออกแบบมาเพื่อการสื่อสารระหว่างอุปกรณ์ที่ถือด้วยมือและอุปกรณ์ที่สวมใส่ได้ API เหล่านี้จึงเป็น API เดียวที่คุณใช้ตั้งค่าการสื่อสารระหว่างอุปกรณ์เหล่านี้ได้ เช่น อย่าพยายามเปิดซ็อกเก็ตระดับต่ำเพื่อสร้างช่องทางการสื่อสาร

กรณีการใช้งานทั่วไป

ใช้ Data Layer API เมื่อการโต้ตอบเกิดขึ้นระหว่างนาฬิกากับโทรศัพท์เท่านั้น เช่น

  • รีโมตคอนโทรล: นาฬิกาทำหน้าที่เป็นรีโมตสำหรับโทรศัพท์ (เช่น ควบคุมโปรแกรมเล่นเพลงที่ทำงานบนโทรศัพท์ เลื่อนสไลด์งานนำเสนอ ทำหน้าที่เป็นชัตเตอร์กล้อง)
  • การเปิดแอปในอุปกรณ์ที่ถือได้: ฟีเจอร์ปุ่ม "เปิดในโทรศัพท์"
  • การเชื่อมต่อการตรวจสอบสิทธิ์: การส่งโทเค็นของเซสชันจากโทรศัพท์ไปยังนาฬิการะหว่างการตั้งค่าเริ่มต้น

สถานการณ์ที่พบบ่อยหลายอย่างควรใช้โครงสร้างพื้นฐานของระบบคลาวด์ที่มีอยู่แทน เช่น

  • การบันทึกข้อมูล: การออกกำลังกาย บันทึก
  • การดึงข้อมูลเนื้อหา: โหลดรายการการออกกำลังกายที่ผ่านมา ดาวน์โหลดเพลง ดึงข้อมูลสภาพอากาศ
  • สถานะการซิงค์: หากผู้ใช้เปลี่ยนรูปโปรไฟล์บนเว็บ นาฬิกาจะอัปเดตโดยใช้ระบบคลาวด์ ไม่ใช่โดยการค้นหาโทรศัพท์

สำหรับสถานการณ์เหล่านี้ ให้ใช้ปลายทางและโครงสร้างพื้นฐานที่มีอยู่ของคุณเองแทน Data Layer API

ตัวเลือกสำหรับการสื่อสาร

ระบบจะโอนข้อมูลด้วยวิธีใดวิธีหนึ่งต่อไปนี้

  1. โดยตรง เมื่อมีการเชื่อมต่อบลูทูธระหว่างอุปกรณ์ Wear OS กับอุปกรณ์อื่น
  2. ผ่านเครือข่ายที่พร้อมใช้งาน เช่น LTE หรือ Wi-Fi โดยใช้โหนดเครือข่ายบนเซิร์ฟเวอร์ของ Google เป็นตัวกลาง

ไคลเอ็นต์ชั้นข้อมูลทั้งหมดอาจแลกเปลี่ยนข้อมูลโดยใช้บลูทูธหรือใช้ระบบคลาวด์ ทั้งนี้ขึ้นอยู่กับการเชื่อมต่อที่ใช้ได้ในอุปกรณ์ โปรดทราบว่าข้อมูลที่ส่งโดยใช้ชั้นข้อมูลอาจใช้เซิร์ฟเวอร์ของ Google ในบางจุด

บลูทูธ

เมื่อเชื่อมต่ออุปกรณ์โดยใช้บลูทูธ เลเยอร์ข้อมูลจะใช้การเชื่อมต่อนี้ มีช่องทางที่เข้ารหัสช่องทางเดียวระหว่างอุปกรณ์ โดยใช้การเข้ารหัสบลูทูธมาตรฐานที่จัดการโดยบริการ Google Play

เมฆ

ระบบจะกำหนดเส้นทางข้อมูลผ่าน Google Cloud โดยอัตโนมัติเมื่อบลูทูธไม่พร้อมใช้งาน ข้อมูลทั้งหมดที่โอนผ่าน Google Cloud จะได้รับการเข้ารหัสจากต้นทางถึงปลายทาง

ความปลอดภัยของการสื่อสาร

บริการ Google Play บังคับใช้ข้อจำกัดต่อไปนี้เพื่อให้การสื่อสารระหว่างแอปที่ติดตั้งในอุปกรณ์ Wear OS กับแอปเดียวกันที่ติดตั้งในอุปกรณ์พกพาที่อยู่ใกล้เคียงมีความปลอดภัยมากขึ้น

  • ชื่อแพ็กเกจต้องตรงกันในอุปกรณ์ต่างๆ
  • ลายเซ็นของแพ็กเกจต้องตรงกันในอุปกรณ์ต่างๆ

แอปอื่นๆ จะไม่มีสิทธิ์เข้าถึงข้อมูลไม่ว่าจะใช้การเชื่อมต่อประเภทใดก็ตาม

ตั้งค่า

Wearable Data Layer API มีทรัพยากร Dependency ต่อไปนี้

  • บริการ Google Play เวอร์ชันล่าสุด
  • อุปกรณ์ Wear OS หรือโปรแกรมจำลอง Wear OS

รวมทรัพยากร Dependency ต่อไปนี้ไว้ในไฟล์ build.gradle ของโมดูล Wear

dependencies {
    ...
    implementation("com.google.android.gms:play-services-wearable:20.0.1")
}

ช่วยให้กระบวนการจับคู่ครั้งแรกเป็นไปอย่างราบรื่น

Horologist มีไลบรารีตัวช่วยหลายรายการที่อยู่เหนือ API ของแพลตฟอร์ม ซึ่งรวมถึงไลบรารีชั้นข้อมูลที่ช่วยสร้างการเชื่อมต่อระหว่างอุปกรณ์เคลื่อนที่กับอุปกรณ์ Wear OS นอกจากนี้ ยังมี API ที่สะดวกในการทำสิ่งต่อไปนี้

  • ติดตั้งแอปในอุปกรณ์อีกเครื่อง
  • เปิดแอปในอุปกรณ์อีกเครื่อง
  • เปิดกิจกรรมที่เฉพาะเจาะจงในอุปกรณ์อีกเครื่องหนึ่ง
  • เปิดแอปที่ใช้ร่วมกัน

เข้าถึงชั้นข้อมูล

หากต้องการเรียกใช้ Data Layer API ให้ใช้คลาส Wearable เพื่อรับอินสแตนซ์ของคลาสไคลเอ็นต์ต่างๆ เช่น DataClient และ MessageClient

ดูข้อมูลเพิ่มเติมได้ที่ตัวอย่าง DataLayer

ใช้ไคลเอ็นต์แบบมินิมอล

หากต้องการสร้างไคลเอ็นต์ ให้ดูโค้ดตัวอย่างต่อไปนี้

val dataClient = Wearable.getDataClient(this)

val available = try {
    GoogleApiAvailability.getInstance()
        .checkApiAvailability(client)
        .await()
    true
} catch (e: AvailabilityException) {
    // API is not available in this device.
    false
}

บริบทอาจเป็นบริบท Android ที่ถูกต้องก็ได้ หากคุณใช้ API ภายในขอบเขตของ Activity ให้ใช้เมธอด getDataClient() ของคลาส Wearable ซึ่งจะช่วยให้การโต้ตอบบางอย่างปรากฏเป็นกล่องโต้ตอบแทนการแจ้งเตือน เช่น เมื่อระบบขอให้ผู้ใช้อัปเดตเวอร์ชันของบริการ Google Play

โดยค่าเริ่มต้น ระบบจะเรียกกลับไปยัง Listener ในเธรด UI หลักของแอป หากต้องการให้มีการเรียกกลับในชุดข้อความอื่น ให้ใช้ออบเจ็กต์ WearableOptions เพื่อระบุ Looper ที่กำหนดเอง

ดูข้อมูลเพิ่มเติมได้ที่ข้อมูลอ้างอิง WearableOptions.Builder

สร้างอินสแตนซ์ไคลเอ็นต์อีกครั้งตามความจำเป็น

ไคลเอ็นต์ API ของอุปกรณ์ที่สวมใส่ได้ เช่น DataClient และ MessageClient มีต้นทุนในการสร้างต่ำ ดังนั้น แทนที่จะเก็บไคลเอ็นต์ไว้ ให้สร้างไคลเอ็นต์ใหม่ตามที่ต้องการโดยใช้รูปแบบที่เหมาะกับแอปของคุณ

สถานะไคลเอ็นต์ เช่น ชุด Listener ที่ลงทะเบียนไว้ จะแชร์กับไคลเอ็นต์ทั้งหมดและจะยังคงอยู่หากมีการอัปเดตบริการ Google Play ขณะที่แอปทำงานอยู่