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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

บลูทูธ

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

เมฆ

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

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

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

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

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

ตั้งค่า

Wearable Data Layer API มีการอ้างอิงต่อไปนี้

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

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

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

อำนวยความสะดวกในกระบวนการจับคู่เริ่มต้น

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

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

เข้าถึง Data Layer

หากต้องการเรียกใช้ 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 ขณะที่แอป กำลังทำงาน