เราขอแนะนำให้แอป Wear OS ทำงานโดยไม่ต้องพึ่งโทรศัพท์เพื่อให้ผู้ใช้ ทำสิ่งต่างๆ บนนาฬิกาได้โดยไม่ต้องเข้าถึงโทรศัพท์ Android หรือ iOS หากแอปนาฬิกา ต้องมีการโต้ตอบทางโทรศัพท์ คุณต้องทำเครื่องหมายแอป Wear OS ว่าไม่ใช่แอปแบบสแตนด์อโลน และทำตามขั้นตอนเพื่อให้แน่ใจว่าผู้ใช้มีแอปโทรศัพท์พร้อมใช้งาน
วางแผนแอป
คุณใช้ Android App Bundle เพื่อสร้าง Android Package Kit (APK) ที่เพิ่มประสิทธิภาพโดยอัตโนมัติสำหรับการกำหนดค่าอุปกรณ์ของผู้ใช้แต่ละรายในข้อมูลแอปพลิเคชันเดียวกันได้ ซึ่งช่วยให้ผู้ใช้ดาวน์โหลดได้เฉพาะโค้ดและทรัพยากรที่จำเป็นต่อการ เรียกใช้แอปของคุณ
ดูข้อมูลเกี่ยวกับการตั้งค่าแอปเพื่อเผยแพร่ผ่าน Google Play Store ได้ที่ จัดแพ็กเกจและเผยแพร่แอป Wear OS และคำแนะนำในการเริ่มต้นใช้งาน Android App Bundle
สำหรับแอปใหม่ API ระดับเป้าหมายต้องเป็น 30 ขึ้นไป ดูข้อมูลเพิ่มเติมได้ที่
ปฏิบัติตามข้อกำหนดระดับ API
เป้าหมายของ Google Play ตั้งค่า
targetSdkVersion เป็น API ระดับ 30 (Wear OS 3) เพื่อช่วยให้มั่นใจว่าแอปจะทำงานได้ดี
ในแพลตฟอร์มเวอร์ชันล่าสุด
ดูข้อมูลเกี่ยวกับคำขอเครือข่ายและการเข้าถึงเครือข่ายที่มีแบนด์วิดท์สูงได้ที่ การเข้าถึงเครือข่ายและการซิงค์ใน 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 มาตรฐานเพื่อจัดเก็บข้อมูลในเครื่องได้เช่นเดียวกับในโทรศัพท์ เช่น คุณสามารถใช้ SharedPreferences API หรือไลบรารีความคงทนของ Room ได้
ตรวจหาแอปในอุปกรณ์อื่น
แอปนาฬิกาและแอปโทรศัพท์ที่เกี่ยวข้อง จะตรวจหาได้ว่าอีกแอปพร้อมใช้งานหรือไม่
แอปโทรศัพท์และแอปนาฬิกาสามารถใช้
CapabilityClient เพื่อโฆษณาการมีอยู่ของแอป
ไปยังอุปกรณ์ที่จับคู่ไว้ โดยสามารถทำได้ทั้งแบบคงที่และแบบไดนามิก
เมื่อแอป
อยู่ในโหนดในเครือข่าย Wear OS ของผู้ใช้ เช่น ในโทรศัพท์ นาฬิกาที่จับคู่ หรือ
ในระบบคลาวด์ CapabilityClient จะช่วยให้แอปอื่นๆ
ตรวจหาแอปนั้นได้ ดูข้อมูลเพิ่มเติมได้ที่
ความสามารถในการโฆษณา
หากแอปใดแอปหนึ่งตรวจหาอีกแอปหนึ่งไม่ได้ คุณสามารถแจ้งให้ผู้ใช้เปิดข้อมูล Play 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 Provider (FLP) เพื่อรับข้อมูลตำแหน่งในนาฬิกา ดูข้อมูลเพิ่มเติมได้ที่ ตรวจหาตำแหน่งใน Wear OS
หากมีโทรศัพท์ที่ใช้ร่วมกัน FLP จะใช้โทรศัพท์ที่ใช้ร่วมกันสำหรับ ข้อมูลตำแหน่ง
รับเฉพาะข้อมูลที่จำเป็น
โดยทั่วไป เมื่อได้รับข้อมูลจากอินเทอร์เน็ต ให้รับเฉพาะข้อมูลที่จำเป็นเท่านั้น มิเช่นนั้น คุณอาจทำให้เกิดเวลาในการตอบสนอง การใช้หน่วยความจำ และการใช้แบตเตอรี่ที่ไม่จำเป็น
เมื่อนาฬิกาเชื่อมต่อผ่านการเชื่อมต่อ Bluetooth LE แอปอาจ มีสิทธิ์เข้าถึงแบนด์วิดท์เพียง 4 กิโลไบต์ต่อวินาที ทั้งนี้ขึ้นอยู่กับ นาฬิกา ดังนั้น เราขอแนะนำให้ทำตามขั้นตอนต่อไปนี้
- ตรวจสอบคำขอและการตอบกลับของเครือข่ายเพื่อหาข้อมูลเพิ่มเติมที่จำเป็นสำหรับแอปโทรศัพท์เท่านั้น
- ย่อขนาดรูปภาพขนาดใหญ่ก่อนส่งผ่านเครือข่ายไปยังนาฬิกา
สำหรับกรณีที่จำเป็นต้องใช้เครือข่ายที่มีแบนด์วิดท์สูง โปรดดู การเข้าถึงเครือข่ายที่มีแบนด์วิดท์สูง
ตัวอย่างโค้ดเพิ่มเติม
ตัวอย่างผู้ช่วย Data Layer แสดงให้เห็นถึงการใช้ API ที่กล่าวถึงในหน้านี้เพิ่มเติม