| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Android > Пересылка файлов по bluetooth |
| Автор: DevGroup 5.5.2011, 16:20 | ||
| Здравствуйте! Пытаюсь реализовать программу, которая с использованием сервиса пересылает файлы по bluetooth. (Запускаю на HTC Wildfire, Android 2.2.1). С устройством связывается нормально, а вот саму передачу файла реализовать не получается:
В спецификации bluetooth читал, что сначала посылается код начала потока, затем имя файла и его размер, затем сам файл и в конце код конца потока. Но, к сожалению, нигде этих кодов найти не смог. Когда пытаюсь переслать файл на ноутбук (Windows 7), сначала ничего не пишет (не отображает прогресс принятия файла, хотя программа исправно пишет данные в поток), затем, в конце, когда вызываю mmSocket.close();, пишет: "Windows was unable to transfer some files Catastrophic failure" При попытке послать файл на телефон (Nokia) выдаёт только 2 сообщения: "Устройство ... подключено" и "Устройство ... отключено" Подскажите, пожалуйста, как наладить передачу файла? Заранее огромное спасибо за помощь! |
| Автор: alexvs11 5.5.2011, 16:24 |
| приведенный кусок кода мало о чем говорит 1. не знаю как это в андроиде работает, но вы уверены, что система понимает, что у вас opp профайл? 2. там точно не должно быть никакой управляющей инфы ибо обычный порядок работы профайла: - регистрация профайла в система (gap все дела) - установка транспорта (l2cap, rfcomm в андроиде вроде нету) - конфигурация профайла (opp в частности) - сама передача |
| Автор: ROKR 5.5.2011, 18:55 |
| Есть же готовый OPP в андроиде. Почему не использовать его классы для передачи? |
| Автор: DevGroup 7.5.2011, 17:21 | ||||
А Вы не могли бы поподробнее написать про Opp в андроиде? (желательно с примером) В Android SDK есть OutputStream (используется в примере BluetoothChat), который, насколько я понял, не даёт возможности выбрать OPP, FTP и т.п. В интернете нашёл исходники для посылки файла с помощью Opp (package http://codesearch.google.com/codesearch/p?hl=en#wr7bgCAJgcM/trunk/eclair/packages/apps/Bluetooth/src/com/android/bluetooth/opp/BluetoothOppService.java&q=android%20bluetooth%20clientoperation&d=10), но приспособить никак не получается - требуется javax.obex, другой класс BluetoothDevice (отличный от встроенного по дефолту в Android.jar) и т.д.. И собрать всё это вместе чтобы работало не удаётся( Попробовал использовать ObjectOutputStream:
Однако Windows на шаге "os = new ObjectOutputStream(mmSocket.getOutputStream());" выдаёт "Windows was unable to transfer some files Catastrophic failure" |
| Автор: DevGroup 8.5.2011, 20:09 | ||
| Итак, небольшой успех, может кому пригодится: Готовый Opp так и не нашёл, зато наткнулся на http://netwinder.osuosl.org/pub/netwinder/docs/nw/irda/IrOBEX12.pdf По нему сделал пересылку файлов:
На компьютер файл передаётся, а на телефон не хочет. Nokia вместо ответов на входящие пакеты (см. pdf OBEX) отсылает мои же пакеты обратно Если кто-нибудь подскажет где найти описание протокола для передачи файлов на телефон, буду очень благодарен) |