รูปแบบของอุปกรณ์ขนาดเล็กที่อ่านง่ายของนาฬิกาทำให้ Wear OS เป็นแพลตฟอร์มที่เหมาะสำหรับแอป ที่บันทึก รายงาน และตอบกลับตำแหน่งของผู้ใช้ ตัวอย่างเช่น คุณสามารถสร้าง แอปที่ให้ข้อมูลอัปเดตแบบเรียลไทม์เกี่ยวกับระยะทาง ความเร็ว และทิศทางแก่ผู้ใช้ หรือให้ข้อมูลที่เข้าใจง่ายเกี่ยวกับ สภาพแวดล้อม
ดูข้อมูลเพิ่มเติมได้ที่สร้างแอปที่อิงตามตำแหน่ง
นาฬิกาบางเรือนมีเซ็นเซอร์ GPS ในตัวที่เรียกดูข้อมูลตำแหน่ง ต้องใช้โทรศัพท์ที่เชื่อมต่อ เมื่อคุณขอข้อมูลตำแหน่งในแอปสมาร์ทวอทช์ ระบบจะดึงข้อมูลตำแหน่งจากโทรศัพท์หรือนาฬิกาโดยใช้ แบบประหยัดพลังงาน ดังนั้น แม้จะไม่มีเซ็นเซอร์ GPS ในนาฬิกา คุณก็ยังสามารถ ดูข้อมูลตำแหน่ง
หากต้องการลดผลกระทบที่การได้มาซึ่งข้อมูลตำแหน่งต่ออายุการใช้งานแบตเตอรี่
โทร
setPriority()
ที่มีค่า
PRIORITY_BALANCED_POWER_ACCURACY
การตั้งค่าลำดับความสำคัญที่แตกต่างกันอาจ
เพิ่มประสิทธิภาพชิปต่างกัน
เมื่อทำได้ ช่วยประหยัดแบตเตอรี่ด้วยการบอกตำแหน่งโดยไม่ระบุตำแหน่งอีกต่อไป
มากกว่า 1 ครั้งต่อนาทีโดยใช้
setInterval()
ดังที่อธิบายไว้ในส่วนต่อไปนี้ แอปของคุณต้องจัดการกับการสูญเสีย ข้อมูลตำแหน่งเมื่อนาฬิกาที่ไม่มีเซ็นเซอร์ยกเลิกการเชื่อมต่อกับโทรศัพท์
เลือกวิธีการ
คุณให้ข้อมูลตำแหน่งแก่แอป Wear OS ได้ 2 วิธีดังนี้ คุณสามารถ ใช้ Fused Location Provider (FLP) หรือ Wear Health Services (WHS) FLP คือ API ของบริการ Google Play
ใช้ FLP ในสถานการณ์ต่อไปนี้
- คุณต้องการข้อมูลตำแหน่ง ณ ขณะนั้น แต่จะไม่ได้ต่อเนื่อง เช่น การทำเครื่องหมาย ตำแหน่งของรถที่จอด
- คุณต้องการดูตำแหน่งอย่างต่อเนื่อง แต่ไม่ต้องการประวัติตำแหน่ง
ใช้ WHS ในสถานการณ์ต่อไปนี้
- คุณต้องการข้อมูลจากเซ็นเซอร์อื่นๆ หรือมีแนวโน้มที่จะต้องการข้อมูลจากเซ็นเซอร์อื่นๆ เซ็นเซอร์ต่างๆ ในอนาคต
- แอปของคุณเป็นแอปออกกำลังกายหรือออกกำลังกายที่ต้องติดตามข้อมูลตำแหน่ง ช่วงเวลาที่เจาะจง
สำหรับนาฬิกาที่จับคู่กับ iPhone โปรดดู ข้อมูลตำแหน่งของนาฬิกาที่จับคู่กับ iPhone
ใช้ผู้ให้บริการ Fused Location
รับข้อมูลตำแหน่งในนาฬิกาโดยใช้
FusedLocationProviderClient
FLP อาจใช้ข้อมูลตำแหน่งจากโทรศัพท์ สำหรับข้อมูลเพิ่มเติม โปรดดู
สร้างไคลเอ็นต์บริการตำแหน่ง
สําหรับข้อมูลเกี่ยวกับการขออัปเดตตำแหน่งและติดตามอย่างต่อเนื่อง ตําแหน่งของผู้ใช้ โปรดดูหัวข้อขออัปเดตตำแหน่ง
ตรวจหา GPS ในเครื่อง
หากผู้ใช้ไปวิ่งออกกำลังกายโดยมีนาฬิกาที่ไม่มีเซ็นเซอร์ GPS ในตัวแล้วออกไป โทรศัพท์ที่จับคู่อยู่ด้านหลัง แอปนาฬิกาของคุณไม่สามารถรับข้อมูลตำแหน่งผ่าน อุปกรณ์ที่เชื่อมต่ออยู่ ตรวจจับสถานการณ์นี้ในแอปของคุณและเตือนผู้ใช้ว่า ไม่สามารถใช้งานตำแหน่งได้
หากต้องการดูว่านาฬิกามีเซ็นเซอร์ GPS ในตัวหรือไม่ ให้เรียกใช้
hasSystemFeature()
ด้วย
PackageManager.FEATURE_LOCATION_GPS
โค้ดต่อไปนี้จะตรวจหาว่านาฬิกามีเซ็นเซอร์ GPS ในตัวหรือไม่เมื่อคุณเริ่มกิจกรรม
Kotlin
override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.main_activity) if (!hasGps()) { Log.d(TAG, "This hardware doesn't have GPS.") // Fall back to functionality that doesn't use location or // warn the user that location function isn't available. } } private fun hasGps(): Boolean = packageManager.hasSystemFeature(PackageManager.FEATURE_LOCATION_GPS)
Java
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main_activity); if (!hasGps()) { Log.d(TAG, "This hardware doesn't have GPS."); // Fall back to functionality that doesn't use location or // warn the user that location function isn't available. } ... } private boolean hasGps() { return getPackageManager().hasSystemFeature(PackageManager.FEATURE_LOCATION_GPS); }
จัดการเหตุการณ์การขาดการเชื่อมต่อ
หากนาฬิกาไม่มีเซ็นเซอร์ GPS ในตัวและขาดการเชื่อมต่อกับโทรศัพท์ นาฬิกา สูญเสียสตรีมข้อมูลตำแหน่ง หากแอปคาดว่าจะมีสตรีมข้อมูลที่ต่อเนื่อง แอปของคุณต้องตรวจจับการสูญเสียการเชื่อมต่อ เตือนผู้ใช้ และ ของฟังก์ชันที่ลดลง
เช่นเดียวกับอุปกรณ์เคลื่อนที่ เมื่อคุณขออัปเดตตำแหน่งโดยใช้
FusedLocationProviderClient.requestLocationUpdates()
คุณจะสอบผ่าน
LocationCallback
หรือ
PendingIntent
ทั้ง 2 อย่างนี้มีข้อมูลตำแหน่งและ
LocationAvailability
สถานะ
เมื่อใช้ตัวเลือก LocationCallback
ระบบจะลบล้าง
onLocationAvailability()
เพื่อรับข้อมูลอัปเดตเกี่ยวกับสถานะความพร้อมใช้งานของสถานที่ตั้ง
เมื่อใช้ตัวเลือก PendingIntent
และ
ส่งคืน Intent
แล้ว โปรดดึงข้อมูลสถานที่ตั้ง
สถานะความพร้อมจำหน่ายสินค้าจาก Intent
โดยใช้
LocationAvailability.extractLocationAvailability(Intent)
ไม่พบตำแหน่งของแฮนเดิล
เมื่อสัญญาณ GPS หายไป คุณสามารถเรียกดูตำแหน่งสุดท้ายที่ทราบของ นาฬิกาของผู้ใช้ การเรียกดูตำแหน่งสุดท้ายที่ทราบมีประโยชน์เมื่อคุณไม่สามารถเรียกข้อมูล การแก้ไข GPS และเมื่อนาฬิกาไม่มี GPS ในตัวและสูญเสียการเชื่อมต่อกับ โทรศัพท์ สำหรับข้อมูลเพิ่มเติม โปรดดู ดูตำแหน่งสุดท้ายที่ทราบ
ล้างสถานที่ด้วยการโทรแบบกลุ่ม
หากคุณใช้การโทรแบบกลุ่ม ให้โทร
flushLocations()
เมื่อหน้าจอกลับมาเปิดหรือกลับจากโหมดแอมเบียนท์ไปยัง
แสดงสถานที่ตั้งแบบกลุ่มกลับไปยัง LocationListeners
ที่ลงทะเบียนไว้ทั้งหมดทันที
LocationCallbacks
และ Pending Intents
แนะนำสำหรับคุณ
- หมายเหตุ: ข้อความลิงก์จะแสดงเมื่อ JavaScript ปิดอยู่
- เพิ่มประสิทธิภาพตำแหน่งสำหรับแบตเตอรี่
- สร้างการแจ้งเตือน {:#notification}
- ตรวจจับเวลาที่ผู้ใช้เริ่มหรือสิ้นสุดกิจกรรม