दिलचस्प पोस्ट
एक ग्रहण एंड्रॉइड प्रोजेक्ट को लाइब्रेरी / जार जोड़ना त्रुटि: मैवरिक्स पर मणि देशी एक्सटेंशन बनाने में विफल रहा .NET के लिए स्वत: अद्यतन लाइब्रेरी? नेस्टेड संग्रह इकाई फ़्रेमवर्क ऑब्जेक्ट फ़िल्टर कैसे करें? एमएस ऑफ़िस का स्थापित संस्करण कैसे पता लगा सकता है? नया फ़ायरबेज क्लाउड मेसेजिंग सिस्टम के साथ अधिसूचना आइकन सामान्य प्रकार का जावा JavaFX लाइनचर्ट हॉवर मान SQL सर्वर में विदेशी कुंजी निर्भरता कैसे प्राप्त करें? एडीबी शुरू नहीं होगा एसएसएच के जरिए Xcode 6 के तहत एक्सकोडबिल्ड टेस्ट चलाने के समय टाइमआउट स्थैतिक चर थ्रेड्स के बीच साझा किए गए हैं? सीएसएस के साथ पीडीएफ के रूप में एक पूर्व तत्व सहेजें कैसे वास्तव में पांच के नियम को लागू करने के लिए? किसी अन्य ऐप से सेटिंग ऐप खोलना

उपलब्ध ब्लूटूथ डिवाइसों की सूची कैसे प्राप्त करें?

मैं वर्तमान में एक iPhone ऐप (Xcode 4.3.1, IOS 5) का निर्माण कर रहा हूं जो ब्लूटूथ डिवाइस का उपयोग कर सकते हैं! इस एप्लिकेशन का मुख्य लक्ष्य इनडोर नेविगेशन है (इमारतों के अंदर जीपीएस वास्तव में सटीक नहीं है)।

केवल एकमात्र उपाय जो मैं यहां देखता हूं (ऐपस्टोर पर अपना ऐप रखने के लिए) उपलब्ध ब्लूटूथ उपकरणों के लिए स्कैन करने का प्रयास करना है!

मैंने CoreBluetooth फ़्रेमवर्क का उपयोग करने की कोशिश की, लेकिन मुझे उपलब्ध उपकरणों की सूची नहीं मिली! हो सकता है कि मैं इन कार्यों का सही ढंग से उपयोग न करें

#import <UIKit/UIKit.h> #import <CoreBluetooth/CoreBluetooth.h> @interface AboutBhyperView : UIViewController <CBPeripheralDelegate, CBCentralManagerDelegate> { CBCentralManager *mgr; } @property (readwrite, nonatomic) CBCentralManager *mgr; @end - (void)viewDidLoad { [super viewDidLoad]; mgr = [[CBCentralManager alloc] initWithDelegate:self queue:nil]; } - (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI { NSLog([NSString stringWithFormat:@"%@",[advertisementData description]]); } -(void)centralManager:(CBCentralManager *)central didRetrievePeripherals:(NSArray *)peripherals{ NSLog(@"This is it!"); } - (void)centralManagerDidUpdateState:(CBCentralManager *)central{ NSString *messtoshow; switch (central.state) { case CBCentralManagerStateUnknown: { messtoshow=[NSString stringWithFormat:@"State unknown, update imminent."]; break; } case CBCentralManagerStateResetting: { messtoshow=[NSString stringWithFormat:@"The connection with the system service was momentarily lost, update imminent."]; break; } case CBCentralManagerStateUnsupported: { messtoshow=[NSString stringWithFormat:@"The platform doesn't support Bluetooth Low Energy"]; break; } case CBCentralManagerStateUnauthorized: { messtoshow=[NSString stringWithFormat:@"The app is not authorized to use Bluetooth Low Energy"]; break; } case CBCentralManagerStatePoweredOff: { messtoshow=[NSString stringWithFormat:@"Bluetooth is currently powered off."]; break; } case CBCentralManagerStatePoweredOn: { messtoshow=[NSString stringWithFormat:@"Bluetooth is currently powered on and available to use."]; [mgr scanForPeripheralsWithServices:nil options:nil]; //[mgr retrieveConnectedPeripherals]; //--- it works, I Do get in this area! break; } } NSLog(messtoshow); } 

मैं इस रेखा के बारे में निश्चित नहीं हूँ, कैसे सही पैरामीटर पारित करने के लिए?

 [mgr scanForPeripheralsWithServices:nil options:nil]; 

मैं सेब संदर्भ में एक नज़र लिया .. और मुझे अभी भी समझ नहीं आ रहा है कि सीबीयूयूआईडीआईडी ​​क्या है ??? हर डिवाइस में कुछ ब्लूटूथ आईडी है? मैं इसे कहाँ पा सकता हूँ?

 - (void)scanForPeripheralsWithServices:(NSArray *)serviceUUIDs options:(NSDictionary *)options; 

