woz*_*woz 11 objective-c ios core-bluetooth
CBCentralManagerStateUnknown使用这个简单代码时,为什么要使用iPad 2?
- (BOOL)viewDidLoad {
bluetoothManager = [[CBCentralManager alloc] initWithDelegate:self queue:nil];
if ([manager state] == CBCentralManagerStatePoweredOff) NSLog(@"CBCentralManagerStatePoweredOff");
if ([manager state] == CBCentralManagerStatePoweredOn) NSLog(@"CBCentralManagerStatePoweredOn");
if ([manager state] == CBCentralManagerStateResetting) NSLog(@"CBCentralManagerStateResetting");
if ([manager state] == CBCentralManagerStateUnauthorized) NSLog(@"CBCentralManagerStateUnauthorized");
if ([manager state] == CBCentralManagerStateUnknown) NSLog(@"CBCentralManagerStateUnknown");
if ([manager state] == CBCentralManagerStateUnsupported) NSLog(@"CBCentralManagerStateUnsupported");
}
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚是什么CBCentralManagerStateUnknown意思.我该怎么办?在苹果的文档只是说:
状态不明,即将更新.
连接蓝牙设备时,以及蓝牙关闭时,我得到此响应.如果我尝试运行类似的东西[manager retrieveConnectedPeripherals],我也会在控制台中收到此消息:
CoreBluetooth[WARNING] <CBConcreteCentralManager: ...> is not powered on
Run Code Online (Sandbox Code Playgroud)
Bar*_*nas 16
我知道为什么委托从未被调用过.因为该对象已从内存中删除.只是做一个强大的财产
@property (strong, nonatomic) DiscoverBluetoothDevices *btDevices;
并在初始化
@implementation DiscoverBluetoothDevices
- (id) init
{
self = [super init];
if(self) {
centralManager = [[CBCentralManager alloc] initWithDelegate:self queue:dispatch_get_main_queue()];
[centralManager scanForPeripheralsWithServices:nil options:@{CBCentralManagerScanOptionAllowDuplicatesKey: @YES}];
}
return self;
}
Run Code Online (Sandbox Code Playgroud)
现在委托被正确调用.
| 归档时间: |
|
| 查看次数: |
7954 次 |
| 最近记录: |