如何获得配对的蓝牙设备

我想创build一个应用程序,在我的应用程序中显示配对的设备(例如在检测并显示我之前配对我的任何设备)。下一次,我想发送一个NSString“hello”)到配对设备。 我在谷歌search,我很困惑!

请先告诉我如何与我的手机配对设备,以及如何发送NSString值给他们。

这是你需要的一个例子:

你必须适应它来匹配你想要的。 但是你可以看到它是如何工作的

 @implementation ViewController { CBPeripheralManager *_peripheralManager; BOOL _isAdvertising; } - (void)_startAdvertising { NSUUID *estimoteUUID = [[NSUUID alloc] initWithUUIDString:@"B9407F30-F5F8-466E-AFF9-25556B57FE6D"]; CLBeaconRegion *region = [[CLBeaconRegion alloc] initWithProximityUUID:estimoteUUID major:2 minor:1 identifier:@"SimEstimote"]; NSDictionary *beaconPeripheralData = [region peripheralDataWithMeasuredPower:nil]; [_peripheralManager startAdvertising:beaconPeripheralData]; } - (void)_updateEmitterForDesiredState { if (_peripheralManager.state == CBPeripheralManagerStatePoweredOn) { // only issue commands when powered on if (_isAdvertising) { if (!_peripheralManager.isAdvertising) { [self _startAdvertising]; } } else { if (_peripheralManager.isAdvertising) { [_peripheralManager stopAdvertising]; } } } } #pragma mark - CBPeripheralManagerDelegate - (void)peripheralManagerDidUpdateState:(CBPeripheralManager *)peripheral { [self _updateEmitterForDesiredState]; } #pragma mark - Actions - (IBAction)advertisingSwitch:(UISwitch *)sender { _isAdvertising = sender.isOn; [self _updateEmitterForDesiredState]; } @end 

这用于监视:

 @implementation AppDelegate { CLLocationManager *_locationManager; BOOL _isInsideRegion; // flag to prevent duplicate sending of notification } - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)options { // create a location manager _locationManager = [[CLLocationManager alloc] init]; // set delegate, not the angle brackets _locationManager.delegate = self; NSUUID *estimoteUUID = [[NSUUID alloc] initWithUUIDString:@"B9407F30-F5F8-466E-AFF9-25556B57FE6D"]; CLBeaconRegion *region = [[CLBeaconRegion alloc] initWithProximityUUID:estimoteUUID identifier:@"Estimote Range"]; // launch app when display is turned on and inside region region.notifyEntryStateOnDisplay = YES; if ([CLLocationManager isMonitoringAvailableForClass:[CLBeaconRegion class]]) { [_locationManager startMonitoringForRegion:region]; // get status update right away for UI [_locationManager requestStateForRegion:region]; } else { NSLog(@"This device does not support monitoring beacon regions"); } // Override point for customization after application launch. return YES; } - (void)_sendEnterLocalNotification { if (!_isInsideRegion) { UILocalNotification *notice = [[UILocalNotification alloc] init]; notice.alertBody = @"Inside Estimote beacon region!"; notice.alertAction = @"Open"; [[UIApplication sharedApplication] scheduleLocalNotification:notice]; } _isInsideRegion = YES; } - (void)_sendExitLocalNotification { if (_isInsideRegion) { UILocalNotification *notice = [[UILocalNotification alloc] init]; notice.alertBody = @"Left Estimote beacon region!"; notice.alertAction = @"Open"; [[UIApplication sharedApplication] scheduleLocalNotification:notice]; } _isInsideRegion = NO; } - (void)_updateUIForState:(CLRegionState)state { ViewController *vc = (ViewController *)self.window.rootViewController; if (state == CLRegionStateInside) { vc.label.text = @"Inside"; } else if (state == CLRegionStateOutside) { vc.label.text = @"Outside"; } else { vc.label.text = @"Unknown"; } } #pragma mark - CLLocationManagerDelegate - (void)locationManager:(CLLocationManager *)manager didDetermineState:(CLRegionState)state forRegion:(CLRegion *)region { // always update UI [self _updateUIForState:state]; if ([UIApplication sharedApplication].applicationState == UIApplicationStateActive) { // don't send any notifications return; } if (state == CLRegionStateInside) { [self _sendEnterLocalNotification]; } else { [self _sendExitLocalNotification]; } } @end 

你可以在这个地址有完整的描述:

  http://www.cocoanetics.com/2013/11/can-you-smell-the-ibeacon/