Отправка больших файлов с помощью Android Beam (или S-Beam)
Мне было поручено добавить поддержку приложения для передачи больших файлов данных (десятки мегабайт) с устройства на устройство через "NFC" на Android.
Я знаю, что подлинная NFC на Android мучительно медленна, но я знаю, что ICS поддерживает передачу больших объемов данных на Bluetooth; и Samsung имеют собственный механизм для того же самого через Wi-Fi Direct (S-Beam). Вот такой подход я бы хотел использовать.
К сожалению, я не могу найти никакой информации о том, как на самом деле это сделать.
Я посмотрел документацию по Android Beam, и там нет упоминаний о специальных механизмах для поддержки больших объемов данных; поэтому я взял стандартное приложение AndroidBeamDemo и просто добавил большой байтовый массив к размеру пакета, в надежде, что все будет просто работать. Кажется, что нет - отправка сообщения размером 10 КБ занимает около пяти секунд, а попытка отправить сообщение размером 1 МБ просто ничего не делает (хотя и говорит, что сообщение было успешно отправлено).
Что касается Samsung S-Beam, я просто не могу найти никакой документации вообще.
Кто-нибудь сделал эту работу, и если так, могут ли они привести мне пример?
1 ответ
Для Android Beam необходимо предоставить URI для файлов с данными, используя setBeamPushUris()
(или же setBeamPushUrisCallback()
если данные не зафиксированы).
Что касается S-Beam, я не знаю ни одного API, который можно использовать. AFAICT, S-Beam работает только со встроенными приложениями для изображений, видео и музыки.