Wearable Data Layer API ซึ่งเป็นส่วนหนึ่งของบริการ Google Play มีช่องทางการสื่อสารระหว่างอุปกรณ์สวมใส่ (เช่น สมาร์ทวอทช์) กับอุปกรณ์แบบมือถือที่เชื่อมต่อ (โดยปกติคือสมาร์ทโฟน) โดยเป็นวิธีซิงค์และโอนข้อมูลระหว่างอุปกรณ์
หมายเหตุ: API นี้ใช้ได้เฉพาะในนาฬิกา Wear OS และอุปกรณ์ Android ที่จับคู่แล้วเท่านั้น สำหรับนาฬิกา Wear OS ที่จับคู่กับโทรศัพท์ iOS แอปจะค้นหา API อื่นๆ ที่อิงตามระบบคลาวด์ได้หากมีการเชื่อมต่ออินเทอร์เน็ต ดูข้อมูลเพิ่มเติมเกี่ยวกับ API อื่นๆ เหล่านี้ได้ที่ การเข้าถึงเครือข่ายและการซิงค์ใน Wear OS
ข้อควรระวัง: เนื่องจาก Data Layer API ออกแบบมาเพื่อการสื่อสารระหว่างอุปกรณ์แบบมือถือและอุปกรณ์สวมใส่ คุณจึงใช้ได้เฉพาะ API เหล่านี้เพื่อตั้งค่าการสื่อสารระหว่างอุปกรณ์เหล่านี้ เช่น อย่าพยายามเปิดซ็อกเก็ตระดับต่ำเพื่อสร้างช่องทางการสื่อสาร
กรณีการใช้งานทั่วไป
ใช้ Data Layer API เมื่อการโต้ตอบเกิดขึ้นระหว่างนาฬิกากับโทรศัพท์เท่านั้น เช่น
- รีโมตคอนโทรล: นาฬิกาทำหน้าที่เป็นรีโมตสำหรับโทรศัพท์ (เช่น ควบคุมมิวสิกเพลเยอร์ที่ทำงานบนโทรศัพท์ เลื่อนสไลด์ของงานนำเสนอ ทำหน้าที่เป็นชัตเตอร์กล้อง)
- การเปิดแอปแบบมือถือ: ฟีเจอร์ปุ่ม "เปิดในโทรศัพท์"
- การเชื่อมโยงการตรวจสอบสิทธิ์: การส่งโทเค็นของเซสชันจากโทรศัพท์ไปยังนาฬิกาในระหว่างการตั้งค่าเริ่มต้น
สถานการณ์ทั่วไปหลายสถานการณ์ควรใช้โครงสร้างพื้นฐานของระบบคลาวด์ที่มีอยู่แทน เช่น
- การบันทึกข้อมูล: การออกกำลังกาย โน้ต
- การดึงข้อมูลเนื้อหา: การโหลดรายการการออกกำลังกายที่ผ่านมา การดาวน์โหลดเพลง การดึงข้อมูลสภาพอากาศ
- การซิงค์สถานะ: หากผู้ใช้เปลี่ยนรูปโปรไฟล์ในเว็บ นาฬิกาจะอัปเดตโดยใช้ระบบคลาวด์ ไม่ใช่โดยการค้นหาโทรศัพท์
สำหรับสถานการณ์เหล่านี้ ให้ใช้ปลายทางและโครงสร้างพื้นฐานที่มีอยู่ของคุณเองแทน Data Layer API
ตัวเลือกสำหรับการสื่อสาร
ระบบจะโอนข้อมูลด้วยวิธีใดวิธีหนึ่งต่อไปนี้
- โดยตรง เมื่อมีการเชื่อมต่อบลูทูธระหว่าง อุปกรณ์ Wear OS กับอุปกรณ์อื่น
- ผ่านเครือข่ายที่พร้อมใช้งาน เช่น LTE หรือ Wi-Fi โดยใช้ โหนดเครือข่ายในเซิร์ฟเวอร์ของ Google เป็นตัวกลาง
ไคลเอ็นต์ Data Layer ทั้งหมดอาจแลกเปลี่ยนข้อมูลโดยใช้บลูทูธหรือใช้ระบบคลาวด์ ทั้งนี้ขึ้นอยู่กับการเชื่อมต่อที่อุปกรณ์มี โปรดทราบว่าข้อมูลที่ส่งโดยใช้ 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: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
สร้างอินสแตนซ์ไคลเอ็นต์ใหม่ตามความจำเป็น
ไคลเอ็นต์ Wearable API เช่น DataClient และ MessageClient สร้างได้ง่าย
ดังนั้นแทนที่จะเก็บไคลเอ็นต์ไว้ ให้สร้างไคลเอ็นต์ใหม่เมื่อจำเป็นโดยใช้สไตล์ที่เหมาะกับแอปของคุณ
สถานะไคลเอ็นต์ เช่น ชุด Listener ที่ลงทะเบียนไว้ จะแชร์ในไคลเอ็นต์ทั้งหมดและจะยังคงอยู่หากมีการอัปเดตบริการ Google Play ขณะที่แอปกำลังทำงาน