Переносить данные между iOS и Android через Bluetooth? - программирование
Подтвердить что ты не робот

Переносить данные между iOS и Android через Bluetooth?

Я читал о том, как передавать данные между устройствами iOS через Bluetooth с помощью GameKit. Я не пишу игру, по сути, но мне нужно перевести небольшое количество двоичных данных между двумя устройствами. Между двумя устройствами iOS это достаточно просто. Однако мне было интересно, можно ли передавать данные между устройством iOS и устройством Android через тот же механизм.

Кто-нибудь сталкивался с документацией/учебником, который бы объяснил, как это сделать? Это даже технически возможно? Или Apple поставила какие-то ограничения, которые помешали бы этому?

Другой вариант, который я обнаружил, - Bonjour по Bluetooth. Будет ли это более подходящим вариантом для такого типа операций?

4b9b3361

Ответ 1

Этот вопрос задавался много раз на этом сайте, и окончательный ответ: НЕТ, вы не можете подключить Android-телефон к iPhone через Bluetooth, а ДА У Apple есть ограничения которые предотвращают это.

Некоторые возможные альтернативы:

  • Bonjour через Wi-Fi, как вы упомянули. Однако я не смог найти исчерпывающий учебник для этого.
  • Некоторые интернет-службы синхронизации, такие как Dropbox, Google Drive, Amazon S3. Обычно у них есть библиотеки для нескольких платформ.
  • Прямая связь TCP/IP через сокеты. (Как написать небольшой (сокет) сервер в iOS)
  • Bluetooth Low Energy станет возможной после решения проблем на стороне Android (Связь между iOS и Android с Bluetooth LE)

Самая крутая альтернатива: используйте Bump API. Он поддерживает iOS и Android и очень легко интегрируется. Для небольших полезных нагрузок это может быть наиболее удобным решением.

Подробнее о том, почему вы не можете подключить произвольное устройство к iPhone. iOS позволяет использовать только некоторые профили bluetooth без сертификации Made For iPhone (HPF, A2DP, MAP...). Профиль Serial Port Profile, который вам потребуется для реализации связи, привязан к членству в MFi. Членство в этой программе предоставляет модуль проверки подлинности MFI, который должен быть добавлен к вашему оборудованию, и позаботится об аутентификации устройства по отношению к iPhone. Телефоны Android не имеют этого модуля, поэтому, даже если физическое соединение может быть создано, шаг аутентификации завершится неудачно. Связь iPhone с iPhone возможна, поскольку оба конца могут аутентифицироваться.

Ответ 2

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

Поскольку iOS еще не открыла API для подключения WiFi Direct и Multipeer Connectivity - это только iOS, я считаю, что лучший способ приблизиться к этому - использовать BLE, который поддерживается обеими платформами (некоторые лучше других).

На iOS устройство может действовать одновременно как BLE Central и BLE Peripheral, в то время как на Android ситуация сложнее, поскольку не все устройства поддерживают состояние периферийного устройства BLE. Кроме того, стек Android BLE очень нестабилен (на сегодняшний день).

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

Например: http://p2pkit.io или рядом с Google

Отказ от ответственности: я работаю на Uepaa, разрабатывая p2pkit.io для Android и iOS.

Ответ 3

Вы можете использовать p2pkit или бесплатное решение, на котором оно было основано: https://github.com/GitGarage. Не работает очень хорошо, а его фиксатор-верх наверняка, но его, ну, бесплатно. Сейчас работает для небольших объемов передачи данных.