Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 29, средняя оценка - 4.72
elf32
-13 / 8 / 0
Регистрация: 15.02.2013
Сообщений: 87
#1

Передача файлов через BlueTooth OPP / ContentResolver - Программирование Android

16.02.2013, 00:28. Просмотров 3726. Ответов 31
Метки нет (Все метки)

Друзья, помогите пожалуйста!!! Уже второй день пляшу с бубном.

Передаю файл через BT OPP примерно так:
Java
1
2
3
4
5
6
7
8
9
10
11
        ContentValues values = new ContentValues();
 
        values.put("uri", "file://"+file);
        values.put("destination", mac);
        values.put("confirm", 2);   //USER_CONFIRMATION_AUTO_CONFIRMED
        values.put("visibility", 1);    //VISIBILITY_HIDDEN
        values.put("direction", 0); //DIRECTION_OUTBOUND
        values.put("timestamp", System.currentTimeMillis());
        
        ContentResolver cr = c.getContentResolver();
        Uri u = cr.insert(Uri.parse("content://com.android.bluetooth.opp/btopp"), values);
Всё замечательно работает, всё передается, НО - как мне получить результат передачи??????????
Передает в скрытом режиме, но потом выскакивает тост мсг типа (файл передан или нет) - как мне перехватить его, чтобы потом отобразить свой результат передачи???
Пытаюсь ловить android.btopp.intent.action.TRANSFER_COMPLETE - не клюет такое.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.02.2013, 00:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Передача файлов через BlueTooth OPP / ContentResolver (Программирование Android):

Передача данных через bluetooth - Программирование Android
сразу скажу я новичок в программировании так что не судите строго о моем вопросе. допустим нужно сделать приложение которое запускает...

Считать все файлы *.mp3 с определенного каталога через ContentResolver - Программирование Android
Подскажите, возможно ли так сделать? Или надо рекурсивно обходить каталог и добавлять найденные файлы в список? В таком случае информация...

Передача файлов через NFC - Программирование Android
У меня нет познаний в Java и тем более в программировании под Android, но так уж вышло что мне нужно сделать приложение, которое передаёт...

Передача данных по Bluetooth - Программирование Android
Проблема в следующем, после определенного количества переданных байт(зависит от телефона, на huawei ~ 500, на nexus 4 ~ 1700) от Андроида...

ContentResolver - Программирование Android
Для чего применяется класс ContentResolver?? И какие элементы относятся именно к UI потоку: Я знаю Activity, сервис, ресивер а что еще...

Передача данных андроид устр. - stm по bluetooth - Программирование Android
Здравствуйте, есть задача передавать данные с android планшета на на плату с микро-ом stm с bluetooth модулем. У bluetooth модуля...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
16.02.2013, 00:51 #2
ну наверное если "u" не null значит все в порядке.
elf32
-13 / 8 / 0
Регистрация: 15.02.2013
Сообщений: 87
16.02.2013, 00:56  [ТС] #3
А чего ей быть null? Конечно что всё в порядке. Я ж и говорю, что всё прекрасно работает, но я в своём приложении не знаю как увидеть результат этой работы.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
16.02.2013, 01:01 #4
Цитата Сообщение от elf32 Посмотреть сообщение
А чего её быть null?
в случае неудачной передачи например.
elf32
-13 / 8 / 0
Регистрация: 15.02.2013
Сообщений: 87
16.02.2013, 01:23  [ТС] #5
Вовсе нет. Uri в любом случае не будет null и не зависит от результата передачи.
insert это не API передачи файла. Inserts a row into a table at the given URL.
Uri известен ещё даже до отправки файла.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
16.02.2013, 01:28 #6
просто проверьте...

Добавлено через 2 минуты
или возможно по этому Uri можно как-то вытянуть статус передачи, проверьте что вообще получаете там...
elf32
-13 / 8 / 0
Регистрация: 15.02.2013
Сообщений: 87
16.02.2013, 01:30  [ТС] #7
Ну так по Uri то может и можно... я и спрашиваю - КАК?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
16.02.2013, 01:33 #8
insert делает вставку, в данном случае я так понимаю передачу файла и возвращает путь к вставленной строке, в данном случае возможно путь к переданному файлу или к строке в БД в которой возможно также хранится статус передачи. в случае неудачи естественно возвращается null

