वॉच फ़ेस पर सूचनाएं भेजना

Wear OS 6 में एक नया एपीआई, वॉच फ़ेस पुश जोड़ा गया है. इससे, वॉच फ़ेस पब्लिश करने के ज़्यादा बेहतर उदाहरणों के लिए अवसर मिलते हैं.

यह पता लगाना कि Watch Face Push का इस्तेमाल कब करना है

स्मार्टवॉच की होम स्क्रीन को पुश करने वाला एपीआई, Wear OS पर मौजूद एक एपीआई है. इसकी मदद से, डेवलपर स्मार्टवॉच की होम स्क्रीन को सीधे तौर पर जोड़ सकता है, अपडेट कर सकता है या हटा सकता है. स्मार्टवॉच की स्टैंडर्ड होम स्क्रीन को डिज़ाइन करने के लिए, इसकी ज़रूरत नहीं होती.

Watch Face Push के साथ इस्तेमाल की जाने वाली स्मार्टवॉच की होम स्क्रीन, Watch Face Format का इस्तेमाल करके लिखी जानी चाहिए. इसमें Watch Face Studio या किसी ऐसे अन्य टूल का इस्तेमाल करके डिज़ाइन की गई वॉच फ़ेस शामिल हो सकती हैं जो Watch Face Format का इस्तेमाल करके वॉच फ़ेस बनाता है.

Watch Face Push API का इस्तेमाल कई तरीकों से किया जा सकता है. हालांकि, इसका इस्तेमाल करने के मुख्य उदाहरणों के लिए, यहां दी गई टेबल का इस्तेमाल गाइड के तौर पर किया जाना चाहिए:

इस्तेमाल का उदाहरण अनुशंसित समाधान जटिलता
मुझे स्मार्टवॉच की अलग-अलग होम स्क्रीन बनानी हैं और उन्हें पब्लिश करना है. सीधे तौर पर या Watch Face Studio जैसे टूल का इस्तेमाल करके, Watch Face Format का इस्तेमाल करें और उन्हें Google Play पर पब्लिश करें. कम
मुझे एक ऐसा फ़ोन ऐप्लिकेशन बनाना है जिससे उपयोगकर्ता, चुने गए कलेक्शन से वॉच फ़ेस चुन सकें. इसके अलावा, वे सीधे अपनी Wear OS स्मार्टवॉच पर इंस्टॉल करने के लिए, वॉच फ़ेस को डिज़ाइन और पसंद के मुताबिक बना सकें. स्मार्टवॉच पर Watch Face Push API का इस्तेमाल करके, स्मार्टवॉच और फ़ोन, दोनों के लिए ऐप्लिकेशन बनाएं. ज़्यादा

मकसद

स्मार्ट वॉच की होम स्क्रीन के लिए Push API का इस्तेमाल, मार्केटप्लेस ऐप्लिकेशन बनाने के लिए किया जाता है. इस ऐप्लिकेशन से, उपयोगकर्ता अपने फ़ोन पर चुने गए कलेक्शन से स्मार्ट वॉच की होम स्क्रीन चुन सकते हैं. साथ ही, कनेक्ट की गई स्मार्ट वॉच पर इन होम स्क्रीन को सीधे तौर पर इंस्टॉल कर सकते हैं.

ज़रूरी बातें

स्मार्टवॉच की होम स्क्रीन बनाने के बारे में ज़्यादा जानने के लिए, Watch Face Format के लिए बने दिशा-निर्देश देखें: Watch Face Push का इस्तेमाल करके डिप्लॉय की गई होम स्क्रीन, Watch Face Format की सामान्य होम स्क्रीन होती हैं.

स्मार्टवॉच की होम स्क्रीन बनाते समय, इन बातों का ध्यान रखें.

पैकेज के नाम

Watch Face Push का इस्तेमाल करके इंस्टॉल की गई स्मार्टवॉच की होम स्क्रीन, यहां दिए गए कॉन्वेंशन के मुताबिक होनी चाहिए:

<app name>.watchfacepush.<watchface name>

... जहां <app name>, Watch Face Push API को कॉल करने वाले ऐप्लिकेशन का पैकेज नाम है.

उदाहरण के लिए, com.example.mymarketplace पैकेज वाले ऐप्लिकेशन के लिए, स्मार्टवॉच की होम स्क्रीन के पैकेज के ये नाम मान्य हैं:

  • com.example.mymarketplace.watchfacepush.watchface1
  • com.example.mymarketplace.watchfacepush.watchface2
  • com.example.mymarketplace.watchfacepush.another_watchface

इस नियम का पालन न करने वाली स्मार्टवॉच की होम स्क्रीन, एपीआई स्वीकार नहीं करता.

पैकेज में शामिल कॉन्टेंट

