Я хочу написать приложение для iPhone, которое сможет управлять радио и проигрывателем компакт-дисков в машине. Радио и плеер имеют Bluetooth-соединение.
Я начал этот вопрос, чтобы получить всю информацию, которая мне нужна для этого одного места. У меня мало вопросов, но если вы найдете что-то, о чем я не просил, важно для меня, чтобы начать разработку этого приложения, пожалуйста, дайте мне знать.
Я читал о профиле AVRCP и устройстве Bluetooth в автомобиле, поддерживающем AVRCP 1.3, что для меня достаточно хорошо, имея в виду элементы управления, которые могут выполняться в этой версии протокола.
Я много читал о людях, говорящих: «Устройства Apple могут взаимодействовать только друг с другом», «Устройство Apple не может быть подключено через Bluetooth к устройству стороннего производителя», «Программа MFi обязательна, если вы хотите это сделать», «MFi. не нужен »и т. д. Мой первый вопрос:
1) Можно ли подключить iPhone (4, 4S) к радио и проигрывателю компакт-дисков в машине через Bluetooth и управлять радиостанциями и музыкой с любой версии iPhone? Если да, то каковы ограничения для такого успешного подключения Bluetooth?
Также очень мало информации о ролях, в которых может работать iPhone. Для AVRCP существует два типа ролей: контроллер и целевая роль. Прочитав этот документ: https://developer.apple.com/hardwaredrivers/BluetoothDesignGuidelines.pdf Я не нашел ответа на свой второй вопрос:
2) Может ли iPhone действовать как контроллер и выдавать все доступные команды, указанные в AVRCP 1.3, на целевое устройство (радио и проигрыватель компакт-дисков)?
Я также хотел бы узнать о доступных фреймворках для этой конкретной проблемы. Я знаю, что их несколько, но если кто-нибудь найдет подходящий для моей проблемы, я хотел бы знать:
3) Какую платформу для взаимодействия с целевым устройством мне следует использовать?
С точки зрения разработчика меня также интересуют доступные API для взаимодействия с подключенным устройством Bluetooth. Поскольку я создаю собственное приложение и назначаю действия кнопкам, внутри методов, назначенных кнопкам, мне нужно выполнить отправку сообщений на целевое устройство. Итак, мой следующий вопрос:
4) Кто-нибудь знает, как, если есть способ отправлять команды на целевое устройство (запуск / остановка / пауза / вперед / назад и т. д.) как часть некоторого API, предоставленного в XCode, или каждое сообщение, которое я посещаю, для отправки через Bluetooth на целевое устройство, которое мне нужно создать в соответствии с документацией протокола (сделать все сообщение (заголовок, тело, часть команды и т. Д.) Самостоятельно)?
AVRCP был моей идеей для выполнения этого приложения. Если я ошибаюсь, дайте мне знать. Bluetooth имеет разные профили, и когда сообщение отправляется с одного устройства, насколько я понимаю, сам профиль обрабатывает сообщение, интерпретирует его и доставляет на целевое устройство, чтобы целевое устройство могло его понять. Я не понимаю, как обрабатывается сообщение, отправленное с iPhone на целевое устройство Bluetooth, с момента его отправки из моего кода Objective-C (или C). Это основное сомнение, которое у меня есть, и оно связано с вопросом 4 - нужно ли мне создавать необработанные сообщения в правильном формате, чтобы отправлять команды AVRCP на устройство, или я могу использовать какой-то API, который распознает эти сообщения как AVRCP (или любой другой) и доставить его на целевое устройство?
Этот последний вопрос (если я предполагаю, что на все предыдущие есть какой-то положительный ответ) беспокоит меня больше всего с точки зрения разработчика. Итак, если у кого-то, возможно, был опыт решения этой конкретной проблемы, я был бы признателен за любой ответ или совет.
Я очень жду ваших ответов. Надеюсь, что по этой теме начнется конструктивное и полезное обсуждение и будет написано много полезной информации.
С наилучшими пожеланиями.