Я не могу получить базовое bluetooth, работающее на моем iPad.Не может показаться, что ядро bluetooth работает
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
никогда не будет регистрироваться и устройства никогда не обнаружены. Я убедился, что bluetooth включен в моих настройках.
Что не так с кодом? Может ли быть так, что не обнаружено никаких применимых устройств? Я могу открыть мой iMac в настройках bluetooth.
Кроме того, может ли Core Bluetooth (работает на устройстве с bluetooth LE) обнаруживать устройства без bluetooth LE? Например, беспроводная гарнитура?
Вы уверены, что это не можете сделать с Mac OS X? У моего MacBookAir есть BLE-чип. И кажется, что CoreBluetooth с Peripheral & Central работает как минимум на 10,7 ... – Larme
Core Bluetooth на Mac OS X 10.7 и iOS 5 поддерживает только центральный режим. iOS 6 поддерживает периферийный режим, но 10.8 все еще не работает. Таким образом, вы можете подключаться к периферийному устройству Bluetooth Low Energy с использованием iOS 5 или более поздней версии или OS X 10.7 или новее, но вы можете действовать только как периферийное устройство с помощью iOS 6. –
Самый простой способ подтвердить это: NS_CLASS_AVAILABLE (NA, 6_0) ' в заголовочном файле 'CBPeripheralManager' (первый аргумент - OS X, второй - версия iOS ->' NA' означает, что он не поддерживается на Mac). Кроме того, вы можете найти видео в формате WWDC в ответ, который я связал выше, где это описано более подробно, поскольку документация на самом деле очень бедна. –