แอป Wear OS แบบสแตนด์อโลนเทียบกับแอป Wear OS ที่ไม่สแตนด์อโลน

เราขอแนะนำให้แอป 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 จากนาฬิกา

แอปสมาร์ทวอทช์สามารถตรวจจับได้ว่าโทรศัพท์ที่ใช้ร่วมกันของผู้ใช้มี แอปโทรศัพท์ ให้คุณทำตามขั้นตอนต่อไปนี้

  1. ใช้เมนู CapabilityClient เพื่อตรวจสอบว่าติดตั้งแอปโทรศัพท์แล้วหรือไม่ ในโทรศัพท์ที่จับคู่ สำหรับข้อมูลเพิ่มเติม โปรดดู ตัวอย่างตัวช่วย dataLayer ใน GitHub
  2. หากไม่ได้ติดตั้งแอปโทรศัพท์ไว้ในโทรศัพท์ ให้ใช้ PhoneDeviceType.getPhoneDeviceType() เพื่อ ให้ตรวจสอบประเภทของโทรศัพท์ ดูรายละเอียดในส่วนต่อไปนี้
  3. ถ้า PhoneDeviceType.DEVICE_TYPE_ANDROID ส่งคืน โทรศัพท์นั้นเป็นโทรศัพท์ Android โทร RemoteActivityHelper.startRemoteActivity() ในอุปกรณ์ Wear OS เพื่อ เปิด Play Store ในโทรศัพท์ ใช้ URI ตลาดสำหรับโทรศัพท์ ซึ่งอาจแตกต่างจาก URI ของแอป Wear เช่น ใช้ URI ตลาด เช่น market://details?id=com.example.android.wearable.wear.finddevices
  4. ถ้า 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 ของผู้ใช้มี แอปสมาร์ทวอทช์ ให้คุณทำตามขั้นตอนต่อไปนี้

  1. การใช้ NodeClient ค้นหานาฬิกาทั้งหมดที่เชื่อมต่อกับ โทรศัพท์ สำหรับข้อมูลเพิ่มเติม โปรดดู ตัวอย่างตัวช่วย dataLayer ใน GitHub
  2. การใช้ CapabilityClient ตรวจสอบว่านาฬิกาใดของผู้ใช้ แอปของคุณติดตั้งอย่างไร
  3. หากไม่ได้ติดตั้งแอปในนาฬิกาทั้งหมดของผู้ใช้ ให้ผู้ใช้ เปิด 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 ที่กล่าวถึงในหน้านี้