موبائل ڈیولپمنٹ میں Bluetooth Low Energy (BLE): یہ کیا ہے، پروٹوکولز اور کیسے کام کرتا ہے

مصنف: IT Sectr اشاعت: 2026-07-25 مطالعے کا وقت: 11 منٹ

Bluetooth Low Energy (BLE) ایک وائرلیس مواصلاتی معیار ہے جو کم سے کم بجلی کی کھپت کے ساتھ تھوڑی مقدار میں ڈیٹا منتقل کرنے کے لیے بہتر بنایا گیا ہے۔ Bluetooth SIG، 2025 کے مطابق، یہ ٹیکنالوجی دنیا بھر میں 5 بلین سے زیادہ آلات میں استعمال ہوتی ہے۔ GATT (Generic Attribute Profile) ڈیٹا کو Service → Characteristic → Descriptor کے درجہ بندی میں ترتیب دیتا ہے، جو iOS اور Android کے لیے تمام BLE ایپلیکیشنز کی بنیاد ہے۔

اہم نکات

  • GATT — Bluetooth Low Energy میں ڈیٹا کے تبادلے کا پروٹوکول جس میں Service → Characteristic → Descriptor کا درجہ بندی ہے
  • Core Bluetooth — iOS پر BLE کے ساتھ کام کرنے کے لیے Apple کا فریم ورک، CBCentralManager اور CBPeripheral پر مبنی
  • BluetoothGatt — BluetoothLeScanner کے ذریعے Android پر BLE کنکشن کے لیے اہم API
  • iBeacon — iOS پر CLLocationManager کے ذریعے مقامی تعاون کے ساتھ Apple کا BLE بیکن پروٹوکول
  • Bonding — ایک مستقل خفیہ کردہ کنکشن جو بار بار اسکیننگ اور پیئرنگ کو ختم کرتا ہے

Bluetooth Low Energy (BLE) کیا ہے اور یہ کیسے کام کرتا ہے؟

Bluetooth Low Energy (BLE) دو کرداروں (Central (موبائل آلہ) اور Peripheral (آلہ)) کے ساتھ کلائنٹ-سرور ماڈل پر کام کرتا ہے۔ Central ہوا کی لہروں کو اسکین کرتا ہے اور کنکشن شروع کرتا ہے، جبکہ Peripheral ڈیٹا منتقل کرتا ہے۔ کلاسک Bluetooth کے برعکس، BLE آڈیو سٹریمز کے لیے ڈیزائن نہیں کیا گیا — اس کا کام کم سے کم بجلی کی کھپت کے ساتھ چھوٹے پیکٹ منتقل کرنا ہے۔ Bluetooth SIG Core Specification 5.4 (2025) کے مطابق، BLE فعال موڈ میں 15 mA سے کم کرنٹ پر 2 Mbps تک کی رفتار کو سپورٹ کرتا ہے۔

GATT درجہ بندی: Service، Characteristic، Descriptor

GATT (Generic Attribute Profile) Bluetooth Low Energy کے ڈیٹا ڈھانچے کی وضاحت کرتا ہے۔ Service خصوصیات کا ایک منطقی گروپ ہے (مثال کے طور پر، Heart Rate Service 0x180D)۔ Characteristic ایک مخصوص قدر کے ساتھ ڈیٹا پوائنٹ ہے۔ Descriptor خصوصیت کا میٹا ڈیٹا ہے، جس میں اطلاع کے انتظام کے لیے CCCD شامل ہے۔ ہر عنصر کا ایک UUID ہوتا ہے — معیاری Bluetooth SIG پروفائلز کے لیے 16 بٹ یا حسب ضرورت کے لیے 128 بٹ۔

موبائل ایپلیکیشنز میں Bluetooth Low Energy اس درجہ بندی کو اسمارٹ فون اور پیرفرل آلات کے درمیان ڈیٹا کے تبادلے کو منظم کرنے کے لیے استعمال کرتا ہے۔ GATT کی صحیح سمجھ دونوں پلیٹ فارمز پر BLE ایپلیکیشنز تیار کرنے کی بنیاد ہے۔ ڈویلپر کو آلہ کی خدمات اور خصوصیات کے UUIDs کے ساتھ ساتھ ہر خصوصیت کی خصوصیات (read، write، notify، indicate) جاننی چاہئیں۔

