2013-09-19 3 views
48

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

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

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

+0

Я добавил API Bump к моему ответу, поскольку он выглядит очень привлекательным способом реализации передачи данных для небольших полезных нагрузок. – allprog

ответ

71

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

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

  1. Bonjour через Wi-Fi, как вы упомянули. Однако я не смог найти исчерпывающий учебник для этого.
  2. Некоторые интернет-службы синхронизации, такие как Dropbox, Google Диск, Amazon S3. У них обычно есть библиотеки для нескольких платформ.
  3. Прямая связь TCP/IP через сокеты. (How to write a small (socket) server in iOS)
  4. Bluetooth Low Energy будет возможно после того, как вопросы на Android стороне решены (Communicating between iOS and Android with Bluetooth LE)

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

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

+2

Просто на Bump API, я обнаружил, что он не использует bluetooth! Он отправляет данные с технологией NFC, которая находится всего на несколько сантиметров. Или я что-то упустил? –

+2

Согласно веб-сайту Bump, их API прекращен с 31 января 2014 года. – capikaw

+0

Спасибо, я обновил ответ соответствующим образом. – allprog

3

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

Как 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.

1

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

+0

Итак, какие API мы действительно используем для передачи данных с использованием Bluetooth LE и какой диапазон? –

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