نمای کلی Data Layer API

گره مبتنی بر ابر توسط سروری تحت مالکیت Google کنترل می‌شود
شکل ۱. نمونه‌ای از شبکه گره‌ها با دستگاه‌های دستی و Wear OS.

Wearable Data Layer API که بخشی از «خدمات Google Play» است، کانال ارتباطی بین دستگاه‌های پوشیدنی (مثل ساعت‌های هوشمند) و دستگاه‌های دستی متصل (معمولاً تلفن‌های هوشمند) را فراهم می‌کند. این روشی برای همگام‌سازی و انتقال داده بین دستگاه‌ها است.

توجه: این API فقط در ساعت‌های Wear OS و دستگاه‌های Android جفت‌شده دردسترس است. برای ساعت‌های Wear OS جفت‌شده با تلفن‌های iOS، برنامه‌ها می‌توانند درصورت دردسترس بودن اتصال اینترنت، میاناهای برنامه‌سازی کاربردی ابری دیگر را پُرسمان کنند. برای اطلاعات بیشتر درباره این میاناهای برنامه‌سازی کاربردی دیگر، به دسترسی به شبکه و همگام‌سازی در Wear OS مراجعه کنید.

احتیاط: چون میاناهای برنامه‌سازی کاربردی لایه داده برای ارتباط بین دستگاه‌های دستی و پوشیدنی‌ها طراحی شده‌اند، این‌ها تنها میاناهای برنامه‌سازی کاربردی هستند که می‌توانید برای راه‌اندازی ارتباط بین این دستگاه‌ها استفاده کنید. برای مثال، سعی نکنید سوکت‌های سطح پایین را برای ایجاد کانال ارتباطی باز کنید.

موارد استفاده رایج

وقتی تعامل صرفاً بین ساعت و تلفن است، از Data Layer API استفاده کنید. برای مثال:

  • کنترل از دور: ساعت به‌عنوان کنترل از دور برای تلفن عمل می‌کند (مثلاً کنترل پخش‌کننده موسیقی درحال اجرا در تلفن، اسلاید ارائه، عمل کردن به‌عنوان شاتر دوربین).
  • راه‌اندازی برنامه دستی: ویژگی دکمه «باز کردن در تلفن».
  • پل اصالت‌سنجی: ارسال کد جلسه از تلفن به ساعت درطول راه‌اندازی اولیه.

بسیاری از سناریوهای رایج باید به‌جای آن از زیرساخت ابری موجود شما استفاده کنند، برای مثال:

  • ذخیره داده‌ها: تمرینات، یادداشت‌ها.
  • واکشی محتوا: بار کردن فهرست تمرین‌های گذشته، بارگیری موسیقی، واکشی آب‌وهوا.
  • وضعیت همگام‌سازی: اگر کاربر عکس نمایه‌اش را در وب تغییر دهد، ساعت بااستفاده از فضای ابری به‌روز می‌شود، نه با پرس‌وجو از تلفن.

برای این سناریوها، به‌جای Data Layer API، از زیرساخت و نقاط پایانی موجود خودتان استفاده کنید.

گزینه‌های ارتباطی

داده‌ها به یکی از روش‌های زیر منتقل می‌شود:

  1. مستقیماً، وقتی اتصال بلوتوث بین دستگاه Wear OS و دستگاه دیگری برقرار باشد.
  2. ازطریق شبکه دردسترس، مثل LTE یا Wi-Fi، بااستفاده از گره شبکه در سرورهای Google به‌عنوان واسطه.

همه کارخواه‌های Data Layer می‌توانند بسته به اتصال‌های دردسترس دستگاه‌ها، داده‌ها را بااستفاده از بلوتوث یا فضای ابری تبادل کنند. فرض کنید که داده‌های منتقل‌شده بااستفاده از «لایه داده» ممکن است در نقطه‌ای از سرورهای تحت مالکیت Google استفاده کنند.

بلوتوث

وقتی دستگاه‌ها بااستفاده از بلوتوث متصل می‌شوند، Data Layer از این اتصال استفاده می‌کند. یک کانال رمزگذاری‌شده بین دستگاه‌ها وجود دارد که از رمزگذاری استاندارد بلوتوث استفاده می‌کند و توسط «خدمات Google Play» مدیریت می‌شود.

