Bluetooth اور Bluetooth Low Energy مختصر فاصلے پر ڈیٹا کی ترسیل کے لیے وائرلیس کمیونیکیشن کے معیارات ہیں۔ Bluetooth Classic (BR/EDR) آڈیو اور فائلوں کے لیے ایک مستحکم اسٹریمنگ چینل فراہم کرتا ہے، جبکہ BLE سینسرز اور پیری فیرلز کے ساتھ توانائی کی بچت کے کام کے لیے بہتر بنایا گیا ہے۔ Bluetooth SIG، 2025 کے مطابق، سالانہ 5 بلین سے زیادہ BLE معاون ڈیوائسز بھیجی جاتی ہیں — یہ معیار IoT، پہننے والی الیکٹرانکس اور موبائل لوازمات کی بنیاد بن گیا ہے۔
اہم نکات
Bluetooth ایک وائرلیس پرسنل ایریا نیٹ ورک (WPAN) معیار ہے جو 2.4 GHz ISM بینڈ میں کام کرتا ہے، 100 میٹر تک کے فاصلے پر ڈیوائس کمیونیکیشن کے لیے ڈیزائن کیا گیا ہے۔ IEEE 802.15.1 تصریح فزیکل اور MAC پرتوں کی وضاحت کرتی ہے، جبکہ Bluetooth SIG اسٹیک مخصوص منظرناموں کے لیے اعلیٰ سطحی پروفائلز کی وضاحت کرتا ہے: آڈیو ہیڈسیٹ (HSP)، فائل ٹرانسفر (OPP)، کی بورڈ ان پٹ (HID)۔
یہ معیار ورژن 4.0 (2010) سے دو شاخوں میں تقسیم ہو گیا: Bluetooth Classic (BR/EDR — Basic Rate / Enhanced Data Rate) اور Bluetooth Low Energy (BLE، سابقہ Bluetooth Smart)۔ Classic مسلسل سٹریمز — آڈیو کالز، موسیقی، فائلوں کے لیے ڈیزائن کیا گیا ہے۔ BLE ان ایپلیکیشنز کے لیے بنایا گیا تھا جہاں ڈیٹا دسیوں سیکنڈ یا منٹوں کے وقفوں کے ساتھ چھوٹے پیکٹوں میں منتقل ہوتا ہے — دل کی دھڑکن مانیٹر، ٹیگز، درجہ حرارت سینسر۔
Bluetooth SIG (2025) کے مطابق، نئے اسمارٹ فونز کا 99% دونوں ورژن کو سپورٹ کرتا ہے، اور BLE ماحولیاتی نظام میں Blood Pressure سے Environmental Sensing تک 15 سے زیادہ پروفائل اقسام شامل ہیں۔
Classic اور BLE کے درمیان انتخاب منظرنامے پر منحصر ہے: آڈیو سٹریمنگ کے لیے صرف Classic موزوں ہے، گھنٹے میں ایک بار سینسر کو پول کرنے کے لیے — صرف BLE۔ BR/EDR 1 MHz کے وقفے کے ساتھ 79 چینلز اور انکولی فریکوئنسی ہاپنگ (AFH) استعمال کرتا ہے، جو Wi-Fi مداخلت کے خلاف مزاحمت فراہم کرتا ہے۔
| پیرامیٹر | Bluetooth Classic (BR/EDR) | Bluetooth Low Energy (BLE) |
|---|---|---|
| ڈیٹا کی شرح | 1–3 Mbit/s (EDR) | 125 kbit/s – 2 Mbit/s (LE 2M PHY) |
| چوٹی کرنٹ | 10–30 mA | 5–15 mA |
| ایئر ٹائم | ~100 ms | ~3 ms |
| ٹوپولوجی | Piconet (1 ماسٹر، 7 تک غلام) | Broadcaster / Observer / Peripheral / Central |
| پروفائلز | HFP، A2DP، HSP، SPP، OPP | GATT پر مبنی (HRS، BLS، CTS، وغیرہ) |
| عام ڈیوائسز | ہیڈسیٹ، اسپیکر، کار ہینڈز فری | فٹنس ٹریکرز، ٹیگز، دل کی دھڑکن مانیٹر، IoT سینسرز |
| مطابقت | فزیکل سطح پر BLE کے ساتھ مطابقت نہیں رکھتا | ڈوئل موڈ چپس دونوں اسٹیک کو سپورٹ کرتی ہیں |
BLE 5.x نے LE Coded PHY کو 1 کلومیٹر (کھلی جگہوں پر) تک رینج بڑھانے کے لیے اور LC3 کوڈیک کے ساتھ LE Audio شامل کیا — نیا ورژن آہستہ آہستہ آڈیو منظرناموں کے لیے Classic اور BLE کے درمیان حد کو دھندلا کر رہا ہے۔
BLE اسٹیک تین تہوں میں تقسیم ہے: کنٹرولر (Controller) (فزیکل اور لنک تہیں)، ہوسٹ (Host) (L2CAP، ATT، GATT، سیکیورٹی مینیجر)، اور ایپلیکیشن (Application) (ایپ میں پروفائل کا نفاذ)۔ یہ علیحدگی چپ بنانے والے کو فرم ویئر میں کنٹرولر لاگو کرنے کی اجازت دیتی ہے، جبکہ موبائل ایپ ڈیولپر صرف GATT تجریدوں کے ساتھ کام کرتا ہے۔
لنک پرت (LL) ایئر ٹائم کا انتظام کرتی ہے: ڈیوائس Standby، Advertising، Scanning، Initiating اور Connection ریاستوں کے درمیان سوئچ کرتی ہے۔ Connected حالت میں، Central اور Peripheral کنکشن وقفے (ڈیٹا پیکٹ کے تبادلے کی فریکوئنسی) پر متفق ہوتے ہیں۔ ایک عام وقفہ 7.5–1000 ms ہے؛ جتنا زیادہ بار بار تبادلہ ہوگا، اتنا ہی زیادہ تھرو پٹ اور بجلی کی کھپت ہوگی۔
سیکیورٹی مینیجر (SM) جوڑی پروٹوکول کے ذریعے کلیدی تبادلے کے ساتھ AES-128 انکرپشن لاگو کرتا ہے۔ تین طریقے ہیں: Just Works (PIN داخل کرنے کے بغیر)، Passkey Entry (اسکرین پر 6 ہندسوں کا کوڈ)، اور OOB (NFC یا QR)۔ پہننے والے آلات کے لیے عام طور پر Just Works استعمال کیا جاتا ہے، طبی آلات کے لیے — اضافی تصدیق کے ساتھ OOB۔
Bluetooth Core Specification 5.4 (2023) کے مطابق، LE Secure Connections موڈ میں محفوظ کنکشن سیٹ اپ کا وقت 30 ms کے کنکشن وقفے پر 300 ms سے زیادہ نہیں ہوتا۔
ATT (ایٹری بیوٹ پروٹوکول) بنیادی ٹرانسپورٹ ماڈل ہے جہاں سرور (پیری فیرل ڈیوائس) ایٹری بیوٹس کو ذخیرہ کرتا ہے اور کلائنٹ (اسمارٹ فون) انہیں پڑھتا یا لکھتا ہے۔ GATT (جنرک ایٹری بیوٹ پروفائل) ATT کے اوپر ایک درجہ بندی بناتا ہے: Service → Characteristic → Descriptor۔
ہر سروس ایک ڈیوائس فنکشن کو بیان کرنے والی خصوصیات کا ایک منطقی گروپ ہے: Heart Rate Service (UUID 0x180D) میں Heart Rate Measurement خصوصیت (UUID 0x2A37) شامل ہے جس میں کلائنٹ کریکٹرسٹک کنفیگریشن ڈیسکرپٹر (0x2902) ہے جو اطلاعوں کو کنٹرول کرتا ہے۔ موبائل ایپ ڈیولپر discoverServices() کے ذریعے خدمات کی فہرست حاصل کرتا ہے، پھر UUID کے ذریعے مطلوبہ خصوصیت تلاش کرتا ہے اور اطلاعوں کو سبسکرائب کرتا ہے۔
BLE معیاری Bluetooth SIG خدمات کے لیے 16 بٹ UUID اور کسٹم مینوفیکچرر خدمات کے لیے 128 بٹ UUID استعمال کرتا ہے۔ مثال کے طور پر، ایک ٹریکر کیس اپنی بیٹری چارج لیول منتقل کرنے کے لیے خصوصیت کے ساتھ A000-… سروس کی وضاحت کر سکتا ہے۔
private val gattCallback = object BluetoothGattCallback() {
override fun onServicesDiscovered(
gatt: BluetoothGatt, status: Int
) {
val service = gatt.getService(UUID.fromString("0000180d-0000-1000-8000-00805f9b34fb"))
val char = service?.getCharacteristic(
UUID.fromString("00002a37-0000-1000-8000-00805f9b34fb")
)
gatt.setCharacteristicNotification(char, true)
}
override fun onCharacteristicChanged(
gatt: BluetoothGatt, char: BluetoothGattCharacteristic
) {
val heartRate = char.getIntValue(BluetoothGattCharacteristic.FORMAT_UINT8, 1)
updateUi("نبض: $heartRate نبض/منٹ")
}
}
مثال میں، ایپ معیاری Bluetooth SIG UUID کے ذریعے Heart Rate سروس تلاش کرتی ہے، دل کی دھڑکن کی پیمائش کی خصوصیت حاصل کرتی ہے اور اس کی اطلاعوں کو سبسکرائب کرتی ہے — جب بھی دل کی دھڑکن بدلتی ہے، پیری فیرل ڈیوائس Central سے واضح درخواست کے بغیر ڈیٹا بھیجتی ہے۔
Advertising BLE کا ایک اہم طریقہ کار ہے جس میں Peripheral ڈیوائس تین بنیادی چینلز (37، 38، 39) پر وقتاً فوقتاً براڈکاسٹ پیکٹ (advertising PDU) بھیجتی ہے۔ مرکزی ڈیوائس ان چینلز کو اسکین کرتی ہے، advertising ڈیٹا وصول کرتی ہے اور کنکشن شروع کر سکتی ہے۔
ایک advertising پیکٹ میں 31 بائٹس تک پے لوڈ ہوتا ہے: فلیگ، TX پاور لیول، مقامی نام، سروس UUID، مینوفیکچرر کے مخصوص ڈیٹا۔ یہ کنکشن قائم کیے بغیر سینسر ریڈنگ منتقل کرنے کے لیے کافی ہے — کنکشن لیس موڈ (Broadcaster قسم)۔ مسلسل ڈیٹا ٹرانسمیشن (مثلاً، منٹ میں ایک بار درجہ حرارت) کے لیے، 1000 ms تک کے کنکشن وقفے کے ساتھ کنکشن استعمال کیا جاتا ہے۔
موبائل پلیٹ فارمز پر، اسکیننگ startScan() (Android) یا scanForPeripherals() (iOS) کے ذریعے شروع کی جاتی ہے۔ سروس UUID کے ذریعے فلٹرنگ تمام نظر آنے والی ڈیوائسز پر کارروائی نہ کرکے توانائی بچاتی ہے — ایپ صرف متعلقہ ٹیگز یا سینسرز کے لیے کال بیک وصول کرتی ہے۔
import CoreBluetooth
class ScannerViewController: UIViewController {
private var centralManager: CBCentralManager!
override func viewDidLoad() {
centralManager = CBCentralManager(
delegate: self, queue: nil
)
}
func centralManagerDidUpdateState(central: CBCentralManager) {
if central.state == .poweredOn {
centralManager.scanForPeripherals(
withServices: nil, options: nil
)
}
}
func centralManager(
central: CBCentralManager,
didDiscover peripheral: CBPeripheral,
advertisementData: [String : Any],
rssi RSSI: NSNumber
) {
if let name = advertisementData[CBAdvertisementDataLocalNameKey] {
print("آلہ ملا: \(name)")
}
}
}
ڈیوائس دریافت کرنے کے بعد، Central CBPeripheral آبجیکٹ پاس کرتے ہوئے connect() کو کال کرتا ہے۔ کنکشن پیرامیٹرز (وقفہ، لیٹنسی، سپرویژن ٹائم آؤٹ) لنک لیئر کی سطح پر طے پاتے ہیں — ڈیولپر انہیں براہ راست منظم نہیں کرتا، لیکن Android پر requestConnectionPriority کے ذریعے متاثر کر سکتا ہے۔
دونوں موبائل پلیٹ فارم BLE کے ساتھ کام کرنے کے لیے مقامی APIs فراہم کرتے ہیں۔ Core Bluetooth (iOS) ایک ڈیلیگیٹ نقطہ نظر استعمال کرتا ہے: مرکزی مینیجر آپریشن شروع کرتا ہے، اور پیری فیرل آبجیکٹ ڈیلیگیٹ طریقوں کے ذریعے نتائج کی اطلاع دیتا ہے۔ android.bluetooth (Android) کال بیک انٹرفیس پر بنایا گیا ہے اور متعدد ڈیوائسز کے ساتھ متوازی GATT آپریشنز کو سپورٹ کرتا ہے۔
پلیٹ فارمز کے درمیان اہم فرق:
Bluetooth SIG ٹیسٹ (2024) کے مطابق، اسمارٹ فون اور فٹنس ٹریکر کے درمیان BLE کنکشن کا وقت Android پر اوسطاً 150–300 ms اور iOS پر 100–250 ms ہے — فرق ریڈیو فریکوئنسی ماڈیول مینجمنٹ پالیسیوں کی وجہ سے ہے۔
import 'package:flutter_blue_plus/flutter_blue_plus.dart';
class BleService {
final FlutterBluePlus fbp = FlutterBluePlus();
Future<void> scanAndConnect(String deviceName) async {
await fbp.startScan(timeout: Duration(seconds: 15));
await for (final result in fbp.scanResults) {
if (result.device.advName == deviceName) {
await fbp.stopScan();
await result.device.connect();
break;
}
}
}
}
Flutter ڈیولپر کو ایک متحد API انٹرفیس ملتا ہے؛ ہڈ کے نیچے، flutter_blue_plus کالز کو مقامی android.bluetooth یا Core Bluetooth میں ترجمہ کرتا ہے۔ یہ نقطہ نظر دونوں پلیٹ فارمز پر BLE پیری فیرلز کے ساتھ کام کرنے کے لیے ایپ ڈیولپمنٹ کا وقت کم کرتا ہے۔
اکثر پوچھے گئے سوالات
Bluetooth Classic (BR/EDR) مسلسل سٹریمنگ — آڈیو کالز، موسیقی، فائل ٹرانسفر کے لیے ڈیزائن کیا گیا ہے۔ BLE کم سے کم بجلی کی کھپت — سینسرز، ٹیگز، فٹنس ٹریکرز کے ساتھ چھوٹے ڈیٹا پیکٹ کے لیے بہتر بنایا گیا ہے۔ Classic 10–30 mA کھپت کرتا ہے، BLE — چوٹی پر 5–15 mA۔
فزیکل سطح پر یہ مطابقت نہیں رکھتے — مختلف ماڈیولیشن اور چینل میپ۔ تاہم، زیادہ تر جدید چپس ڈوئل موڈ ہیں اور دونوں اسٹیک کو لاگو کرتی ہیں۔ ڈوئل موڈ چپ والا اسمارٹ فون بیک وقت Classic ہیڈسیٹ اور BLE ٹریکر کے ساتھ بات چیت کر سکتا ہے۔
کنکشن وقفہ قائم کردہ کنکشن میں دو ڈیٹا پیکٹ کے درمیان کا وقت ہے۔ قدر 7.5 ms سے 4 سیکنڈ تک ہوتی ہے۔ وقفہ جتنا چھوٹا ہوگا، تھرو پٹ اتنا ہی زیادہ اور بجلی کی کھپت اتنی ہی زیادہ ہوگی۔ منٹ میں ایک بار رپورٹ کرنے والے درجہ حرارت سینسر کے لیے، 1000 ms کا وقفہ استعمال ہوتا ہے۔
جوڑی Central اور Peripheral کے درمیان خفیہ کاری کی کنجیوں کے تبادلے کا عمل ہے۔ BLE تین طریقوں کو سپورٹ کرتا ہے: Just Works (تصدیق کے بغیر)، Passkey Entry (اسکرین پر PIN داخل کرنا)، اور OOB (NFC یا QR کے ذریعے تبادلہ)۔ جوڑی کے بعد، ڈیوائسز کنجیوں کو محفوظ کرتی ہیں (بونڈنگ) اور بعد کے کنکشنز پر دوبارہ تصدیق کی درخواست نہیں کرتی ہیں۔
سب سے عام: دل کی دھڑکن مانیٹر کے لیے Heart Rate Profile (0x180D)، بلڈ پریشر مانیٹر کے لیے Blood Pressure Profile (0x1810)، درجہ حرارت اور نمی سینسر کے لیے Environmental Sensing (0x181A)، چارج لیول کے لیے Battery Service (0x180F)، ماڈل اور سیریل نمبر کے لیے Device Information (0x180A)۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں