Я создавал минимальный пример для обнаружения близлежащих устройств Bluetooth с помощью частной платформы BluetoothManager в iOS 5.0.
Используя ответ, найденный в этом вопросе: Поиск общих устройств Bluetooth в пределах досягаемости
Вот мой метод viewDidLoad для регистрации для BluetoothAvailabilityChangedNotification.Я также регистрируюсь на BluetoothDeviceDiscoveredNotification.
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(bluetoothAvailabilityChanged:)
name:@"BluetoothAvailabilityChangedNotification"
object:nil];
btCont = [BluetoothManager sharedInstance];
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(deviceDiscovered:)
name:@"BluetoothDeviceDiscoveredNotification"
object:nil];
Когда я получаю уведомление об изменении доступности Bluetooth, я включаю сканирование устройства включенным, как описано в одном из ответов в вышеупомянутой ссылке.
- (void)bluetoothAvailabilityChanged:(NSNotification *)notification
{
NSLog(@"BT State: %d", [btCont enabled]);
[btCont setDeviceScanningEnabled:YES];
}
Для полноты рассмотрим метод уведомления deviceDiscovered.
- (void)deviceDiscovered:(NSNotification *) notification
{
NSLog(@"Discovered one!");
}
Журналы, созданные при запуске тестового приложения, выглядят следующим образом:
BTM: attaching to BTServer
BTM: posting notification BluetoothAvailabilityChangedNotification
BT State: 1
BTM: setting device scanning enabled
К сожалению, телефон не 't вообще не подхватывает Bluetooth-устройства, хотя я знаю, что есть ближайшие обнаруживаемые устройства (проверено с помощью устройства Android).
Некоторые вещи, которые я уже пробовал:
- Вызов [btCont setPowered: YES];и регистрируясь для соответствующего уведомления об изменении состояния питания, выполняя setDeviceScanningEnabled: YES в обратном вызове
- Вызов [btCont resetDeviceScanning] до вызова setDeviceScanningEnabled
- Вызов scanForConnectableDevices: (unsigned int): unsigned int;метод, предполагающий, что arg1 может быть своего рода значением тайм-аута.Я пробовал разные значения, но безуспешно.
Любые мысли будут высоко оценены.Спасибо!