با استفاده از APIهای لایه داده، دستگاه‌های موجود در شبکه را کشف کنید

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

گره‌های قابل دسترسی و نزدیک

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

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

فعالیت‌هایی که بر زمان اتصال مجدد تأثیر می‌گذارند

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

  • عدم فعالیت دستگاه Wear OS: اگر دستگاه Wear OS از مچ دست کاربر جدا شود یا به طور فعال برای مدت طولانی مورد استفاده قرار نگیرد، ممکن است زمان اتصال مجدد افزایش یابد.
  • حالت Doze: حالت Doze که مصرف انرژی دستگاه را کاهش می‌دهد، می‌تواند فرآیندهای پس‌زمینه را محدود کند و به طور بالقوه زمان اتصال مجدد دستگاه را افزایش دهد.
  • تعامل کاربر: اگر کاربر تقریباً همزمان با یک دستگاه دستی و یک دستگاه Wear OS تعامل برقرار کند، اغلب روند اتصال مجدد تسریع می‌شود.

کشف تمام دستگاه‌ها با استفاده از کلاینت گره

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

کلاس NodeClient به طور خاص برای کشف دستگاه‌هایی که برنامه شما روی آنها نصب نشده است، مفید است.

برای ثبت رویدادهای اتصال و قطع اتصال دستگاه، می‌توانید از کلاس Horologist DataLayerAppHelper استفاده کنید. این کلاس یک Flow connectedAndInstalledNodes برای مشاهده وضعیت اتصال ارائه می‌دهد. علاوه بر این، متد connectedNodes() آن لیستی از دستگاه‌های متصل را برمی‌گرداند و اطلاعات NodeClient و CapabilityClient را در یک شیء واحد ترکیب می‌کند.

کشف دستگاه‌های خاص با استفاده از یک کلاینت توانمند

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

برای مثال، یک اپلیکیشن اندروید موبایل می‌تواند تبلیغ کند که از کنترل از راه دور پخش ویدیو پشتیبانی می‌کند. نسخه Wear OS آن اپلیکیشن می‌تواند از CapabilityClient برای بررسی اینکه آیا نسخه موبایل اپلیکیشن روی دستگاه مجاور نصب شده و از آن ویژگی پشتیبانی می‌کند یا خیر، استفاده کند. در صورت وجود، اپلیکیشن Wear OS می‌تواند دکمه‌های پخش و مکث را نمایش دهد تا کاربران بتوانند ویدیویی را که در دستگاه موبایلشان پخش می‌شود، از دستگاه Wear OS خود کنترل کنند. پخش قابلیت‌ها در جهت مخالف نیز کار می‌کند؛ اپلیکیشن‌های Wear OS می‌توانند قابلیت‌هایی را که پشتیبانی می‌کنند، فهرست کنند.

قابلیت‌های جدید برنامه خود را بررسی کنید

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

تعیین اینکه آیا یک دستگاه Wear OS تنها دستگاه متصل به شبکه است یا خیر

شما می‌توانید از CapabilityClient برای بررسی اینکه آیا برنامه شما باید در حالت مستقل عمل کند یا خیر، استفاده کنید، زیرا هیچ دستگاه اندرویدی دیگری در نزدیکی آن نیست. با ارسال FILTER_ALL ، هیچ دستگاه دیگری نباید در نتایج ظاهر شود.