بررسی اجمالی API لایه داده

گره مبتنی بر ابر توسط یک سرور متعلق به گوگل کنترل می‌شود.
شکل 1. نمونه‌ای از شبکه گره‌ها با دستگاه‌های دستی و Wear OS.

رابط برنامه‌نویسی کاربردی (API) لایه داده پوشیدنی، که بخشی از سرویس‌های گوگل پلی است، یک کانال ارتباطی بین دستگاه‌های پوشیدنی (مانند ساعت‌های هوشمند) و دستگاه‌های دستی متصل (معمولاً گوشی‌های هوشمند) فراهم می‌کند. این روشی برای همگام‌سازی و انتقال داده‌ها بین دستگاه‌ها است.

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

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

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

رابط برنامه‌نویسی کاربردی لایه داده (Data Layer API) به ویژه برای موارد استفاده در حوزه تناسب اندام و رسانه مفید است.

اپلیکیشن‌های تناسب اندام

ارسال داده‌های ورزشی از برنامه Wear OS به برنامه تلفن همراه برنامه‌های تناسب اندام اغلب نیاز دارند داده‌های ورزشی ثبت شده توسط ساعت را در یک برنامه تلفن همراه یا Health Connect بنویسند. اگر از API لایه داده برای انتقال داده‌ها استفاده می‌کنید، از یک سرویس گیرنده پیام برای ارسال داده‌های ورزشی از برنامه Wear OS به برنامه تلفن همراه به منظور نوشتن در Health Connect استفاده کنید.

پخش زنده داده‌ها به دستگاه تلفن همراه در طول تمرین خانگی

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

برنامه‌های رسانه‌ای

برای کنترل پخش‌کننده‌ی رسانه از طریق عمل مکث/ادامه/شروع/پایان از ساعت به تلفن، از یک برنامه‌ی پیام‌رسان استفاده کنید.

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

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

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

همه کلاینت‌های لایه داده ممکن است بسته به اتصالات موجود در دستگاه‌ها، داده‌ها را با استفاده از بلوتوث یا با استفاده از فضای ابری تبادل کنند. فرض کنید داده‌های منتقل شده با استفاده از لایه داده ممکن است در مقطعی از سرورهای متعلق به گوگل استفاده کنند.

بلوتوث

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

ابر

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

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

سرویس‌های گوگل پلی محدودیت‌های زیر را برای برقراری ارتباط امن‌تر بین برنامه نصب‌شده روی یک دستگاه Wear OS و همان برنامه نصب‌شده روی یک دستگاه دستی نزدیک اعمال می‌کنند:

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

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

راه‌اندازی

API لایه داده پوشیدنی وابستگی‌های زیر را دارد:

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

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

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

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

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

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

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

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

از یک کلاینت مینیمال استفاده کنید

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

کاتلین

val dataClient: DataClient = Wearable.getDataClient(context)

جاوا

DataClient dataClient = Wearable.getDataClient(context);

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

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

کاتلین

runBlocking {
    Wearable.getDataClient(context, options)
}

جاوا

WearableOptions options = new WearableOptions.Builder().setLooper(myLooper).build();
DataClient dataClient = Wearable.getDataClient(context, options);

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

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

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

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