2014-02-06 2 views
1

Мне нужно отправить ASCII-коды через bluetooth на стороннее устройство. Надеюсь, что это возможно с spp. Я мог ошибаться в терминологии. Я недостаточно знаю эту область программирования.didDiscoverPeripheral not called

В centralManagerDidUpdateState я сканирования для периферийных устройств:

CBUUID *cbuuidService = [CBUUID UUIDWithString:@"0x1101"]; 
NSArray *service = @[ cbuuidService ]; 
NSDictionary *options = @{ CBCentralManagerScanOptionAllowDuplicatesKey : @YES }; 
[central scanForPeripheralsWithServices:service options:options]; 

но didDiscoverPeripheral никогда не называли.

Я попытался сканировать без сервисов, и он имеет тот же эффект.

Что я делаю неправильно? Что мне нужно cbuuid и где я могу его найти? Спасибо за любую помощь.

+0

Вы установили делегата? У вас есть Bluetooth Low-Energy (а не классический bluetooth, вопрос CBUUID заставил меня задуматься), чтобы найти устройства? – Larme

+0

Да, я установил делегат так: m_centralManager = [[CBCentralManager alloc] initWithDelegate: self queue: nil]; О BLE я использую iPad Air и MacBook Air в паре. нет стороннего устройства. – Sauvage

+0

Просто я пытаюсь установить некоторую связь между двумя устройствами, пока у меня нет оригинального устройства. но ничего не нашел – Sauvage

ответ

1

Вы должны иметь один акт устройства в качестве центрального (что вы делаете) и один в качестве периферийного устройства. Предположим, что вы используете свой MB Air как центральный, вам нужно запустить CBPeripheralManager на своем iPad и опубликовать его и рекламировать. Затем вы сможете открыть его на своем MB.

Я думаю, что самый простой способ - получить рабочую периферию (например, ремень сердечного ритма), чтобы вы могли ознакомиться с использованием CBCentralManager. Тогда вы можете начать внедрять свою собственную периферию.

PS: Я не уверен, что правильно положить 0x в начале идентификатора.

+0

Спасибо, я понял из-за вашего объяснения – Sauvage

+0

как насчет клавиатуры Bluetooth или другого iphone вместо ремня частоты сердечных сокращений? Потому что, честно говоря, я не могу обнаружить никаких периферийных устройств. Я даже просматриваю все службы и до сих пор ничего не нашел. [центральное сканирование для периферийных устройствWithServices: варианты обслуживания: опции]; – iosMentalist

1

Believe CoreBluetooth очень прост в использовании.

Вместо того, чтобы работать с этим беспорядочным фреймворком, используйте LGBluetooth (он работает через CoreBluetooth).

 
    [[LGCentralManager sharedInstance] scanForPeripheralsByInterval:10 
                 completion:^(NSArray *peripherals) 
    { 
    }]; 

вот пример сканирования по интервалу.

Проверьте это https://github.com/l0gg3r/LGBluetooth