0

У меня есть устройство Bluetooth, зарегистрированное в программе MFi. Я могу подключить устройство через Bluetooth в настройках iPhone, а затем использовать Пример кода Apple EADemo для доступа к устройству через фреймворк ExternalAccessory.Можете ли вы получить доступ к устройству Bluetooth через инфраструктуру ExternalAccessory после сопряжения с CoreBluetooth?

Однако, мне интересно, если это возможно, чтобы первый молча пары в фоновом режиме с помощью CoreBluetooth, а затем использовать ExternalAcessory рамки для связи с устройством?

Я провел несколько экспериментов, и после сопряжения с CoreBluetooth, инфраструктура ExternalAcessory не показывает подключенных устройств. Это может быть как CoreBluetooth, работающий по Bluetooth Low Energy, и ExternalAccessory, возможно, опережает Bluetooth Classic.

Несмотря на это, было бы намного лучше использовать интерфейс для подключения устройства из приложения, вместо того, чтобы оставлять приложение для доступа к настройкам. Если кто-то был в этой ситуации или имеет какие-либо идеи, пожалуйста, не стесняйтесь делиться любыми предложениями.

+0

Как вы говорите, Core Bluetooth предназначен только для BLE. MFI предназначен для устаревшего Bluetooth. Эти два не взаимодействуют с – Paulw11

+0

@larromba - у вас есть работа? Я тоже застрял в одном и том же месте. Пожалуйста, ответьте –

+0

@MridulGupta Я не нашел ответа, но соединение через «CoreBluetooth» не означает, что ваши устройства отображаются в структуре «ВнешнийАсследования». Я подозреваю, что вы теоретически могли бы подключиться с помощью «CoreBluetooth» и запустить устройство, чтобы попытаться подключиться через Bluetooth Regular, поэтому оно появляется в структуре «ExternalAcessory», однако, если оно не было спарировано в первый раз, вам все равно нужно соединить его вручную через настройки Bluetooth iOS. Чтобы что-либо сделать с картой 'ExternalAccessory', ваше оборудование должно быть зарегистрировано в программе MFi. Надеюсь, что поможет – larromba

ответ

0

Нет необходимости полагаться на CoreBluetooth рамки, если вы работаете с ExternalAcessory double delayInSeconds = 2; dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC)); dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ [[EAAccessoryManager sharedAccessoryManager] showBluetoothAccessoryPickerWithNameFilter:nil completion:nil]; });

Поместите этот код на нажатие кнопки или туда, куда вы хотите, этот код будет всплывающее окно, в котором будет отображаться список доступных программных устройств MFI, вам необходимо выбрать устройство, и он будет подключен.

После успешного подключения, вы получите уведомление EAAccessoryDidConnectNotification, вы должны слушать это, и вы можете получить соединять аксессуар с помощью - (void)_accessoryDidConnect:(NSNotification *)notification { EAAccessory *connectedAccessory = [[notification userInfo] objectForKey:EAAccessoryKey]; }

@ larromba- я надеюсь, что вы искали это.

+0

Спасибо, что разместили это. Это полезный код, но я имел в виду использование «CoreBluetooth» для бесшумного подключения в фоновом режиме (без необходимости выбора). Было бы здорово, если бы вы могли подключиться к внешнему аксессуару без вмешательства пользователя. Я уточню свой ответ, чтобы быть более конкретным. – larromba