ابر

وقتی بلوتوث دردسترس نباشد، داده‌ها به‌طور خودکار ازطریق Google Cloud مسیریابی می‌شود. همه داده‌های منتقل‌شده ازطریق Google Cloud به‌صورت سرتاسر رمزگذاری می‌شوند.

امنیت ارتباطات

«خدمات Google Play» محدودیت‌های زیر را اعمال می‌کند تا ارتباط ایمن‌تری بین برنامه نصب‌شده در دستگاه Wear OS و همان برنامه نصب‌شده در دستگاه دستی اطراف فراهم کند:

  • نام بسته باید در همه دستگاه‌ها یکسان باشد.
  • امضای بسته باید در همه دستگاه‌ها مطابقت داشته باشد.

صرف‌نظر از نوع اتصال، هیچ برنامه دیگری به داده‌ها دسترسی ندارد.

راه‌اندازی

Wearable Data Layer API وابستگی‌های زیر را دارد:

وابستگی زیر را در فایل build.gradle ماژول Wear خود اضافه کنید:

dependencies {
    ...
    implementation("com.google.android.gms:play-services-wearable:20.0.1")
}

تسهیل فرایند جفت‌سازی اولیه

Horologist چندین کتابخانه کمکی را در بالای میاناهای برنامه‌سازی کاربردی پلاتفرم ارائه می‌دهد. این کیت شامل یک کتابخانه لایه داده است که به برقراری اتصال بین دستگاه همراه و دستگاه Wear OS کمک می‌کند. علاوه‌براین، میاناهای برنامه‌سازی کاربردی مناسبی برای انجام کارهای زیر ارائه می‌دهد:

  • برنامه را در دستگاه دیگر نصب کنید.
  • برنامه را در دستگاه دیگر راه‌اندازی کنید.
  • فعالیت خاصی را در دستگاه دیگر راه‌اندازی کنید.
  • برنامه همراه را راه‌اندازی کنید.

دسترسی به لایه داده

برای فراخوانی Data Layer API، از کلاس Wearable برای دریافت نمونه‌های کلاس‌های مختلف کارخواه، مانند DataClient و MessageClient استفاده کنید.

برای اطلاعات بیشتر، به نمونه DataLayer مراجعه کنید.

استفاده از کلاینت حداقلی

برای ایجاد مشتری، کد نمونه زیر را ببینید:

val dataClient = Wearable.getDataClient(this)

val available = try {
    GoogleApiAvailability.getInstance()
        .checkApiAvailability(client)
        .await()
    true
} catch (e: AvailabilityException) {
    // API is not available in this device.
    false
}

زمینه می‌تواند هر زمینه معتبر Android باشد. اگر از API در محدوده Activity استفاده می‌کنید، از روش getDataClient() کلاس Wearable استفاده کنید. این کار باعث می‌شود برخی‌از تعامل‌ها به‌جای اعلان به‌صورت کادر گفتگو نشان داده شود، مثلاً وقتی از کاربر خواسته می‌شود نسخه «خدمات Google Play» خود را به‌روز کند.

به‌طور پیش‌فرض، فراخوانی‌های برگشتی به شنوندگان در رشته میانای کاربر اصلی برنامه انجام می‌شود. برای اینکه فراخوانی‌های برگشتی در رشته دیگری انجام شود، از شیء WearableOptions برای مشخص کردن Looper سفارشی استفاده کنید.

برای اطلاعات بیشتر، به مرجع WearableOptions.Builder مراجعه کنید.

درصورت لزوم، نمونه‌های کارخواه را دوباره ایجاد کنید

ایجاد کارخواه‌های میانای برنامه‌سازی کاربردی پوشیدنی، مثل DataClient و MessageClient، کم‌هزینه است. بنابراین به‌جای نگه‌داشتن کلاینت‌ها، آن‌ها را به‌صورت موردنیازتان و بااستفاده از سبکی که برای برنامه‌تان مناسب است بازآفرینی کنید.

وضعیت کارخواه، مانند مجموعه شنوندگان ثبت‌شده، در بین همه کارخواه‌ها مشترک است و اگر «خدمات Google Play» درحین اجرای برنامه به‌روز شود، حفظ می‌شود.