2014-11-17 3 views
1

У меня есть два приложения с одинаковыми UISupportedExternalAccessoryProtocols. Они взаимодействуют с устройством MFI certified. Как я могу знать, что сеанс уже создан с другим приложением на том же устройстве. Поэтому я могу предупредить пользователя о том, что вы не можете создать несколько sessions с одним и тем же аксессуаром за раз.Могу ли я подключить один MFI-аксессуар с двумя приложениями одновременно

Пожалуйста, помогите исправить это. Спасибо заранее.

ответ

0

Ну, когда одно приложение подключается и устанавливает сеанс с вашим устройством MFI, вы можете отправить уведомление в NSDistributedNotificationCenter. Ваше другое приложение может подписаться и прослушать это сообщение, получив его и обработав в своем runLoop (когда оно вернется на передний план), вы можете иметь код, который блокирует его от создания сеанса одновременно. Вам придется поэкспериментировать с этим немного, но это можно сделать.

1

Я лично считаю, что ответ AyBayBay недействителен, так как вы отметили свой вопрос «тегом iOS» и NSDistributedNotificationCenter не поддерживается на этой платформе. (Существует низкий уровень api для этого, но я думаю, что это находится в частной структуре)

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

некоторые приложения -> расширение приложения -> мое приложение, связанное с ext.device -> ext.device

поэтому я уверен, что вы можете проверить, открыт сеанс или нет, и вернуть эту информацию в вызывающего приложения.

FYI: Чтобы передавать информацию в другое приложение, вы также можете использовать URLSchemes или UIPboardboard, но оба поведения по-другому, чем AppExtensions, и я думаю, что это не подходит для вашего дела. Возможно, это помогает кому-то еще ...