«میانای برنامه کاربردی لایه داده پوشیدنی» که بخشی از «خدمات Google Play» است، کانال ارتباطی بین دستگاههای پوشیدنی (مثل ساعتهای هوشمند) و دستگاههای دستی متصل (معمولاً تلفنهای هوشمند) فراهم میکند. این روشی برای همگامسازی و انتقال داده بین دستگاهها است.
توجه: این API فقط در ساعتهای Wear OS و دستگاههای Android جفتشده دردسترس است. برای ساعتهای Wear OS جفتشده با تلفنهای iOS، درصورت دردسترس بودن اتصال اینترنت، برنامهها میتوانند از دیگر میاناهای برنامهسازی کاربردی ابری پُرسمان کنند. برای اطلاعات بیشتر درباره این میاناهای برنامهسازی کاربردی دیگر، به دسترسی به شبکه و همگامسازی در Wear OS مراجعه کنید.
احتیاط: ازآنجاییکه میاناهای برنامهسازی کاربردی لایه داده برای ارتباط بین دستگاههای دستی و پوشیدنی طراحی شدهاند، اینها تنها میاناهای برنامهسازی کاربردی هستند که میتوانید برای راهاندازی ارتباط بین این دستگاهها استفاده کنید. برای مثال، برای ایجاد کانال ارتباطی، سعی نکنید سوکتهای سطح پایین را باز کنید.
موارد استفاده رایج
وقتی تعامل صرفاً بین ساعت و تلفن است، از Data Layer API استفاده کنید. برای مثال:
- کنترل از دور: ساعت بهعنوان کنترل از دور برای تلفن عمل میکند (برای نمونه، کنترل کردن پخشکننده موسیقی درحال اجرا در تلفن، ورق زدن ارائه، عمل کردن بهعنوان شاتر دوربین).
- راهاندازی برنامه دستی: ویژگی دکمه «باز کردن در تلفن».
- پل اصالتسنجی: ارسال کد جلسه از تلفن به ساعت درطول راهاندازی اولیه.
بسیاری از سناریوهای رایج باید بهجای آن از زیرساخت ابری موجود شما استفاده کنند، برای مثال:
- ذخیره دادهها: تمرینها، یادداشتها.
- درحال واکشی محتوا: درحال بار کردن فهرست تمرینهای گذشته، بارگیری موسیقی، واکشی آبوهوا.
- وضعیت همگامسازی: اگر کاربر عکس نمایهاش را در وب تغییر دهد، ساعت بااستفاده از فضای ابری بهروز میشود، نه با پُرسمان کردن تلفن.
برای این سناریوها، بهجای Data Layer API، از زیرساخت و نقاط پایانی موجود خودتان استفاده کنید.
گزینههای ارتباط
دادهها به یکی از روشهای زیر منتقل میشود:
- مستقیماً، زمانی که اتصال بلوتوث بین دستگاه Wear OS و دستگاه دیگری برقرار باشد.
- ازطریق شبکه دردسترس، مانند LTE یا Wi-Fi، بااستفاده از گره شبکه در سرورهای Google بهعنوان واسطه.
همه کارخواهان «لایه داده» ممکن است بسته به اتصالات دردسترس دستگاهها، دادهها را بااستفاده از بلوتوث یا بااستفاده از ابر مبادله کنند. فرض کنید دادههایی که بااستفاده از «لایه داده» منتقل میشوند ممکن است در مقطعی از سرورهای تحت مالکیت Google استفاده کنند.
بلوتوث
وقتی دستگاهها بااستفاده از بلوتوث متصل میشوند، «لایه داده» از این اتصال استفاده میکند. یک کانال رمزگذاریشده بین دستگاهها وجود دارد که از رمزگذاری استاندارد بلوتوث استفاده میکند و توسط «خدمات Google Play» مدیریت میشود.
ابر
وقتی بلوتوث دردسترس نباشد، دادهها بهطور خودکار ازطریق Google Cloud مسیریابی میشود. همه دادههای منتقلشده ازطریق Google Cloud رمزگذاری سرتاسر میشوند.
امنیت ارتباطات
«خدمات Google Play» محدودیتهای زیر را برای ارائه ارتباط ایمنتر بین برنامه نصبشده در دستگاه Wear OS و همان برنامه نصبشده در دستگاه همراه نزدیک اعمال میکند:
- نام بسته باید در همه دستگاهها یکسان باشد.
- امضای بسته باید در همه دستگاهها یکسان باشد.
صرفنظر از نوع اتصال، هیچ برنامه دیگری به دادهها دسترسی ندارد.
راهاندازی
«میانای برنامهسازی کاربردی لایه دادههای پوشیدنی» وابستگیهای زیر را دارد:
- جدیدترین نسخه خدمات Google Play.
- دستگاه Wear OS یا شبیهساز Wear OS.
وابستگی زیر را در فایل build.gradle واحد Wear خود اضافه کنید:
dependencies {
...
implementation("com.google.android.gms:play-services-wearable:20.0.1")
}
فرایند جفتسازی اولیه را تسهیل کنید
Horologist چندین کتابخانه کمکی در بالای میاناهای برنامهسازی کاربردی پلاتفرم ارائه میدهد. این کتابخانه شامل لایه داده است که به ایجاد اتصال بین دستگاه همراه و دستگاه Wear OS کمک میکند. علاوهبراین، میاناهای برنامهسازی کاربردی مناسبی برای انجام کارهای زیر ارائه میدهد:
- برنامه را در دستگاه دیگر نصب کنید.
- برنامه را در دستگاه دیگر راهاندازی کنید.
- فعالیت خاصی را در دستگاه دیگر راهاندازی کنید.
- برنامه همراه را راهاندازی کنید.
دسترسی به لایه داده
برای فراخوانی «میانای برنامهسازی کاربردی لایه داده»، از کلاس 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» درحین اجرای برنامه بهروز شود، حفظ میشود.