เราขอแนะนำให้แอป Wear OS ทำงานโดยไม่ต้องพึ่งโทรศัพท์เพื่อให้ผู้ใช้ ทำสิ่งต่างๆ บนนาฬิกาได้โดยไม่ต้องเข้าถึงโทรศัพท์ Android หรือ iOS หากแอปสมาร์ทวอทช์ ต้องมีการโต้ตอบทางโทรศัพท์ คุณต้องทำเครื่องหมายแอป Wear OS ว่าไม่ใช่แอปแบบสแตนด์อโลน และทำตามขั้นตอนเพื่อให้แน่ใจว่าผู้ใช้มีแอปโทรศัพท์พร้อมใช้งาน
วางแผนแอป
คุณใช้ Android App Bundle เพื่อสร้าง Android Package Kit (APK) ที่เพิ่มประสิทธิภาพโดยอัตโนมัติสำหรับการกำหนดค่าอุปกรณ์ของผู้ใช้แต่ละรายภายใต้ข้อมูลแอปพลิเคชันเดียวกันได้ ซึ่งช่วยให้ผู้ใช้ดาวน์โหลดได้เฉพาะโค้ดและทรัพยากรที่จำเป็นต่อการ เรียกใช้แอปของคุณ
ดูข้อมูลเกี่ยวกับการตั้งค่าแอปเพื่อเผยแพร่ผ่าน Google Play Store ได้ที่ จัดแพ็กเกจและเผยแพร่แอป Wear OS และคำแนะนำในการเริ่มต้นใช้งาน Android App Bundle
สำหรับแอปใหม่ ระดับ API เป้าหมายต้องเป็น 34 ขึ้นไป ดูข้อมูลเพิ่มเติมได้ที่ ปฏิบัติตามข้อกำหนดระดับ API เป้าหมายของ Google Play การกำหนดเป้าหมายไปที่ระดับ API ล่าสุดที่มีจะช่วยให้มั่นใจได้ว่าแอปจะทำงานได้ดี ในแพลตฟอร์มเวอร์ชันปัจจุบัน
ดูข้อมูลเกี่ยวกับคำขอเครือข่ายและการเข้าถึงเครือข่ายที่มีแบนด์วิดท์สูงได้ที่ การเข้าถึงเครือข่ายและการซิงค์ใน Wear OS
กำหนดให้แอปเป็นแอป Wear OS
คุณต้องกำหนดแท็ก
<uses-feature> ในไฟล์ Manifest สําหรับ Android ของแอป
หากต้องการระบุว่าเป็นแอปสมาร์ทวอทช์ ให้เพิ่มรายการดังต่อไปนี้
<uses-feature android:name="android.hardware.type.watch" />
ระบุว่าแอปเป็นแบบสแตนด์อโลนหรือไม่
แอปสมาร์ทวอทช์จะถือว่าเป็นแบบสแตนด์อโลนหรือไม่ใช่แบบสแตนด์อโลน
- แบบสแตนด์อโลน: แอปที่ทำงานโดยอิสระอย่างสมบูรณ์ซึ่งไม่จำเป็นต้องมีแอปโทรศัพท์สำหรับฟีเจอร์หลัก แม้ว่าข้อความแจ้ง "เปิดในโทรศัพท์" จะยอมรับได้ แต่แอปต้องมีวิธีอื่น ให้ผู้ใช้ทำฟังก์ชันของแอปให้เสร็จสมบูรณ์ เช่น ลิงก์แบบย่อหรือคิวอาร์โค้ด โดยไม่ต้องอาศัย โทรศัพท์ที่เชื่อมต่อ
- ไม่ใช่แบบสแตนด์อโลน: แอปที่ต้องพึ่งพาแอปในโทรศัพท์หรืออุปกรณ์อื่นสำหรับ ฟีเจอร์หลัก ตัวเลือกนี้เหมาะที่สุดสำหรับแอปในกรณีที่ไม่สามารถ ระบุวิธีการอื่นได้ง่ายๆ เช่น คิวอาร์โค้ดหรือลิงก์สั้น เพื่อทำฟังก์ชันหลักของแอปให้เสร็จสมบูรณ์ เช่น การตรวจสอบสิทธิ์
หมายเหตุ: แม้จะเป็นแอปที่ไม่ใช่แบบสแตนด์อโลน ผู้ใช้ก็สามารถติดตั้งแอป Wear OS ก่อนแอปบนอุปกรณ์เคลื่อนที่ได้ ดังนั้นหากแอป Wear OS ตรวจพบว่าอุปกรณ์พกพาที่อยู่ใกล้เคียงไม่มีแอปที่ใช้ร่วมกันที่จำเป็น ให้แจ้งให้ผู้ใช้ติดตั้งแอปที่ใช้ร่วมกัน
Google จะตรวจสอบความถูกต้องของสถานะแบบสแตนด์อโลนของแอปในระหว่างการแสดงแอป ค่านี้จะส่งผลต่อระดับการเข้าถึงแอปภายใน Play Store ใน อุปกรณ์ที่ไม่เชื่อมต่อ เช่น อุปกรณ์ Wear OS ที่ไม่ได้จับคู่กับอุปกรณ์พกพา แอปที่ไม่ใช่แบบสแตนด์อโลน รวมถึงแอปที่นักพัฒนาแอป ระบุอย่างไม่ถูกต้องว่าเป็น "แบบสแตนด์อโลน" จะไม่พร้อมให้บริการแก่ผู้ใช้ในอุปกรณ์ที่ไม่ต้องเชื่อมต่อ เหล่านี้
ในแอป Wear OS ให้ตั้งค่าขององค์ประกอบ
meta-data com.google.android.wearable.standalone
ในไฟล์ Manifest ของ Android เพื่อประกาศว่าแอปของคุณเป็นแบบสแตนด์อโลนหรือไม่
หากแอปสมาร์ทวอทช์เป็นแอปแบบสแตนด์อโลนที่ทำงานโดยอิสระอย่างสมบูรณ์ ให้ระบุ
สิ่งนี้ใน Google Play Store โดยตั้งค่า
com.google.android.wearable.standaloneเป็นtrue
<meta-data android:name="com.google.android.wearable.standalone" android:value="true" />
หากแอปสมาร์ทวอทช์ของคุณไม่ใช่แอปแบบสแตนด์อโลนและต้องอาศัยแอปอื่นสำหรับฟีเจอร์หลัก
ให้ตั้งค่า com.google.android.wearable.standalone เป็น
false ซึ่งหมายความว่าแอปสมาร์ทวอทช์ต้องใช้อุปกรณ์อื่น แต่จะไม่ส่งผลต่อการโปรโมตแอปใน Google Play Store
หมายเหตุ:
แม้ว่าค่าของ com.google.android.wearable.standalone จะเป็น
false แต่ก็ยังติดตั้งแอปสมาร์ทวอทช์
ได้ก่อนติดตั้งแอปโทรศัพท์
ดังนั้น หากแอปสมาร์ทวอทช์ของคุณตรวจพบว่าโทรศัพท์ที่ใช้ร่วมกันไม่มีแอปโทรศัพท์ที่จำเป็นตามที่อธิบายไว้ในหน้านี้ ให้แจ้งให้ผู้ใช้ติดตั้งแอปโทรศัพท์
พื้นที่เก็บข้อมูลโค้ดและข้อมูลที่แชร์
คุณแชร์โค้ดระหว่างแอป Wear OS กับแอปในโทรศัพท์ได้ เช่น โค้ดทั่วไปสำหรับการเชื่อมต่อเครือข่ายอาจอยู่ในไลบรารีที่ใช้ร่วมกัน
ไม่บังคับ: โค้ด ที่เฉพาะเจาะจงกับรูปแบบของอุปกรณ์อาจอยู่ในโมดูลแยกต่างหาก
คุณสามารถใช้ Android Storage API มาตรฐานเพื่อจัดเก็บข้อมูลในเครื่องได้เช่นเดียวกับในโทรศัพท์ คุณสามารถใช้ DataStore เพื่อจัดเก็บคู่คีย์-ค่าและออบเจ็กต์ที่พิมพ์ หรือจะใช้ไลบรารีการคงอยู่ของ Room ก็ได้
ตรวจหาแอปในอุปกรณ์อื่น
แอปสมาร์ทวอทช์และแอปโทรศัพท์ที่เกี่ยวข้อง จะตรวจหาได้ว่าอีกแอปหนึ่งพร้อมใช้งานหรือไม่
แอปโทรศัพท์และแอปนาฬิกาสามารถใช้
CapabilityClient เพื่อโฆษณาการมีอยู่ของแอป
ในอุปกรณ์ที่จับคู่แล้ว โดยทำได้ทั้งแบบคงที่หรือแบบไดนามิก
เมื่อแอป
อยู่ในโหนดในเครือข่าย Wear OS ของผู้ใช้ เช่น ในโทรศัพท์ นาฬิกาที่จับคู่ หรือ
ในระบบคลาวด์ CapabilityClient จะช่วยให้แอปอื่นๆ
ตรวจหาแอปนั้นได้ ดูข้อมูลเพิ่มเติมได้ที่
ความสามารถในการโฆษณา
หากแอปใดแอปหนึ่งตรวจหาอีกแอปหนึ่งไม่ได้ คุณสามารถแจ้งให้ผู้ใช้เปิดข้อมูลสินค้าใน Store บนอุปกรณ์ที่ได้รับผลกระทบ นี่คือโซลูชันสำหรับแอปสมาร์ทวอทช์ที่ต้องมีโทรศัพท์ที่ใช้ร่วมกัน เพื่อให้ทำงานได้อย่างถูกต้อง
คุณต้องตรวจสอบว่า Play Store พร้อมใช้งานใน อุปกรณ์หรือไม่ เนื่องจากโทรศัพท์บางรุ่น เช่น iPhone ไม่รองรับ Play Store
ส่วนต่อไปนี้จะอธิบายแนวทางปฏิบัติแนะนำสำหรับ 2 สถานการณ์
- แอปสมาร์ทวอทช์แบบสแตนด์อโลนต้องใช้แอปโทรศัพท์
- แอปโทรศัพท์ต้องใช้แอปสมาร์ทวอทช์แบบสแตนด์อโลน
นอกจากนี้ คุณยังดู
ตัวอย่างผู้ช่วย DataLayer ซึ่งแสดงวิธีใช้
ไลบรารีผู้ช่วย DataLayer ซึ่งเป็นส่วนหนึ่งของ
Horologist ได้ด้วย เครื่องมือช่วยเหล่านี้ช่วยให้คุณตรวจสอบการเชื่อมต่อระหว่างอุปกรณ์พกพา
กับอุปกรณ์ Wear OS ได้
ดูข้อมูลเพิ่มเติม
เกี่ยวกับคลาสที่อธิบายไว้ในส่วนต่อไปนี้ได้ที่
เอกสารอ้างอิง Wear OS API
ข้อมูลอ้างอิงนั้นยังมีข้อมูลเกี่ยวกับคลาส
PhoneTypeHelper ซึ่งมีเมธอด
getPhoneDeviceType() ที่ช่วยให้แอป Wear OS ตรวจสอบได้ว่าโทรศัพท์ที่ใช้ร่วมกันเป็นอุปกรณ์ Android หรืออุปกรณ์ iOS
ระบุชื่อความสามารถเพื่อตรวจหาแอป
สำหรับแอปที่สอดคล้องกับอุปกรณ์แต่ละประเภท ไม่ว่าจะเป็นนาฬิกาหรือโทรศัพท์ ให้ระบุสตริงที่ไม่ซ้ำสำหรับชื่อความสามารถในไฟล์ res/values/wear.xml
เช่น ในโมดูลอุปกรณ์เคลื่อนที่ ไฟล์ wear.xml
อาจมีข้อมูลต่อไปนี้
<resources xmlns:tools="http://schemas.android.com/tools" tools:keep="@array/android_wear_capabilities"> <string-array name="android_wear_capabilities"> <item>verify_remote_example_phone_app</item> </string-array> </resources>
ในโมดูล Wear OS ไฟล์ wear.xml มีค่าที่แตกต่างกันสำหรับชื่อความสามารถ เช่น ค่าต่อไปนี้
<resources xmlns:tools="http://schemas.android.com/tools" tools:keep="@array/android_wear_capabilities"> <string-array name="android_wear_capabilities"> <item>verify_remote_example_wear_app</item> </string-array> </resources>
ดูข้อมูลเพิ่มเติมได้ที่ ความสามารถในการโฆษณา
การตรวจหาแอปและการเปิด URL จากนาฬิกา
แอปสมาร์ทวอทช์สามารถตรวจหาว่าโทรศัพท์ที่ใช้ร่วมกันของผู้ใช้มีแอปโทรศัพท์ของคุณหรือไม่ ทำตามขั้นตอนต่อไปนี้
-
ใช้
CapabilityClientเพื่อตรวจสอบว่าได้ติดตั้งแอปโทรศัพท์ ในโทรศัพท์ที่จับคู่ไว้หรือไม่ ดูข้อมูลเพิ่มเติมได้ที่ ตัวอย่างผู้ช่วย Data Layer ใน GitHub -
หากไม่ได้ติดตั้งแอปโทรศัพท์ในโทรศัพท์ ให้ใช้วิธี
PhoneDeviceType.getPhoneDeviceType()เพื่อตรวจสอบประเภทของโทรศัพท์ ดูรายละเอียดได้ที่ส่วนต่อไปนี้ -
หาก
PhoneDeviceType.DEVICE_TYPE_ANDROIDแสดงขึ้นมา แสดงว่าโทรศัพท์เป็นโทรศัพท์ Android โทรRemoteActivityHelper.startRemoteActivity()ในอุปกรณ์ Wear OS เพื่อ เปิด Play Store ในโทรศัพท์ ใช้ URI ของตลาดสำหรับแอปในโทรศัพท์ ซึ่งอาจแตกต่างจาก URI ของแอป Wear เช่น ใช้ URI ของตลาด เช่นmarket://details?id=com.example.android.wearable.wear.finddevices -
หากระบบแสดง
PhoneDeviceType.DEVICE_TYPE_IOSหมายความว่าโทรศัพท์เป็นโทรศัพท์ iOS ที่ไม่มี Play Store เปิด App Store ใน iPhone โดยโทรหาRemoteActivityHelper.startRemoteActivity()ในอุปกรณ์ Wear OS คุณระบุ URL ของ iTunes ของแอปได้ เช่นhttps://itunes.apple.com/us/app/yourappnameจาก Wear OS คุณไม่สามารถระบุได้โดยอัตโนมัติว่า แอปโทรศัพท์ของคุณติดตั้งอยู่ในอุปกรณ์ iOS หรือไม่ แนวทางปฏิบัติแนะนำคือการจัดให้มี กลไกเพื่อให้ผู้ใช้ทริกเกอร์การ เปิด App Store ด้วยตนเอง
หมายเหตุ: ใช้ RemoteActivityHelper API ตามที่อธิบายไว้ในส่วนก่อนหน้าเพื่อ
ระบุว่าให้เปิด URL ใดก็ตามในโทรศัพท์จากนาฬิกา
และไม่จำเป็นต้องใช้แอปในโทรศัพท์
รายละเอียดสำหรับการตรวจหาประเภทโทรศัพท์ที่จับคู่
ต่อไปนี้คือข้อมูลโค้ดที่ใช้วิธี getPhoneDeviceType() เพื่อ
ตรวจสอบประเภทโทรศัพท์ที่จับคู่กับนาฬิกา
var phoneDeviceType: Int = PhoneTypeHelper.getPhoneDeviceType(this)
ค่าที่เมธอด getPhoneDeviceType()
ส่งคืนจะเป็นค่าใดค่าหนึ่งต่อไปนี้
| ค่าที่ส่งคืน | คำอธิบาย |
|---|---|
DEVICE_TYPE_ANDROID
|
โทรศัพท์ที่ใช้ร่วมกันเป็นอุปกรณ์ที่ใช้ระบบ Android |
DEVICE_TYPE_IOS
|
โทรศัพท์ที่ใช้ร่วมกันเป็นอุปกรณ์ iOS |
DEVICE_TYPE_UNKNOWN
|
โทรศัพท์ที่ใช้ร่วมกันเป็นอุปกรณ์ที่ไม่รู้จัก |
DEVICE_TYPE_ERROR
|
เกิดข้อผิดพลาดในการระบุประเภทโทรศัพท์ที่จับคู่ไว้ โปรดตรวจสอบอีกครั้งในภายหลัง |
การตรวจหาแอปที่เริ่มต้นจากโทรศัพท์ Android
โทรศัพท์ Android สามารถตรวจหาว่าอุปกรณ์ Wear OS ของผู้ใช้มีแอปสมาร์ทวอทช์ของคุณหรือไม่ โดยทำตามขั้นตอนต่อไปนี้
-
ใช้
NodeClientเพื่อค้นหานาฬิกาทั้งหมดที่เชื่อมต่อกับโทรศัพท์ของผู้ใช้ ดูข้อมูลเพิ่มเติมได้ที่ ตัวอย่างผู้ช่วย Data Layer ใน GitHub -
ใช้
CapabilityClientเพื่อตรวจสอบว่านาฬิกาของผู้ใช้เครื่องใดที่ ติดตั้งแอปของคุณ -
หากไม่ได้ติดตั้งแอปในนาฬิกาของผู้ใช้ทั้งหมด ให้ผู้ใช้เปิด Play Store ในอุปกรณ์ Wear OS ที่เหลือจากโทรศัพท์โดยใช้
RemoteActivityHelper.startRemoteActivity()วิธี ใช้ URI ของตลาดสำหรับแอป Wear OS ซึ่งอาจแตกต่างจาก URI ของแอปโทรศัพท์ เช่น ใช้ URI ของตลาด เช่นmarket://details?id=com.example.android.wearable.wear.finddevices
ข้อมูลตำแหน่งสำหรับนาฬิกาที่จับคู่กับ iPhone
สำหรับนาฬิกาที่จับคู่กับ iPhone ให้ใช้ ผู้ให้บริการ Fused Location (FLP) เพื่อรับข้อมูลตำแหน่งในนาฬิกา ดูข้อมูลเพิ่มเติมได้ที่ ตรวจหาตำแหน่งใน Wear OS
หากมีโทรศัพท์ที่ใช้ร่วมกัน FLP จะใช้โทรศัพท์ที่ใช้ร่วมกันสำหรับ ข้อมูลตำแหน่ง
รับเฉพาะข้อมูลที่จำเป็น
โดยทั่วไป เมื่อได้รับข้อมูลจากอินเทอร์เน็ต ให้รับเฉพาะข้อมูลที่จำเป็นเท่านั้น มิเช่นนั้น คุณอาจทำให้เกิดเวลาในการตอบสนอง การใช้หน่วยความจำ และการใช้แบตเตอรี่ที่ไม่จำเป็น
เมื่อนาฬิกาเชื่อมต่อผ่านการเชื่อมต่อบลูทูธ LE แอปอาจ มีสิทธิ์เข้าถึงแบนด์วิดท์เพียง 4 กิโลไบต์ต่อวินาที ทั้งนี้ขึ้นอยู่กับ นาฬิกา ดังนั้น เราขอแนะนำให้ทำตามขั้นตอนต่อไปนี้
- ตรวจสอบคำขอและการตอบกลับของเครือข่ายเพื่อหาข้อมูลเพิ่มเติมที่จำเป็นสำหรับแอปโทรศัพท์เท่านั้น
- ย่อรูปภาพขนาดใหญ่ก่อนส่งผ่านเครือข่ายไปยังนาฬิกา
สำหรับกรณีที่จำเป็นต้องใช้เครือข่ายที่มีแบนด์วิดท์สูง โปรดดู การเข้าถึงเครือข่ายที่มีแบนด์วิดท์สูง
ตัวอย่างโค้ดเพิ่มเติม
ตัวอย่างผู้ช่วย Data Layer แสดงให้เห็นถึงการใช้ API ที่กล่าวถึงในหน้านี้เพิ่มเติม