Пример минимального 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 может быть своего рода значением времени ожидания. Я пробовал различные значения без успеха.

Любые мысли будут высоко ценится. Спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос