2015-08-04 2 views
7

Я использую EAAccessoryManager для подключения моего приложения к аксессуару MFI. Во время начального соединения, на экране настройки Bluetooth, он отображается как подключенное устройство.EAAccessoryManager connectedAccessories возвращает пустой массив

Когда я пытаюсь получить список подключенного устройства, используя [accessoryManager connectedAccessories], он возвращает пустой массив. Но когда я использую showBluetoothAccessoryPickerWithNameFilter, он показывает мне аксессуар в списке.

Проблема в том, что я не хочу, чтобы пользователь выбирал аксессуар. Я хочу сделать это автоматизированным процессом. Я также включил строку вспомогательного протокола в info.plist. Пожалуйста, помогите мне с этим вопросом. Какую ошибку я здесь делаю?

+0

подключен прибор, когда он появляется в '' showBluetoothAccessoryPickerWithNameFilter? – Fennelouski

+0

@Fennelouski: ДА –

+0

@ArunKumarMunusamy, пожалуйста, ознакомьтесь с этим http://stackoverflow.com/questions/33388153/getting-issues-while-connecting-device-with-serial-bluetooth – Shivaay

ответ

1

Не могли бы вы попробовать эту функцию?

- (void)_getAttachedDevices; 
{ 
    EAAccessoryManager* accessoryManager = [EAAccessoryManager sharedAccessoryManager]; 
    if (accessoryManager) 
    { 
     NSArray* connectedAccessories = [accessoryManager connectedAccessories]; 
     NSLog(@"ConnectedAccessories = %@", connectedAccessories); 
    } 
    else 
    { 
     NSLog(@"No accessoryManager"); 
    } 
} 

Какой у вас результат?

Обязательно помните, что EAAccessory предназначен только для лицензионных аксессуаров Made-For-iPod/iPhone/iPad/AirPlay; поэтому, если у вас нет лицензионного аксессуара, вы всегда увидите пустой массив. У вас есть регулярный лицензионный аксессуар MFI?

В зависимости от того, если вы еще не прочитали его Apple Documentation.

EDIT 1:

Если вы все еще застряли попытаться осуществить уведомление для подключения/отключения:

[[EAAccessoryManager sharedAccessoryManager] registerForLocalNotifications]; 
[[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(accessoryDidConnect:) 
               name:EAAccessoryDidConnectNotification 
               object:nil]; 

[[NSNotificationCenter defaultCenter] addObserver:self 
              selector:@selector(accessoryDidDisconnect:) 
               name:EAAccessoryDidDisconnectNotification 
               object:nil]; 

Видите ли вы связь для вашего устройства? Если да попытаться получить список подключенных устройств на

accessoryDidConnect

+0

Я использую тот же код, который был указан выше , Это не объявление. FYI, я пытаюсь получить доступ к лицензионному аксессуару MFI. Но когда я иду на экран настройки Bluetooth, где отображается статус аксессуара, и когда я нажимаю на него, чтобы снова подключиться, и когда я ищу в приложении, то его показ. Странно .... –

+0

Я только что добавил подсказку уведомления; Надеюсь, это поможет. –

+0

Действительно, я использую те же коды. мой код отлично работает, когда я пытаюсь повторно подключиться вручную на экране настроек, как указано в вышеприведенном комментарии. Но во время первоначального подключения (Первое подключение) я столкнулся с этой проблемой (массив пуст). Я бы обвинил производителя оборудования, если бы он показал мне «showBluetoothAccessoryPickerWithNameFilter» также .. –

Смежные вопросы