Wear OS पर जगह की जानकारी का पता लगाएं

स्मार्टवॉच की स्क्रीन का साइज़ बहुत छोटा होता है और उसे स्क्रीन पर आसानी से देखा जा सकता है. इसलिए, यह ऐप्लिकेशन के लिए सबसे सही प्लैटफ़ॉर्म है उपयोगकर्ता की जगह की जानकारी को रिकॉर्ड, रिपोर्ट, और जवाब देने के लिए इस्तेमाल किया जाता है. उदाहरण के तौर पर, डेवलपर ऐसे ऐप्लिकेशन जो उपयोगकर्ताओं को उनकी दूरी, गति और दिशा के बारे में रीयल-टाइम अपडेट देते हैं, इसके अलावा, आस-पास.

ज़्यादा जानकारी के लिए, जगह की जानकारी का ऐक्सेस देने वाले ऐप्लिकेशन बनाना लेख पढ़ें.

कुछ स्मार्टवॉच में जीपीएस सेंसर पहले से मौजूद होता है, जो बिना किसी रुकावट के जगह की जानकारी का डेटा हासिल करता है इसके लिए, फ़ोन को कनेक्ट करना ज़रूरी है. जब स्मार्टवॉच के किसी ऐप्लिकेशन में जगह की जानकारी के डेटा का अनुरोध किया जाता है, यह सिस्टम, स्मार्टवॉच से जगह की जानकारी का पता लगाने के लिए, कम ऊर्जा का इस्तेमाल किया जाता है. तो घड़ी में GPS सेंसर के बिना भी आप अब भी स्थान जानकारी पाएं.

बैटरी लाइफ़ पर, जगह की जानकारी का डेटा हासिल करने के असर को कम करने के लिए, कॉल करें setPriority() इस वैल्यू का इस्तेमाल करें PRIORITY_BALANCED_POWER_ACCURACY. प्राथमिकता सेटिंग में बदलाव हो सकता है चिप को अलग तरीके से ऑप्टिमाइज़ करें.

जब भी हो सके, जगह की जानकारी माँगकर बैटरी बचाएं प्रति मिनट एक बार से ज़्यादा दिखाने के लिए setInterval().

जैसा कि नीचे दिए गए सेक्शन में बताया गया है, आपके ऐप्लिकेशन को गेम में अपने-आप होने वाली बढ़ोतरी जगह की जानकारी का डेटा जब बिना सेंसर वाली स्मार्टवॉच, फ़ोन से डिसकनेक्ट हो जाती है.

अपना तरीका चुनें

Wear OS ऐप्लिकेशन को जगह की जानकारी का डेटा देने के कई तरीके हैं. आप Fused Location Provider (FLP) का इस्तेमाल करें या Wear Health Services (डब्ल्यूएचएस). FLP Google Play services का एपीआई.

इन स्थितियों में FLP का इस्तेमाल करें:

  • आपको उसी क्षण में स्थान डेटा चाहिए, लेकिन लगातार नहीं, जैसे पार्क की गई कार की जगह की जानकारी.
  • आपको जगह की जानकारी लगातार चाहिए, लेकिन आपको जगह की जानकारी के इतिहास की ज़रूरत नहीं है.

इन स्थितियों में WHS का इस्तेमाल करें:

  • आपको अन्य सेंसर से डेटा चाहिए या अन्य सेंसर से डेटा चाहिए आने वाले समय में इस्तेमाल किया जा सकता है.
  • आपका ऐप्लिकेशन, कसरत या कसरत के लिए है, तो आपको अपनी जगह की जानकारी का डेटा ट्रैक करने की ज़रूरत है किसी तय समयावधि में.

iPhone से जोड़ी गई स्मार्टवॉच के लिए, यहां देखें iPhone से जोड़ी गई स्मार्टवॉच की जगह की जानकारी का डेटा.

कई तरह से जांची गई सही जगह की जानकारी देने वाली कंपनी का इस्तेमाल करना