Advertising Data اور Scan Response

BLE آلات دریافت کے لیے اشتہاری پیکٹ (advertising packets) منتقل کرتے ہیں۔ Advertising Data میں آلہ کا نام، خدمات کے UUIDs، RSSI اور Manufacturer Specific Data شامل ہوتا ہے۔ اشتہاری پیکٹ کا سائز 31 بائٹس تک محدود ہے۔ اضافی ڈیٹا منتقل کرنے کے لیے Scan Response استعمال کیا جاتا ہے — ایک دوسرا پیکٹ جو مرکزی آلہ دریافت کے بعد درخواست کرتا ہے۔

iOS پر BLE: Core Bluetooth، CBCentralManager، CBPeripheral

iOS پر، Core Bluetooth فریم ورک Bluetooth Low Energy کو سنبھالتا ہے۔ CBCentralManager اسکیننگ اور کنکشن کا انتظام کرتا ہے، CBPeripheral ایک ریموٹ BLE آلہ کی نمائندگی کرتا ہے۔ عمل معیاری ہے: CBCentralManager کو شروع کرنا، poweredOn حالت کی جانچ کرنا، scanForPeripherals شروع کرنا، جڑنا اور خدمات دریافت کرنا۔ Core Bluetooth خود بخود ریڈیو ماڈیول کی بجلی کا انتظام کرتا ہے — اگر BLE استعمال نہیں ہو رہا تو یہ بند ہو جاتا ہے۔

iOS پر موبائل ڈیولپمنٹ میں BLE کے لیے پس منظر کے طریقوں پر غور کرنا ضروری ہے۔ Core Bluetooth پس منظر موڈ پروجیکٹ کی Capabilities (Uses Bluetooth LE accessories) کے ذریعے فعال کیا جاتا ہے۔ پس منظر میں، ایپ خصوصیات سے اطلاعیں حاصل کر سکتا ہے، لیکن اسکیننگ محدود ہے — نظام صرف آلہ کے حرکت کرنے پر اسکیننگ دوبارہ شروع کرتا ہے۔ iBeacon کے لیے، CLLocationManager کے ذریعے پس منظر اسکیننگ زیادہ فعال طور پر کام کرتی ہے۔

Swift میں BLE اسکیننگ کی مثال

swift
import CoreBluetooth

class DeviceScanner: NSObject, CBCentralManagerDelegate {
    var centralManager: CBCentralManager!

    func start() {
        centralManager = CBCentralManager(delegate: self, queue: nil)
    }

    func centralManagerDidUpdateState(_ central: CBCentralManager) {
        guard central.state == .poweredOn else { return }
        central.scanForPeripherals(withServices: nil, options: nil)
    }

    func centralManager(_ central: CBCentralManager,
                        didDiscover peripheral: CBPeripheral,
                        advertisementData: [String: Any],
                        rssi RSSI: NSNumber) {
        print("مل گیا: \(peripheral.name ?? "unknown")")
    }
}

اس مثال میں، CBCentralManagerDelegate تمام BLE کنکشن واقعات کو ہینڈل کرتا ہے۔ centralManagerDidUpdateState طریقہ چیک کرتا ہے کہ آیا موبائل آلہ پر Bluetooth فعال ہے۔ کامیاب آغاز کے بعد، اسکیننگ شروع ہوتی ہے۔ ہر ملنے والے آلہ کے لیے didDiscover کال بیک بلایا جاتا ہے۔

Core Bluetooth میں جڑنا اور خصوصیات پڑھنا

آلہ دریافت کرنے کے بعد، connect اور discoverServices کو کال کرنا ضروری ہے۔ CBPeripheralDelegate ہر قدم کو سنبھالنے کے لیے طریقے فراہم کرتا ہے: didDiscoverServices، didDiscoverCharacteristics، didUpdateValueFor۔ ہر طریقہ غیر متزامن ہے — ڈیٹا ڈیلیگیٹ کال بیک کے ذریعے آتا ہے۔ RSSI (Received Signal Strength Indicator) سگنل کی سطح دکھاتا ہے: قدر جتنی 0 کے قریب ہوگی، سگنل اتنا ہی مضبوط ہوگا۔

Android پر BLE: BluetoothAdapter، BluetoothGatt، BluetoothLeScanner

