2013-04-30 3 views
4

Мне нужно сделать приложение для подключения устройства iOS и Android (iPhone 5, iPad 3, Galaxy S3, Nexus 7, все они используют Bluetooth 4.0), а затем отправить данные друг другу.Можно ли подключить iOS и Android-устройство с помощью Bluetooth?

  • Этот лимит данных ограничен? Можем ли мы отправить что-то вроде фотографии или PDF-файла?

Я уже сделал спаривание и отправки данных между 2 устройствами IOS использования CoreBluetooth и образцом кодом от компании Apple BTLE_Transfer

Из того, что я понял, периферийный (сервер) может Рекламу на Центральном (Заказчик). Этот центр сканирует вокруг себя, а затем пытается найти Сервер, ища UUID рекламируемой услуги.

Когда я делаю сервер на Android, он ждет подключения (прослушивания), я знаю UUID и MAC-адрес моего сервера. Но когда я сканирую свой iPhone (сканирование для того же UUID, конечно), я не могу найти сервер.

  • Итак, есть ли возможность, чтобы сервер android мог рекламировать как периферийное устройство на iOS?
  • Или, возможно, для моего iPhone-клиента можно подключиться с использованием MAC-адреса сервера?
+0

Какого фреймворка с открытым исходным кодом Android вы используете для BLE? Вы видите это на своем iPhone, если вы не ищете ограничительный список периферийных устройств? Так как TexasInstruments предоставила основные этапы обновления прошивки по воздуху через BLE, она должна работать с большими файлами (я слышал, что вам нужно реализовать какие-то уведомления). – Larme

ответ

0

Я не уверен. Bluetooth LE не очень хорошая идея для передачи больших файлов. В одном запросе телефона у вас всего 18 байт.

Чипсет Bluetooth Nexus 7 имеет некоторые дефекты - не работает правильно.

Попробуйте бесплатное приложение для IPhone - голубой.

так ...

Первый вопрос: да.

Второй: Да, но это не очень хорошая идея. Адрес MAc в Iphone чередуется каждые 10 минут, и все включаются/выключаются bluetooth.

10

В: Этот объем данных ограничен? Можем ли мы отправить что-то вроде фотографии или PDF-файла?

Bluetooth Low Energy не оптимизирован для отправки больших объемов данных и не оптимизирован для потоковой передачи. Он более подходит для отправки небольших фрагментов данных (например, показаний температуры, времени и т. Д.). Пожалуйста, посмотрите на this answer, чтобы понять, как передача BLE отличается от классического Bluetooth. При этом вы можете отправлять большие объемы данных по BLE, а объем данных неограничен. Однако это может оказаться ненадежным и относительно медленным.

Вопрос: Есть ли возможность, чтобы сервер android мог рекламировать как периферийное устройство на iOS?

Будучи клиент/сервер это совершенно другая вещь, от того, периферийное/центральный: -

Peripheral/центральный определяет, как выполняется соединение. Центральное устройство должно инициировать соединение.Периферийное устройство должно рекламировать и ждать запроса на соединение.

Клиент/сервер диктует, как распределяются данные. Сервер Gatt хранит данные. Клиент Gatt может читать, писать или получать уведомление (получение непрерывного потока чтений) этих данных. В большинстве случаев сервер также является периферийным, но это необязательно.

Чтобы ответить на ваш вопрос, да, сервер может рекламировать как периферийное устройство на iOS. Однако для Android эта функция пока недоступна и будет частью выпуска следующей версии (Android L). Для получения дополнительной информации см. Это answer.

Вопрос: Или, возможно, для моего клиента iPhone можно подключиться с использованием MAC-адреса сервера?

Насколько я знаю, в coreBluetooth вам понадобится UUID, а не MAC-адрес периферийного устройства для подключения к нему. Вам не нужно знать, какие услуги рекламируются с периферийного устройства. Лучше всего было бы сканировать периферийные устройства, а затем подключаться к одному с UUID и/или рекламным данным, которые, как известно, принадлежат вашему периферийному устройству.

Надеюсь, это поможет.

0

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

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

Это может быть несколько способов сделать это самостоятельно, например, используя BLE или даже звук.

Чтобы быть честным, его большая работа, поэтому, если ваше приложение управляется конечным пользователем, я бы предложил использовать фреймворк, который может выполнять кросс-платформенное обнаружение для вас, например: http://p2pkit.io или google рядом.

Отказ от ответственности: я работаю на Uepaa развивающихся p2pkit для прошивки и Android

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