Связь между устройством Android и iOS довольно проста с использованием Bluetooth ЛЕ. Здесь я могу выполнять простые команды и передавать небольшие данные между ними. Но застряли, когда дело доходит до передачи больших данных, таких как изображения, видео, документы, через Bluetooth с устройства Android в приложение iOS.
Хотя передача больших данных с Android на Android происходит через Bluetooth-сокеты, могу ли я в любом случае добиться передачи изображений и видео через Bluetooth на iOS?
Я изучал эту тему довольно давно, но во всех документах говорилось то же самое, что это невозможно с помощью iOS. Может ли кто-нибудь пролить свет на этот подход?...
@user1241241 user1241241 дело не в коде, а в подходе к достижению. в настоящее время я использую подход BLE для отправки и получения данных, который намного медленнее, чем обычное соединение Bluetooth.
Вы пробовали использовать прямой Wi-Fi?
если нет, вам нужно исследовать Wi-Fi напрямую. Я реализовал его в прошлом для передачи файлов между платформами. Скорость передачи была молниеносной.
@VladyslavMatviienko Я не вижу альтернативы Android-библиотеке BluetoothSocket в iOS
@ user1241241 спасибо, но мои возможности ограничены Bluetooth. в настоящее время мы отправляем данные с помощью Wi-Fi.
ты не можешь получить большую часть этого. возможно, вам придется изучить другие доступные варианты, кроме Bluetooth. Одним из таких вариантов может быть nanohttpd.
@user1241241 user1241241 да, это последняя точка зрения, но перед этим хотел узнать, исследовал ли кто-нибудь эту опцию для отправки и получения больших данных через BT в iOS.
попытайтесь уменьшить ваши кадры данных на мелкие фрагменты и передавать их одновременно. Вы получите потрясающую скорость, такую же, как и прямой Wi-Fi. Я пробовал это раньше /
@user1241241 user1241241, конечно, позвольте мне попробовать это и дайте вам знать, если это сработает! .. спасибо
BluetoothSocket android library
вам не нужно использовать какую-либо библиотеку для этого
Одной из причин может быть строгая политика iOS в отношении использования батареи. Из нашей команды разработчиков я знаю, что при обновлении прошивки для одного из наших периферийных устройств с помощью BLE им необходимо ограничить скорость передачи BLE. Если они этого не сделают, iOS убьет приложение через некоторое время, потому что оно потребляет слишком много энергии в течение более длительного периода времени.
Вопросы по пропускной способности см., например:
Ограничение периферийной пропускной способности BLE
Bluetooth BLE Android записывает на периферийное устройство с максимальной пропускной способностью
Как я могу увеличить пропускную способность моего приложения BLE?
Короче говоря, обратите внимание на интервал подключения, размер MTU и, если возможно, расширение длины пакета BLE. Но также знаю, что пропускная способность BLE обычно ниже, чем пропускная способность EDR, исходя из моего опыта.
в настоящее время мы используем BLE для выполнения простых команд и передачи небольших данных, но когда дело доходит до больших данных, таких как изображения или видео, BLE работает медленнее, чем у Classic BT.
ах, теперь я лучше понимаю ваш вопрос. Я продлю свой ответ
Потратив некоторое время на Bluetooth и BLE, вот мои наблюдения:
В БЛЭ:
Данные могут быть переданы макс. 185 при записи без характеристик ответа, но для характеристик записи оно может достигать 512. при расчете скорости соединения в BLE
Throughput = (1000ms) * (no. of packet for time interval) * (Data per packet) / (connection Interal in ms)
что приближается к 193 кбит/с для (183-байтовый пакет, поскольку 3 байта являются заголовком), но практически я дошел до 72 кбит/с.
Для классического Bluetooth:
Платформа от Apple недоступна, но вы можете зарегистрироваться в программе Apple MFI и использовать внешнюю вспомогательную структуру для подключения.
одно устройство серверное, другое клиентское. Клиент подключается к серверу, у них обоих есть сокеты (или потоки) для чтения и записи байтов. Чтение/запись байтов на изображение/видео или что угодно через эти потоки.