我似乎无法在iPad上使用核心蓝牙。
ViewController.h
@interface ViewController : UIViewController <CBCentralManagerDelegate, CBPeripheralDelegate>
{
CBCentralManager *manager;
}
@end
ViewController.m
#import "ViewController.h"
@interface ViewController ()
@property (strong, nonatomic) IBOutlet UITextView *textField;
@end
@implementation ViewController
@synthesize textField;
- (void)viewDidLoad
{
[super viewDidLoad];
manager = [[CBCentralManager alloc] initWithDelegate:self queue:nil];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (IBAction)action:(id)sender {
textField.text = @"";
if (manager.state == CBCentralManagerStatePoweredOn) {
textField.text = @"Scanning...";
NSLog(@"scanning");
[manager scanForPeripheralsWithServices:nil options:nil];
} else {
textField.text = @"Error";
}
}
- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI {
NSLog(@"2");
textField.text = [NSString stringWithFormat:@"%@%@\n", textField.text, peripheral.name];
}
- (void)centralManagerDidUpdateState:(CBCentralManager *)central {
NSLog(@"d");
}
@end
永远不会记录 2
,也永远不会检测到设备。我确保在我的设置中启用了蓝牙。
代码有什么问题?可能只是没有发现适用的设备?我可以在蓝牙设置中发现我的iMac。
此外,Core Bluetooth(在具有蓝牙LE的设备上运行)可以检测非蓝牙LE设备吗?比如无线耳机?
答案 0 :(得分:2)
核心蓝牙仅适用于低功耗蓝牙,您所拥有的代码只会发现外围BLE设备,如BLE标签,心率监测器,传感器或iOS 6 devices in peripheral mode。
所以不,你不能通过这种方式检测你的iMac(OS X仍然没有通过Core Bluetooth的外设模式)或无线耳机。或者使用官方SDK的任何其他方式。