Android پر، Bluetooth Low Energy android.bluetooth پیکج کے ذریعے لاگو کیا جاتا ہے۔ BluetoothAdapter تمام BLE آپریشنز کے لیے داخلے کا نقطہ ہے۔ BluetoothLeScanner ScanCallback کال بیک کے ساتھ اسکیننگ شروع کرتا ہے۔ آلہ دریافت کرنے کے بعد، BluetoothGatt بنایا جاتا ہے — پیرفرل سے کنکشن۔ BluetoothGattCallback واقعات کو ہینڈل کرتا ہے: کنکشن، خدمات کی دریافت، خصوصیات پڑھنا، RSSI تبدیلیاں۔

Android پر موبائل ایپلیکیشنز میں Bluetooth Low Energy کے لیے واضح BLUETOOTH_SCAN، BLUETOOTH_CONNECT اور ACCESS_FINE_LOCATION اجازتیں درکار ہیں۔ Android 12 سے اجازتیں الگ کر دی گئی ہیں: اسکیننگ کے لیے BLUETOOTH_SCAN، جڑنے کے لیے BLUETOOTH_CONNECT۔ ACCESS_FINE_LOCATION صرف مخصوص قسم کے آلات کو اسکین کرنے کے لیے درکار ہے۔ ان اجازتوں کے بغیر، ایپ BLE کے ساتھ کام نہیں کر سکتی۔

Kotlin میں BLE اسکیننگ کی مثال

kotlin
class BLEScanner(private val bluetoothAdapter: BluetoothAdapter) {

    fun startScan() {
        val scanner = bluetoothAdapter.bluetoothLeScanner
        val settings = ScanSettings.Builder()
            .setScanMode(ScanSettings.SCAN_MODE_LOW_LATENCY)
            .build()
        scanner.startScan(null, settings, scanCallback)
    }

    private val scanCallback = object : ScanCallback() {
        override fun onScanResult(callbackType: Int, result: ScanResult) {
            val device = result.device
            val rssi = result.rssi
            Log.d("BLE", "آلہ: ${device.name}، RSSI: $rssi")
        }
    }
}

ScanSettings آپ کو اسکیننگ موڈ ترتیب دینے کی اجازت دیتا ہے: بیٹری بچانے کے لیے LOW_POWER، معیاری کاموں کے لیے BALANCED، زیادہ سے زیادہ دریافت کی رفتار کے لیے LOW_LATENCY۔ ScanFilter سروس UUID، آلہ کے نام یا MAC پتے کے ذریعے تلاش کو محدود کرتا ہے۔ فلٹرنگ بجلی کی کھپت کو کم کرتی ہے اور مطلوبہ آلہ کی دریافت کو تیز کرتی ہے۔

BluetoothGatt: Android پر پڑھنا اور اطلاعیں

connectGatt کے ذریعے BluetoothGatt بنانے کے بعد، ایپ discoverServices کو کال کرتی ہے۔ BluetoothGattCallback میں onServicesDiscovered، onCharacteristicRead، onCharacteristicChanged شامل ہیں۔ خصوصیت کی تبدیلیوں کے بارے میں اطلاعیں حاصل کرنے کے لیے، setCharacteristicNotification کو کال کرنا ضروری ہے۔ عمل میں توجہ درکار ہے: ہر GATT آپریشن غیر متزامن ہے، اور نتیجہ ایک علیحدہ کال بیک میں آتا ہے۔

BLE ماحولیاتی نظام میں iBeacon، Bonding اور Advertising Data

iBeacon BLE بیکنز کے لیے Apple کی ٹیکنالوجی ہے جو UUID، Major اور Minor منتقل کرتی ہے۔ بیکن آلہ ایک اشتہاری پیکٹ نشر کرتا ہے، اور موبائل ایپلیکیشن اس ڈیٹا کی بنیاد پر مقام اور فاصلہ متعین کرتی ہے۔ iOS پر، iBeacon CLLocationManager کے ذریعے مقامی طور پر تعاون یافتہ ہے۔ Android پر، تیسرے فریق کی لائبریری درکار ہے (مثال کے طور پر، AltBeacon یا Android iBeacon Library)۔