स्मार्टवॉच पर, FusedLocationProviderClient. FLP, फ़ोन की जगह की जानकारी का डेटा इस्तेमाल कर सकता है. ज़्यादा जानकारी के लिए, यह देखें जगह की जानकारी से जुड़ा क्लाइंट बनाएं.

जगह की जानकारी के अपडेट का अनुरोध करने और किसी भी जगह की लगातार निगरानी करने के बारे में जानकारी के लिए उपयोगकर्ता का स्थान, स्थान अपडेट का अनुरोध करें देखें.

ऑन-बोर्ड GPS का पता लगाएं

अगर कोई उपयोगकर्ता ऐसी स्मार्टवॉच से जॉगिंग करता है जिसमें जीपीएस सेंसर पहले से मौजूद नहीं होता है तो आपका घड़ी ऐप्लिकेशन कनेक्ट किया गया डिवाइस. अपने ऐप्लिकेशन में इस स्थिति का पता लगाएं और उपयोगकर्ता को चेतावनी दें कि जगह की जानकारी की सुविधाएं उपलब्ध नहीं हैं.

यह पता लगाने के लिए कि आपकी घड़ी में बिल्टइन GPS सेंसर है या नहीं, hasSystemFeature() पहला तरीका PackageManager.FEATURE_LOCATION_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);
}

डिसकनेक्ट करने के इवेंट मैनेज करना

अगर किसी स्मार्टवॉच में जीपीएस सेंसर मौजूद नहीं है और वह फ़ोन से कनेक्ट नहीं है, तो स्मार्टवॉच अपनी जगह की जानकारी की डेटा स्ट्रीम को खो देता है. अगर आपके ऐप्लिकेशन को लगातार डेटा स्ट्रीम करने की उम्मीद है, तो ऐप्लिकेशन को इंटरनेट कनेक्शन बंद होने का पता लगाना चाहिए, उपयोगकर्ता को चेतावनी देनी चाहिए, और काम करने के तरीके में गिरावट आई है.

मोबाइल डिवाइस की तरह ही, जब आप इसका उपयोग करके स्थान अपडेट का अनुरोध करते हैं FusedLocationProviderClient.requestLocationUpdates(), आपको इनमें से किसी एक LocationCallback या PendingIntent. इन दोनों में जगह की जानकारी और LocationAvailability स्थिति.

LocationCallback विकल्प का इस्तेमाल करते समय, इसे बदलें जगह की उपलब्धता की स्थिति से जुड़े अपडेट पाने के लिए onLocationAvailability().

PendingIntent विकल्प का इस्तेमाल करते समय और Intent लौटाया गया, जगह की जानकारी एक्सट्रैक्ट करें उपलब्धता की स्थिति Intent से देखें. इसके लिए, LocationAvailability.extractLocationAvailability(Intent) तरीका.

हैंडल की जगह की जानकारी नहीं मिली

GPS सिग्नल खो जाने पर, आप इसका पिछला ज्ञात स्थान पुनर्प्राप्त कर सकते हैं उपयोगकर्ता की स्मार्टवॉच पर. कोई अंतिम ज्ञात स्थान प्राप्त करने से तब सहायता मिलती है, जब आप GPS फ़िक्स किया गया और जब घड़ी में बिल्टइन GPS नहीं होता है और फ़ोन. ज़्यादा जानकारी के लिए, यह देखें पता लगाएं कि आखिरी बार डिवाइस कहां पर था.

बैच किए गए कॉल से स्थान फ़्लश करें

अगर एक साथ किए जाने वाले कॉल का इस्तेमाल किया जा रहा है, तो flushLocations() जब स्क्रीन चालू हो जाती है या ऐंबियंट मोड से वापस आती है बैच में बनाई गई जगहों को तुरंत सभी रजिस्टर किए गए LocationListeners को वापस लौटाते हैं, LocationCallbacks, और Pending Intents.