Передача данных между iOS и Android через Bluetooth?


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

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

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

3 53

3 ответа:

этот вопрос уже задавали много раз на этом сайте и окончательный ответ: нет, вы не можете подключить телефон Android к iPhone через Bluetooth и да Apple имеет ограничения, которые предотвращают это.

возможные варианты:

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

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

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

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

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

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

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

например:http://p2pkit.io или google рядом

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

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