Bonding BLE آلات کے درمیان ایک مستقل محفوظ کنکشن بنانے کا طریقہ کار ہے۔ Bonding کے بعد، خفیہ کاری کی چابیاں محفوظ ہو جاتی ہیں، اور آلات دوبارہ قریب آنے پر خود بخود جڑ جاتے ہیں۔ iOS پر، bonding نظام کے ذریعے خود بخود منظم کیا جاتا ہے۔ Android پر — BluetoothDevice.createBond() کے ذریعے۔ Bonding پہننے کے قابل آلات اور فٹنس ٹریکرز کے لیے اہم ہے جنہیں فوری دوبارہ کنکشن درکار ہوتا ہے۔

اشتہاری پیکٹ اور Manufacturer Specific Data

Advertising Data Bluetooth Low Energy میں ایک اہم دریافت کا طریقہ کار ہے۔ آلہ بنانے والے حسب ضرورت ڈیٹا منتقل کرنے کے لیے اشتہاری پیکٹ میں Manufacturer Specific Data شامل کر سکتے ہیں۔ پیکٹ کی شکل میں Company Identifier (2 بائٹ) اور صوابدیدی ڈیٹا شامل ہے۔ iOS پر، CBCentralManager فلٹرنگ کے لیے سروس UUIDs کی ایک صف قبول کرتا ہے — یہ بیٹری بچاتا ہے۔ Android پر، ScanFilter اسی اصول پر کام کرتا ہے۔

BLE ڈیولپمنٹ کے لیے iOS اور Android کا موازنہ

پیرامیٹرiOS (Core Bluetooth)Android (BluetoothGatt)
منیجرCBCentralManagerBluetoothLeScanner
کنکشنconnect(to:)connectGatt()
خدماتdiscoverServices()discoverServices()
پڑھناreadValue(for:)readCharacteristic()
اطلاعیںsetNotifyValue(_:for:)setCharacteristicNotification()
اجازتیںخودکارBLUETOOTH_SCAN، BLUETOOTH_CONNECT
iBeaconCLLocationManager (مقامی)AltBeacon / لائبریریاں

BLE اصلاح: MTU، Connection Interval اور پس منظر موڈ

MTU (Maximum Transmission Unit) ایک واحد Bluetooth Low Energy ڈیٹا پیکٹ کا زیادہ سے زیادہ سائز ہے۔ پہلے سے طے شدہ طور پر، MTU 23 بائٹ ہے (3 بائٹ ہیڈر + 20 بائٹ ڈیٹا)۔ MTU کو 512 بائٹ تک بڑھانا کنفیگریشن یا لاگ کے تبادلے میں ترسیل کو نمایاں طور پر تیز کرتا ہے۔ iOS پر، maximumWriteValueLength دستیاب MTU دکھاتا ہے۔ Android پر، MTU بڑھانے کے لیے requestMtu() استعمال کیا جاتا ہے۔

Connection Interval وہ تعدد ہے جس کے ساتھ مرکزی آلہ پیرفرل سے استفسار کرتا ہے۔ وقفہ جتنا چھوٹا ہوگا، ترسیل کی رفتار اتنی ہی زیادہ ہوگی، لیکن بجلی کی کھپت بھی اتنی ہی زیادہ ہوگی۔ عام اقدار 7.5 ms سے 4 سیکنڈ تک ہوتی ہیں۔ فٹنس ٹریکرز کے لیے، 100 ms کافی ہے؛ آڈیو کے لیے — 7.5 ms۔ موبائل ڈیولپمنٹ میں BLE کو ترسیل کی رفتار اور آلہ کی بیٹری کی زندگی کے درمیان توازن درکار ہے۔

iOS اور Android پر پس منظر موڈ

iOS Background Modes کے ذریعے پس منظر میں BLE کو سپورٹ کرتا ہے، لیکن حدود کے ساتھ۔ پس منظر میں ایپ خصوصیات سے اطلاعیں وصول کرتی ہے لیکن فعال طور پر اسکین نہیں کر سکتی۔ نظام آلہ کے مقام کی تبدیلی پر اسکیننگ دوبارہ شروع کرتا ہے۔ Android پر، پس منظر اسکیننگ کے لیے ایک مستقل اطلاع کے ساتھ Foreground Service درکار ہے۔ اس کے بغیر، موبائل نظام ایپ کو کم سے کم کرنے پر عمل کو ختم کر دے گا۔

عملی اصلاح کی سفارشات

