Пример минимального iOS BluetoothManager
Я создавал минимальный пример для обнаружения близлежащих устройств 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
К сожалению, телефон вообще не принимает Bluetooth-устройства, хотя я знаю, что есть приблизительные обнаруживаемые устройства (проверено с помощью устройства Android).
Некоторые вещи, которые я уже пробовал:
Вызов [btCont setPowered: YES]; и регистрируются для соответствующего уведомления об изменении состояния питания, выполняя setDeviceScanningEnabled: YES в обратном вызовеВызов [btCont resetDeviceScanning] до вызова setDeviceScanningEnabledВызов scanForConnectableDevices: (unsigned int) arg1; метод, предполагающий, что arg1 может быть своего рода значением времени ожидания. Я пробовал различные значения без успеха.Любые мысли будут высоко ценится. Спасибо!