เราขอแนะนำให้แอป 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 ของแอป
ในการระบุว่าเป็นแอปสมาร์ทวอทช์ ให้เพิ่มข้อมูลดังต่อไปนี้
<manifest> ... <uses-feature android:name="android.hardware.type.watch" /> ... </manifest>
ระบุแอปแบบสแตนด์อโลนหรือไม่ใช่สแตนด์อโลน
แอปสมาร์ทวอทช์ถือว่าเป็นแอปแบบสแตนด์อโลนหรือไม่ใช่สแตนด์อโลน
- สแตนด์อโลน: แอปอิสระที่ไม่ต้องใช้แอปโทรศัพท์เป็นบริการหลัก ใหม่ๆ แม้ว่า "เปิดบนโทรศัพท์" สามารถยอมรับได้ แอปจะต้องให้บริการ คือการดำเนินการที่ผู้ใช้ต้องใช้ฟังก์ชันของแอปให้เสร็จสิ้น เช่น ลิงก์ย่อหรือคิวอาร์โค้ด โดยไม่ต้อง บนโทรศัพท์ที่มีการเชื่อมต่ออินเทอร์เน็ตผ่านมือถือ
- ไม่สแตนด์อโลน: แอปที่เกี่ยวข้องซึ่งต้องใช้แอปในโทรศัพท์หรืออุปกรณ์อื่น ฟีเจอร์หลักต่างๆ ตัวเลือกนี้เหมาะที่สุดกับแอปที่แอปไม่สามารถ ให้วิธีการอื่น เช่น คิวอาร์โค้ดหรือลิงก์แบบสั้น ทำให้ฟังก์ชันหลักของแอปเสร็จสมบูรณ์ เช่น การตรวจสอบสิทธิ์
หมายเหตุ: แม้จะไม่ใช่แอปแบบสแตนด์อโลน ผู้ใช้สามารถติดตั้งแอป มีแอป 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
:
<application> ... <meta-data android:name="com.google.android.wearable.standalone" android:value="true" /> ... </application>
หากแอปนาฬิกาของคุณไม่ใช่แอปแบบสแตนด์อโลนและต้องอาศัยแอปอื่นสำหรับฟีเจอร์หลัก
ตั้งค่า com.google.android.wearable.standalone
เป็น
false
แสดงว่าแอปสมาร์ทวอทช์ต้องใช้อุปกรณ์อื่น แต่ไม่ได้ใช้
มีผลต่อการโปรโมตแอปใน Google Play Store
หมายเหตุ
แม้ว่าค่าของ com.google.android.wearable.standalone
จะเป็น
false
นาฬิกา
สามารถติดตั้งแอปได้ก่อนที่จะติดตั้งแอปโทรศัพท์
ดังนั้นหากแอปสมาร์ทวอทช์
ตรวจพบว่าโทรศัพท์ร่วม
ไม่มีแอปโทรศัพท์ที่จำเป็น ตามที่อธิบายไว้ในหน้านี้
แจ้งให้ผู้ใช้ติดตั้งแอปโทรศัพท์
โค้ดและพื้นที่เก็บข้อมูลที่ใช้ร่วมกัน
คุณแชร์รหัสระหว่างแอป Wear OS กับแอปโทรศัพท์ได้ ตัวอย่างเช่น โค้ดทั่วไปสำหรับเครือข่ายอาจอยู่ในไลบรารีที่ใช้ร่วมกัน
รหัส (ไม่บังคับ) ที่เฉพาะเจาะจงสำหรับรูปแบบของอุปกรณ์สามารถอยู่ในโมดูลแยกต่างหากได้
คุณสามารถใช้ API พื้นที่เก็บข้อมูลของ Android แบบมาตรฐานเพื่อจัดเก็บข้อมูลไว้ในเครื่องได้ บนโทรศัพท์ ตัวอย่างเช่น คุณสามารถใช้ ค่ากำหนดที่ใช้ร่วมกัน API หรือห้อง ความต่อเนื่องของไลบรารี
ตรวจหาแอปในอุปกรณ์อื่น
แอปสมาร์ทวอทช์และแอปโทรศัพท์ที่เกี่ยวข้อง แต่ละแอปสามารถตรวจหาว่าแอปอื่นๆ พร้อมใช้งานหรือไม่
แอปโทรศัพท์และนาฬิกาจะใช้
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
เพื่อตรวจสอบว่าติดตั้งแอปโทรศัพท์แล้วหรือไม่ ในโทรศัพท์ที่จับคู่ สำหรับข้อมูลเพิ่มเติม โปรดดู ตัวอย่างตัวช่วย dataLayer ใน 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 ร้านค้าพร้อมใช้งาน เปิด 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()
เพื่อ
ให้ตรวจสอบประเภทโทรศัพท์ที่จับคู่นาฬิกา
Kotlin
var phoneDeviceType: Int = PhoneDeviceType.getPhoneDeviceType(context)
Java
int phoneDeviceType = PhoneDeviceType.getPhoneDeviceType(context);
ค่าที่ getPhoneDeviceType()
แสดงผล
คืออย่างใดอย่างหนึ่งต่อไปนี้
ผลลัพธ์ | คำอธิบาย |
---|---|
DEVICE_TYPE_ANDROID
|
โทรศัพท์ที่ใช้ร่วมกันเป็นอุปกรณ์ Android |
DEVICE_TYPE_IOS
|
โทรศัพท์ที่ใช้ร่วมกันเป็นอุปกรณ์ iOS |
DEVICE_TYPE_UNKNOWN
|
โทรศัพท์ที่ใช้ร่วมกันเป็นอุปกรณ์ที่ไม่รู้จัก |
DEVICE_TYPE_ERROR
|
เกิดข้อผิดพลาดขณะระบุประเภทโทรศัพท์ที่จับคู่ เช็คอีกรายการ ควรสร้างในภายหลัง |
การตรวจหาแอปเริ่มต้นจากโทรศัพท์ Android
โทรศัพท์ Android จะตรวจสอบได้ว่าอุปกรณ์ Wear OS ของผู้ใช้มี แอปสมาร์ทวอทช์ ให้คุณทำตามขั้นตอนต่อไปนี้
-
การใช้
NodeClient
ค้นหานาฬิกาทั้งหมดที่เชื่อมต่อกับ โทรศัพท์ สำหรับข้อมูลเพิ่มเติม โปรดดู ตัวอย่างตัวช่วย dataLayer ใน 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 จะใช้โทรศัพท์ที่ใช้ร่วมกันเพื่อ ข้อมูลสถานที่
รับเฉพาะข้อมูลที่จำเป็น
โดยทั่วไปแล้ว เมื่อรับข้อมูลจากอินเทอร์เน็ต ดาวน์โหลดเฉพาะ ข้อมูลที่จําเป็น มิฉะนั้น อาจทำให้เกิดเวลาในการตอบสนองและหน่วยความจำโดยไม่จำเป็น และการใช้งานแบตเตอรี่
เมื่อเชื่อมต่อนาฬิกาผ่านบลูทูธ LE แอปของคุณอาจ มีสิทธิ์เข้าถึงแบนด์วิดท์เพียง 4 กิโลไบต์ต่อวินาที ขึ้นอยู่กับ บนนาฬิกา เราจึงขอแนะนำขั้นตอนต่อไปนี้
- ตรวจสอบคำขอและการตอบกลับของเครือข่ายสำหรับข้อมูลเพิ่มเติมที่มีเพียง ที่จำเป็นสำหรับแอปโทรศัพท์
- ย่อรูปภาพขนาดใหญ่ก่อนที่จะส่งผ่านเครือข่ายไปยังนาฬิกา
สำหรับกรณีที่จำเป็นต้องใช้เครือข่ายแบนด์วิดท์สูง โปรดดู การเข้าถึงเครือข่ายแบนด์วิดท์สูง
ตัวอย่างโค้ดเพิ่มเติม
ตัวอย่างตัวช่วยเหลือ dataLayer จะสาธิตเพิ่มเติมถึงการใช้ API ที่กล่าวถึงในหน้านี้