Android پشتیبانی پلت فرم داخلی برای بلوتوث کم انرژی (BLE) را در نقش مرکزی ارائه می دهد و API هایی را ارائه می دهد که برنامه ها می توانند از آنها برای کشف دستگاه ها، جستجو برای خدمات و انتقال اطلاعات استفاده کنند.
موارد استفاده رایج شامل موارد زیر است:
- انتقال مقادیر کمی از داده ها بین دستگاه های نزدیک.
- تعامل با حسگرهای مجاورت برای ارائه تجربه شخصی سازی شده بر اساس مکان فعلی کاربران.
برخلاف بلوتوث کلاسیک ، BLE برای مصرف انرژی کمتر طراحی شده است. این به برنامهها اجازه میدهد تا با دستگاههای BLE که الزامات انرژی سختتری دارند، مانند سنسورهای مجاورت، مانیتورهای ضربان قلب و دستگاههای تناسب اندام، ارتباط برقرار کنند.
احتیاط: وقتی کاربر با استفاده از BLE دستگاه خود را با دستگاه دیگری جفت میکند، دادههایی که بین دو دستگاه ارسال میشود برای همه برنامههای دستگاه کاربر قابل دسترسی است.
به همین دلیل، اگر برنامه شما داده های حساسی را ضبط می کند، باید امنیت لایه برنامه را برای محافظت از حریم خصوصی آن داده ها پیاده سازی کنید.
اصول اولیه
برای اینکه دستگاه های دارای BLE بتوانند داده ها را بین یکدیگر انتقال دهند، ابتدا باید یک کانال ارتباطی تشکیل دهند. استفاده از APIهای Bluetooth LE مستلزم آن است که چندین مجوز را در فایل مانیفست خود اعلام کنید . هنگامی که برنامه شما مجوز استفاده از بلوتوث را دریافت کرد، برنامه شما باید به BluetoothAdapter
دسترسی داشته باشد و تعیین کند که آیا بلوتوث در دستگاه موجود است یا خیر . هنگامی که دستگاهی پیدا شد، قابلیت های دستگاه BLE با اتصال به سرور GATT در دستگاه BLE کشف می شود. پس از برقراری اتصال، داده ها را می توان با دستگاه متصل بر اساس خدمات و ویژگی های موجود منتقل کرد .
اصطلاحات و مفاهیم کلیدی
در زیر خلاصه ای از اصطلاحات و مفاهیم کلیدی BLE آمده است:
- نمایه ویژگی عمومی (GATT)
- نمایه GATT یک مشخصات کلی برای ارسال و دریافت قطعات کوتاه داده است که به عنوان "ویژگی ها" از طریق پیوند BLE شناخته می شوند. همه پروفایل های برنامه فعلی BLE بر اساس GATT هستند. برای کسب اطلاعات بیشتر، نمونه Android BluetoothLeGatt را در GitHub مرور کنید.
- پروفایل ها
- بلوتوث SIG پروفایل های زیادی را برای دستگاه های BLE تعریف می کند. نمایه مشخصاتی برای نحوه عملکرد یک دستگاه در یک برنامه خاص است. توجه داشته باشید که یک دستگاه می تواند بیش از یک نمایه را پیاده سازی کند. به عنوان مثال، یک دستگاه می تواند دارای یک مانیتور ضربان قلب و یک آشکارساز سطح باتری باشد.
- پروتکل ویژگی (ATT)
- گات بر روی پروتکل ویژگی (ATT) ساخته شده است. به این GATT/ATT نیز گفته می شود. ATT برای اجرا در دستگاه های BLE بهینه شده است. برای این منظور، تا حد امکان از بایت های کمتری استفاده می کند. هر ویژگی به طور منحصر به فرد توسط یک شناسه منحصر به فرد جهانی (UUID) شناسایی می شود، که یک فرمت 128 بیتی استاندارد شده برای شناسه رشته ای است که برای شناسایی منحصر به فرد اطلاعات استفاده می شود. ویژگی های منتقل شده توسط ATT به عنوان ویژگی ها و خدمات قالب بندی می شوند.
- مشخصه
- یک مشخصه حاوی یک مقدار واحد و توصیفگرهای 0-n است که مقدار مشخصه را توصیف می کند. یک مشخصه را می توان به عنوان یک نوع، مشابه با یک کلاس در نظر گرفت.
- توصیفگر
- توصیفگرها ویژگی های تعریف شده ای هستند که یک مقدار مشخصه را توصیف می کنند. برای مثال، یک توصیفگر ممکن است یک توصیف قابل خواندن برای انسان، یک محدوده قابل قبول برای مقدار یک مشخصه، یا یک واحد اندازه گیری که مختص مقدار یک مشخصه است را مشخص کند.
- خدمات
- یک سرویس مجموعه ای از ویژگی ها است. به عنوان مثال، میتوانید سرویسی به نام «نمایشگر ضربان قلب» داشته باشید که شامل ویژگیهایی مانند «اندازهگیری ضربان قلب» است. میتوانید فهرستی از پروفایلها و خدمات مبتنی بر گات را در bluetooth.org پیدا کنید.
نقش ها و مسئولیت ها
نقش ها و مسئولیت های زیر هنگام تعامل دستگاه با دستگاه BLE اعمال می شود:
مرکزی در مقابل محیطی این در مورد خود اتصال BLE صدق می کند. دستگاه در نقش مرکزی اسکن می کند، به دنبال تبلیغات می گردد و دستگاه در نقش جانبی تبلیغات را می سازد.
سرور گات در مقابل کلاینت گات. این تعیین می کند که چگونه دو دستگاه پس از برقراری ارتباط با یکدیگر صحبت می کنند. برای درک تمایز، تصور کنید که یک تلفن Android و یک ردیاب فعالیت دارید که یک دستگاه BLE است. تلفن از نقش مرکزی پشتیبانی می کند. ردیاب فعالیت از نقش محیطی پشتیبانی می کند. برای ایجاد یک اتصال BLE به یکی از هر کدام نیاز دارید. دو چیز که فقط جانبی را پشتیبانی می کنند نمی توانند با یکدیگر صحبت کنند، و همچنین دو چیز که فقط از مرکزی پشتیبانی می کنند نمی توانند با یکدیگر صحبت کنند.
هنگامی که تلفن و ردیاب فعالیت ارتباط برقرار کردند، شروع به انتقال ابرداده های GATT به یکدیگر می کنند. بسته به نوع داده ای که انتقال می دهند، یکی یا دیگری ممکن است به عنوان سرور عمل کند. برای مثال، اگر ردیاب فعالیت بخواهد داده های حسگر را به تلفن گزارش دهد، ممکن است منطقی باشد که ردیاب فعالیت به عنوان سرور عمل کند. اگر ردیاب فعالیت بخواهد بهروزرسانیها را از تلفن دریافت کند، ممکن است منطقی باشد که تلفن به عنوان سرور عمل کند.
در مثال مورد استفاده در این مبحث، برنامه (که بر روی دستگاه اندروید اجرا می شود) مشتری GATT است. این برنامه داده ها را از سرور GATT دریافت می کند، که یک مانیتور ضربان قلب BLE است که از نمایه ضربان قلب پشتیبانی می کند. می توانید برنامه خود را طوری طراحی کنید که نقش سرور گات را بازی کند. برای اطلاعات بیشتر به BluetoothGattServer
مراجعه کنید.