APK के कॉन्टेंट को सख्ती से लागू किया जाता है. यह पक्का करने के लिए ध्यान रखना ज़रूरी है कि स्मार्टवॉच की होम स्क्रीन का फ़ॉर्मैट, इन सीमाओं के मुताबिक हो: तकनीकी रूप से, ऐसे Watch Face Format APK बनाए जा सकते हैं जिनमें नुकसान पहुंचाने वाली मेटाडेटा फ़ाइलें और अन्य आर्टफ़ैक्ट शामिल हों. ये फ़ाइलें Google Play को स्वीकार हो सकती हैं, लेकिन स्मार्टवॉच की होम स्क्रीन के लिए पुश की जाने वाली पुष्टि की प्रक्रिया को पास नहीं कर पाती हैं. इस बारे में ज़्यादा जानकारी यहां दी गई है.

स्मार्टवॉच की हर होम स्क्रीन के APK में, सिर्फ़ ये फ़ाइलें/पाथ इस्तेमाल किए जा सकते हैं:

  • /AndroidManifest.xml
  • /resources.arsc
  • /res/**
  • /META-INF/**

इसके अलावा, AndroidManifest.xml फ़ाइल में सिर्फ़ इन टैग का इस्तेमाल किया जा सकता है:

  • <manifest>
  • <uses-feature>
  • <uses-sdk>
  • <application>
  • <property>
  • <meta-data>

आखिर में, पैकेज में कम से कम 33 minSdk होने चाहिए. साथ ही, <application> टैग में एट्रिब्यूट android:hasCode="false" की जानकारी होनी चाहिए.

पुष्टि करें

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

Google Play, Watch Face Push का इस्तेमाल करने वाली हर वॉच फ़ेस की क्वालिटी की पुष्टि करने के लिए, इन जांचों का इस्तेमाल करता है:

  1. Watch Face Push API की मदद से इंस्टॉल या अपडेट की गई सभी वॉच फ़ेस, Watch Face Push की पुष्टि करने वाले टूल की ज़रूरी शर्तें पूरी करनी चाहिए.
  2. एपीआई के साथ इस्तेमाल करने के लिए, पुष्टि करने वाले टोकन जनरेट करने के लिए, सिर्फ़ पुष्टि करने वाले आधिकारिक टूल का इस्तेमाल किया जा सकता है.
  3. पुष्टि करने के लिए इस्तेमाल किया गया टूल, पुष्टि करने के समय अप-टू-डेट होना चाहिए.
  4. जिस APK में कोई बदलाव नहीं हुआ है उसकी फिर से पुष्टि करने की ज़रूरत नहीं है. टोकन की समयसीमा खत्म नहीं होती. भले ही, पुष्टि करने वाले टूल का इस्तेमाल किया गया वर्शन, अब काम न करता हो.

    साथ ही, हमारा सुझाव है कि आप समय-समय पर पुष्टि की प्रोसेस फिर से चलाएं, क्योंकि पुष्टि करने वाला टूल समय-समय पर अपडेट किया जाता है.

पुष्टि करने वाला प्रोग्राम चलाना

पुष्टि करने वाला टूल, सीएलआई टूल या लाइब्रेरी, दोनों के तौर पर उपलब्ध है.

कमांड-लाइन की मदद से पुष्टि करने वाले टूल का इस्तेमाल

  1. Google की Maven रिपॉज़िटरी से पुष्टि करने वाला टूल पाएं.
  2. टूल को इस तरह चलाएं:

    java -jar validator-push-cli-1.0.0-alpha03.jar \
        --apk_path=<your watch face>.apk \
        --package_name=<your marketplace package name>
    

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

    अगर कोई गड़बड़ी होती है, तो आउटपुट में यह जानकारी शामिल होती है कि कौनसी जांच पूरी नहीं हो सकी.

लाइब्रेरी की पुष्टि करने वाले टूल का इस्तेमाल

  1. पुष्टि करने वाली डिपेंडेंसी के लिए ज़रूरी Jitpack रिपॉज़िटरी शामिल करें:

    repositories {
        ...
        maven {
            url = uri("https://jitpack.io")
            content {
                includeGroup("com.github.xgouchet")
            }
        }
    }
    
  2. अपने प्रोजेक्ट में पुष्टि करने वाली डिपेंडेंसी शामिल करें:

    // Check for the latest version
    implementation("com.google.android.wearable.watchface.validator:1.0.0-alpha03")
    
  3. पुष्टि करने वाले प्रोग्राम को चलाएं:

    val validator = DwfValidatorFactory.create()
    val result = validator.validate(watchFaceFile, appPackageName)
    
    if (result.failures().isEmpty()) {
        val token = result.validationToken()
        println("Validation token: $token")
    
        // Validation success - continue with the token
        // ...
    } else {
        // There were failures, handle them accordingly - validation has failed.
        result.failures().forEach { failure ->
            println("FAILURE: ${failure.name()}: ${failure.failureMessage()}")
            // ...
        }
    }
    

इस लाइब्रेरी का इस्तेमाल करने का उदाहरण देखने के लिए, GitHub पर मौजूद सैंपल देखें.

APK का साइज़

स्मार्टवॉच की होम स्क्रीन को फ़ोन से पुश करने की सुविधा का इस्तेमाल करते समय, APK का साइज़ कम से कम रखने का ध्यान रखना चाहिए: स्मार्टवॉच की होम स्क्रीन का APK, फ़ोन ऐप्लिकेशन से स्मार्टवॉच ऐप्लिकेशन पर ब्लूटूथ के ज़रिए भेजा जाता है. यह प्रोसेस धीमी हो सकती है.

बहुत बड़े APK को ट्रांसफ़र करने में काफ़ी समय लग सकता है. इससे, उपयोगकर्ता को खराब अनुभव मिलता है और बैटरी भी खर्च होती है.

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

APK के साइज़ को कम रखने के बारे में ज़्यादा सुझाव पाने के लिए, मेमोरी के इस्तेमाल को ऑप्टिमाइज़ करने के लिए दिशा-निर्देश देखें.

APK पर हस्ताक्षर करना

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

भवन निर्माण

सिस्टम के तीन मुख्य कॉम्पोनेंट पर ध्यान दें:

  1. क्लाउड-आधारित स्टोरेज: कैननिकल मार्केटप्लेस ऐप्लिकेशन में, आपकी स्मार्टवॉच की होम स्क्रीन को क्लाउड में बनाया और स्टोर किया जाता है. इसके बाद, उपयोगकर्ता उन्हें इस्तेमाल कर सकते हैं. स्मार्टवॉच की होम स्क्रीन ये हैं:
    1. सामान्य Watch Face Format APK के तौर पर पहले से बने हुए
    2. हर ऐप्लिकेशन में, Watch Face Format पर आधारित सिर्फ़ एक वॉच फ़ेस हो
    3. स्मार्टवॉच की होम स्क्रीन की पुष्टि करने की प्रोसेस का इस्तेमाल करके, पुष्टि की गई हो और पुष्टि करने वाले टोकन के साथ सेव किए गए हों.
    4. ज़रूरत पड़ने पर, आपके फ़ोन ऐप्लिकेशन से वापस पाया जा सकता है.
  2. फ़ोन ऐप्लिकेशन: फ़ोन ऐप्लिकेशन, आपके सिस्टम के साथ उपयोगकर्ताओं के इंटरैक्ट करने का मुख्य तरीका है. इससे वे ये काम कर सकते हैं:
    1. स्मार्टवॉच की होम स्क्रीन के कैटलॉग को ब्राउज़ करना और खोजना
    2. स्मार्ट वॉच पर होम स्क्रीन इंस्टॉल करना या बदलना
  3. स्मार्टवॉच के लिए ऐप्लिकेशन: आम तौर पर, स्मार्टवॉच के लिए ऐप्लिकेशन में कोई खास यूज़र इंटरफ़ेस नहीं होता. यह मुख्य रूप से फ़ोन ऐप्लिकेशन और स्मार्टवॉच की होम स्क्रीन के लिए Push API के बीच एक ब्रिज की तरह काम करता है. इसमें ये सुविधाएं शामिल हैं:
    1. स्मार्ट वॉच की होम स्क्रीन इंस्टॉल/अपडेट या बदलने के लिए, Watch Face Push API का इस्तेमाल करना
    2. ज़रूरी अनुमतियों का अनुरोध करना और उपयोगकर्ता को सूचना देना
    3. स्मार्टवॉच की डिफ़ॉल्ट होम स्क्रीन सेट करना
    4. स्मार्टवॉच की होम स्क्रीन का कम से कम कैश मेमोरी देना
  4. फ़ोन और स्मार्टवॉच के बीच कम्यूनिकेशन: फ़ोन और स्मार्टवॉच ऐप्लिकेशन के बीच कम्यूनिकेशन, बेहतर अनुभव के लिए ज़रूरी है. Wear OS डेटा लेयर एपीआई का इस्तेमाल करें. इनकी मदद से:
    1. इंस्टॉलेशन का पता लगाना: सुविधाओं और CapabilityClient का इस्तेमाल करके, फ़ोन ऐप्लिकेशन स्मार्टवॉच ऐप्लिकेशन के न होने का पता लगा सकता है. इसके अलावा, स्मार्टवॉच ऐप्लिकेशन भी फ़ोन ऐप्लिकेशन के न होने का पता लगा सकता है. इसके बाद, Play Store पर जाकर, डिवाइस के लिए उपलब्ध फ़ॉर्म फ़ैक्टर इंस्टॉल किया जा सकता है.
    2. स्टेटस मैनेजमेंट: DataClient या MessageClient का इस्तेमाल करके, फ़ोन को स्मार्टवॉच की स्थिति के साथ सिंक किया जा सकता है. उदाहरण के लिए, यह पक्का करना कि फ़ोन को पता हो कि स्मार्टवॉच की होम स्क्रीन क्या है.
    3. APK ट्रांसमिशन: ChannelClient या MessageClient का इस्तेमाल करके, APKs को फ़ोन से स्मार्टवॉच पर भेजा जा सकता है
    4. रिमोट तरीके से कॉल करना: Messageclient का इस्तेमाल करके, फ़ोन से स्मार्टवॉच को Watch Face Push API को कॉल करने का निर्देश दिया जा सकता है. उदाहरण के लिए, स्मार्टवॉच की होम स्क्रीन को इंस्टॉल करने के लिए.

ज़्यादा जानकारी के लिए, Data Layer API के दिशा-निर्देश देखें.