موبائل ایپلیکیشنز میں قابل اعتماد BLE آپریشن کے لیے، ان اصولوں پر عمل کریں۔ پولنگ کے بجائے notify استعمال کریں — اطلاعوں والی خصوصیت تبدیلی پر ڈیٹا بھیجتی ہے، بیٹری بچاتی ہے۔ کنکشن کے شروع میں بہترین MTU سیٹ کریں۔ اسکین کرتے وقت سروس UUID کے ذریعے آلات کو فلٹر کریں۔ مختلف ماڈلز پر BLE اسٹیک کی مطابقت چیک کریں — مینوفیکچررز (Xiaomi، Huawei، Samsung) Bluetooth کے رویے کو متاثر کرنے والی تبدیلیاں کرتے ہیں۔

اکثر پوچھے گئے سوالات

BLE کلاسک Bluetooth سے کیسے مختلف ہے؟

Bluetooth Low Energy (BLE) کم بجلی کی کھپت کے ساتھ چھوٹے پیکٹ کی متواتر ترسیل کے لیے بہتر بنایا گیا ہے۔ کلاسک Bluetooth آڈیو سٹریمز اور بڑی مقدار میں ڈیٹا کی مسلسل ترسیل کے لیے ڈیزائن کیا گیا ہے۔

Bluetooth Low Energy میں GATT کیا ہے؟

GATT (Generic Attribute Profile) BLE میں ڈیٹا کے تبادلے کا پروٹوکول ہے جو Service → Characteristic → Descriptor کے درجہ بندی کی وضاحت کرتا ہے۔ GATT BLE آلات سے ڈیٹا پڑھنے، لکھنے اور اطلاعیں حاصل کرنے کے لیے استعمال ہوتا ہے۔

Android کو BLE کے لیے ACCESS_FINE_LOCATION کی اجازت کیوں درکار ہے؟

Android 12 سے پہلے، BLE اسکیننگ مقام کے تعین کے لیے استعمال ہو سکتی تھی، اس لیے Google نے ان اجازتوں کو ملا دیا۔ Android 12 سے، مقام سے علیحدہ BLUETOOTH_SCAN کی اجازت متعارف کرائی گئی ہے۔

BLE ڈیٹا منتقلی کی رفتار کیسے بڑھائی جائے؟

Android پر requestMtu() اور iOS پر maximumWriteValueLength کے ذریعے MTU بڑھائیں۔ Connection Interval بھی رفتار کو متاثر کرتا ہے — یہ جتنا چھوٹا ہوگا، منتقلی اتنی ہی تیز ہوگی۔ بہترین امتزاج 10 گنا تک بہتری فراہم کرتا ہے۔

BLE میں Bonding کیا ہے؟

Bonding BLE آلات کے درمیان ایک مستقل محفوظ کنکشن بنانے کا طریقہ کار ہے۔ Bonding کے بعد، خفیہ کاری کی چابیاں محفوظ ہو جاتی ہیں، اور آلات بار بار تلاش کیے بغیر خود بخود جڑ جاتے ہیں۔

خلاصہ

  • Bluetooth Low Energy — کم سے کم بجلی کی کھپت اور 2 Mbps تک کی رفتار کے ساتھ IoT کے لیے وائرلیس مواصلاتی معیار
  • GATT ڈیٹا کو ہر عنصر کے لیے UUIDs کے ساتھ Service → Characteristic → Descriptor کے درجہ بندی میں ترتیب دیتا ہے
  • Core Bluetooth — CBCentralManager، CBPeripheral اور پس منظر کے طریقوں کے ساتھ iOS پر BLE کے لیے Apple کا فریم ورک
  • BluetoothGatt — BluetoothAdapter، BluetoothLeScanner اور واضح BLUETOOTH_SCAN اجازتوں کے ساتھ اہم Android API
  • iBeacon — CLLocationManager کے ذریعے iOS پر مقامی تعاون کے ساتھ BLE بیکن ٹیکنالوجی
  • Bonding خفیہ کاری کی چابیاں محفوظ کرنے کے بعد خودکار دوبارہ کنکشن کو قابل بناتا ہے
  • موبائل ایپلیکیشنز میں Bluetooth Low Energy کے لیے MTU، Connection Interval اور پلیٹ فارم کے پس منظر کی حدود پر غور کرنا ضروری ہے

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں