بلوتوث کم انرژی

بلوتوث کم مصرف (BLE) که در اندروید 4.3 و بالاتر موجود است، اتصالات کوتاهی بین دستگاه‌ها برای انتقال داده‌ها ایجاد می‌کند. وقتی BLE متصل نیست در حالت خواب باقی می ماند. این به BLE اجازه می دهد تا پهنای باند کمتر و مصرف انرژی کمتری را در مقایسه با بلوتوث کلاسیک ارائه دهد. BLE برای برنامه هایی مانند نمایشگر ضربان قلب یا صفحه کلید بی سیم ایده آل است. برای استفاده از BLE، دستگاه‌ها باید چیپست داشته باشند که از BLE پشتیبانی کند.

پیاده سازی

همه نمایه‌های فعلی برنامه BLE بر اساس نمایه ویژگی عمومی (GATT) هستند. هنگامی که یک دستگاه مجهز به Android با یک دستگاه BLE تعامل دارد، دستگاهی که اطلاعات را ارسال می کند سرور و دستگاهی که اطلاعات را دریافت می کند مشتری است. Android شامل API های توسعه دهنده برای BLE است، از جمله API هایی برای تعامل بین سرورهای گات و کلاینت های گات. برای استفاده کامل از API های BLE، نیازمندی های Android Bluetooth HCI را اجرا کنید.

حالت های دستگاه

هنگام استفاده از BLE، یک دستگاه مجهز به اندروید می تواند به عنوان یک دستگاه جانبی، یک دستگاه مرکزی یا هر دو عمل کند. حالت جانبی به دستگاه ها امکان می دهد بسته های تبلیغاتی را ارسال کنند. حالت مرکزی به دستگاه ها امکان می دهد تبلیغات را اسکن کنند. یک دستگاه Android که هم به عنوان یک دستگاه جانبی و هم به عنوان دستگاه مرکزی عمل می کند، می تواند در حین ارسال تبلیغات در حالت جانبی، با سایر دستگاه های جانبی BLE ارتباط برقرار کند. دستگاه‌هایی که از بلوتوث نسخه 4.1 و پایین‌تر پشتیبانی می‌کنند فقط در حالت مرکزی می‌توانند از BLE استفاده کنند. چیپست های دستگاه های قدیمی ممکن است از حالت محیطی BLE پشتیبانی نکنند.

اسکن BLE

یک دستگاه مجهز به اندروید می تواند هنگام استفاده از BLE، دستگاه های بلوتوث خاصی را هدف قرار داده و اسکن کند. API های BLE به توسعه دهندگان برنامه اجازه می دهند فیلترهایی را برای یافتن دستگاه هایی با دخالت کمتر کنترل کننده میزبان ایجاد کنند.

اسکن موقعیت مکانی

سرویس‌های مکان دستگاه می‌توانند از بلوتوث برای شناسایی چراغ‌های بلوتوث و ارائه مکان دقیق‌تر استفاده کنند. به این صورت است که کاربران این ویژگی را فعال می کنند:

  1. به تنظیمات > امنیت و مکان > مکان بروید.
  2. بررسی کنید که کلید روشن / خاموش موقعیت مکانی در موقعیت روشن باشد.
  3. به حالت بروید.
  4. حالت دقت بالا یا حالت ذخیره باتری را انتخاب کنید.

در Android 11 و پایین‌تر، برنامه‌های جداگانه برای استفاده از اسکن BLE به مجوزهای مکان نیاز دارند، حتی اگر فقط برای یافتن دستگاه‌هایی برای اتصال به آن‌ها اسکن می‌کنند. اگر کاربر اسکن موقعیت مکانی را غیرفعال کند یا به یک برنامه مجوز مکان اعطا نکند، برنامه هیچ نتیجه اسکن BLE را دریافت نخواهد کرد.

در Android 12 و بالاتر، مجوزهای BLUETOOTH_SCAN ، BLUETOOTH_ADVERTISE ، و BLUETOOTH_CONNECT می‌توانند به برنامه‌ها اجازه دهند دستگاه‌های اطراف را بدون نیاز به درخواست مجوز مکان اسکن کنند. برای اطلاعات بیشتر، به مجوزهای بلوتوث مراجعه کنید.

کاربران می‌توانند اسکن پس‌زمینه بلوتوث در سطح سیستم را با رفتن به تنظیمات > امنیت و مکان > مکان > اسکن و کلیک کردن روی دکمه اسکن بلوتوث در موقعیت خاموش، غیرفعال کنند. این روی اسکن BLE برای مکان یا دستگاه‌های محلی تأثیری ندارد.

نتایج اسکن را فیلتر کنید

Android 6.0 و بالاتر شامل اسکن BLE و تطبیق فیلتر در کنترلر بلوتوث است. یک دستگاه می تواند نتایج اسکن را فیلتر کرده و رویدادهای پیدا شده و گم شده مربوط به دستگاه های BLE را به پردازنده برنامه (AP) گزارش دهد. فیلتر کردن برای اسکن‌های دسته‌ای نیز کار می‌کند، که به صرفه‌جویی در مصرف انرژی کمک می‌کند زیرا دستگاه اسکن BLE را به سیستم‌افزار منتقل می‌کند. اسکن های دسته ای تعداد دفعات بیدار شدن AP را به دلیل اسکن BLE برای دستگاه ها یا چراغ ها کاهش می دهد.

ویژگی OnFound / OnLost در کنترل‌کننده بلوتوث پیاده‌سازی می‌شود و سپس آزمایش می‌شود تا تأیید شود که دستگاه‌های BLE در اسکن‌ها از دست نمی‌روند. این امر باعث صرفه جویی در مصرف برق می شود و همچنین می تواند مزایای زیر را ارائه دهد:

  • برای یک رویداد OnFound ، AP اصلی با کشف یک دستگاه خاص از خواب بیدار می شود.
  • برای رویداد OnLost ، AP هنگامی که دستگاه خاصی پیدا نمی شود، بیدار می شود.
  • برنامه‌های چارچوب زمانی که یک دستگاه نزدیک در محدوده قرار دارد، اعلان‌های ناخواسته کمتری دریافت می‌کنند.
  • اسکن‌های مداوم به برنامه‌های چارچوب امکان می‌دهد وقتی دستگاهی خارج از محدوده است مطلع شوند.

یک فیلتر اسکن می تواند بر اساس کشف تبلیغات یک دستگاه (رویداد OnFound ) باشد. لایه جاوا می تواند پارامترهایی مانند اولین کشف (یا تعداد مشخصی از تبلیغات از اولین کشف) را مشخص کند. فیلتر BLE را با استفاده از دستور Advertising Packet Content Filter HCI اجرا کنید.