पैरामीटर सेवा यूयूआईडी – सीबीयूआईआईडीएस की एक सरणी में एप की दिलचस्पी है विकल्प – स्कैन को अनुकूलित करने के लिए एक शब्दकोश, देखें CBCentralManagerScanOptionAllowDuplicatesKey

आईओएस पर ब्लूटूथ का उपयोग करने का कोई दूसरा तरीका है? मेरा मतलब है, पुराने ढांचे जो कि BLE 4.0 का उपयोग नहीं करते हैं!

किसी भी सलाह की सराहना की जाएगी!

धन्यवाद!

वेब के समाधान से एकत्रित समाधान "उपलब्ध ब्लूटूथ डिवाइसों की सूची कैसे प्राप्त करें?"

यह मार्गदर्शिका ब्लूटूथ 3.0 के लिए आशाजनक दिख रही है। याद रखें कि CoreBluetooth ढांचे केवल ब्लूटूथ कम ऊर्जा (4.0) के लिए है Bluetooth.org के dev-pages पर आप विश्व स्तर पर परिभाषित सेवाओं के कुछ उदाहरण देख सकते हैं, और गुआन यांग उल्लेख करते हैं, आप देख सकते हैं कि हृदय गति सेवा 0x180 डी है यूनिट के यूयूआईडी का निर्माता द्वारा परिभाषित किया गया है।

संभवत: रास्ते में आपकी सहायता करने के लिए यहां एक कोड स्निपेट है

 // Initialize a private variable with the heart rate service UUID CBUUID *heartRate = [CBUUID UUIDWithString:@"180D"]; // Create a dictionary for passing down to the scan with service method NSDictionary *scanOptions = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:NO] forKey:CBCentralManagerScanOptionAllowDuplicatesKey]; // Tell the central manager (cm) to scan for the heart rate service [cm scanForPeripheralsWithServices:[NSArray arrayWithObject:heartRate] options:scanOptions] 

ब्लूटूथ में, "सेवाएं" हैं एक डिवाइस 1..N प्रकाशित 1..N सेवाएं, और प्रत्येक सेवा में 1..M विशेषताएं हैं प्रत्येक सेवा में यूआईआईडी नामक एक अद्वितीय पहचानकर्ता है।

उदाहरण के लिए, एक हृदय गति ब्लूटूथ सेंसर जो "दिल की दर" सेवा प्रदान करता है, यूयूआईडी 0x180 डी के साथ एक सेवा प्रकाशित करता है

( यहां अधिक सेवाएं)

इसलिए जब आप एक खोज करते हैं, आपको मापदंड के रूप में यूयूआईडी प्रदान करना होगा, यह बताएगा कि किस सेवा को खोजना है

आप उदाहरणों में से एक पर एक नज़र रखना चाहिए यहां प्रासंगिक रेखा है:

 [manager scanForPeripheralsWithServices:[NSArray arrayWithObject:[CBUUID UUIDWithString:@"180D"]] options:nil]; 

(मुझे पता है कि यह मैक ओएस एक्स का उदाहरण है, लेकिन आईओएस कोर ब्लूटूथ एपीआई बहुत ही समान है।)

CBUUID उन सेवाओं की पहचान करता है जिन्हें आप रुचि रखते हैं, न कि डिवाइस। मानक सेवाओं के पास 16-बिट UUID है, इस मामले में 0x180d के लिए हृदय की दर मॉनिटर या डिवाइस जानकारी के लिए शायद 0x180 ए, जबकि मालिकाना सेवाओं में 128-बिट UUID (16 बाइट्स) है।

अधिकांश डिवाइस डिवाइस सूचना सेवा को लागू करते हैं, इसलिए यदि आप बस किसी भी उपकरण की तलाश कर रहे हैं, तो आप [CBUUID UUIDWithString:@"180A"] कोशिश कर सकते हैं

जब आप डिवाइसों के लिए स्कैन कर रहे हैं, तो इसे देने का प्रयास करें

 NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:NO], CBCentralManagerScanOptionAllowDuplicatesKey, nil]; [self.centralManager scanForPeripheralsWithServices:nil options:options]; 

आप didDiscoverPeripheral प्रतिनिधि विधि पर उपकरणों की सूची प्राप्त करने में सक्षम होंगे

शांत रहें और https://github.com/l0gg3r/LGBluetooth का उपयोग करें

आपको बस इतना करना होगा

 [[LGCentralManager sharedInstance] scanForPeripheralsByInterval:4 completion:^(NSArray *peripherals) { }];