Добавлено через 49 секунд
посмотрите что в этом Uri записано то
elf32
-13 / 8 / 0
Регистрация: 15.02.2013
Сообщений: 87
16.02.2013, 01:54  [ТС] #9
Да не может там быть null, это совсем не причем.
null будет если на аппарате нет блютуза или content://com.android.bluetooth.opp/btopp.

Вот пример того что возвращает insert:
Uri: content://com.android.bluetooth.opp/btopp/120
Uri: content://com.android.bluetooth.opp/btopp/121
и т.д.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
16.02.2013, 02:02 #10
сделайте select по этим Uri и посмотрите что там есть.

Добавлено через 4 минуты
Returns
the URL of the newly created row.

соответственно если insert прошел неудачно, то будет только null
elf32
-13 / 8 / 0
Регистрация: 15.02.2013
Сообщений: 87
16.02.2013, 02:04  [ТС] #11
Зачем select? У меня один Uri.
insert возвращает один экземпляр Uri. Мне нужно дождатся завершения передачи и получить результат передачи, а потом либо отправить ещё какой-то файл, либо отключить блютуз. Ммне нужно получить результат отправки, а не результат вызова insert. Я не знаю как по Uri получить статус передачи.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
16.02.2013, 02:32 #12
вот я и говорю сделайте селект, там, вероятно, и записан результат передачи.

Добавлено через 14 минут
да, действительно, там есть поле status, а вот константы для него http://grepcode.com/file/repository....STATUS_PENDING

Добавлено через 24 секунды
нужно мониторить статус.

Добавлено через 10 минут
Цитата Сообщение от elf32 Посмотреть сообщение
Ммне нужно получить результат отправки
Цитата Сообщение от elf32 Посмотреть сообщение
а не результат вызова insert
ну, знали бы вы как работает контент провайдер поняли бы что это вполне могло бы быть одним и тем же.
elf32
-13 / 8 / 0
Регистрация: 15.02.2013
Сообщений: 87
16.02.2013, 02:51  [ТС] #13
Я знаю какие есть статусы. BluetoothShare почти наизусть знаю.

А вот что и как работает - с этим пока не очень, только начинаю. Особенно контент провайдер - я почему то решил что никогда с ним работать не буду и не уделил ему внимания при изучении материала.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
16.02.2013, 03:28 #14
делайте селек по полученому от инсерта Uri и мониторьте status

Добавлено через 57 секунд
и не нужно писать "visibility", используйте константы.

Добавлено через 22 минуты
Цитата Сообщение от elf32 Посмотреть сообщение
Пытаюсь ловить android.btopp.intent.action.TRANSFER_COMPLETE - не клюет такое.
как именно пытался ловить?

Добавлено через 7 минут
вот здесь вроде как готовый код мониторинга статуса http://grepcode.com/file/repository....Activity.0mUri

Добавлено через 1 минуту
даже прогрес отправки файла показывает.
elf32
-13 / 8 / 0
Регистрация: 15.02.2013
Сообщений: 87
16.02.2013, 03:49  [ТС] #15
В манифесте прописывал фильтр для BroadcastReceiver'а.
Динамически создавал ресивер с тем же фильтром и регистрировал - ничего не ловит.
Другие ловит,а вот с android.btopp нет.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2013, 03:49
Привет! Вот еще темы с ответами:

Просмотр файлов другого устройства по Bluetooth - Программирование Android
Здраствуйте, мне нужна помощь (я начинаю только программировать на андроид). Как на сэмпловском примере блютуз чата можно сделать...

Работа с устройством через bluetooth - Программирование Android
Требуется сделать приложение на андройд чтобы оно соединялось с блютуз устройством и приняло от него данные. Идея создать блютуз передатчик...

Вывод данных полученных через Bluetooth на экран - Программирование Android
Есть датчик dht22 с него приходят 2 показателя: Температура и влажность,требуется получить данные по блютус на смартфон и вывести на экран....

Установка приложения на телефон через Bluetooth в Eclipse, используя BT адаптер - Программирование Android
раньше телефон подключался по USB и приложения тестировались на нем. Теперь я купил BT адаптер и нужно проверить на нем. Можете подсказать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
16.02.2013, 03:49
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru