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

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

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

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

16.02.2013, 00:28. Просмотров 3693. Ответов 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 - не клюет такое.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
elf32
-13 / 8 / 0
Регистрация: 15.02.2013
Сообщений: 87
16.02.2013, 22:49  [ТС]     Передача файлов через BlueTooth OPP / ContentResolver #21
у меня компактное приложение
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
16.02.2013, 22:56     Передача файлов через BlueTooth OPP / ContentResolver #22
не понял
elf32
-13 / 8 / 0
Регистрация: 15.02.2013
Сообщений: 87
16.02.2013, 23:03  [ТС]     Передача файлов через BlueTooth OPP / ContentResolver #23
ну зачем мне лишние классы подключать, с кучей не нужных методов
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
16.02.2013, 23:11     Передача файлов через BlueTooth OPP / ContentResolver #24
чтобы слушать изменения а нее самому перепроверять, это считается в сто раз правильнее...
плюс вы поток тормозите, нужен вывод в отдельный поток вашего кода.

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

Добавлено через 1 минуту
если ваш код запустить в UI потоке, то велика вероятность что пользователь увидит сообщение "программа не отвечает. закрыть?"

Добавлено через 3 минуты
обычно создаются множество дополнительных классов аля Handler, Listener, Callback, это нормальная практика.
elf32
-13 / 8 / 0
Регистрация: 15.02.2013
Сообщений: 87
16.02.2013, 23:40  [ТС]     Передача файлов через BlueTooth OPP / ContentResolver #25
да не, этот код будет в сервисе.
как раз в потоке и нужно ждать завершения передачи.
+своеобразный таймаут на 5 минут
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
16.02.2013, 23:41     Передача файлов через BlueTooth OPP / ContentResolver #26
в моем случае не нужно сервисов и потоков.
elf32
-13 / 8 / 0
Регистрация: 15.02.2013
Сообщений: 87
17.02.2013, 01:52  [ТС]     Передача файлов через BlueTooth OPP / ContentResolver #27
верно, но у меня другие задачи. я не выделяю сервис для передачи файла, сервис занимается другим делом, но когда постает задача отправить файл - он это должен сделать и дождатся результата, а потом уже на основании его решить что делать дальше.
Спасибо за помощь.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
17.02.2013, 02:29     Передача файлов через BlueTooth OPP / ContentResolver #28
а не будет ли такая реализация тормозить остальные задачи сервиса?

Добавлено через 2 минуты
если дополнительный поток не выделите, то до 300 секунд зависнет все на этом коде.

Добавлено через 1 минуту
да лишние запросы к БД нужно избегать при возможности.
elf32
-13 / 8 / 0
Регистрация: 15.02.2013
Сообщений: 87
17.02.2013, 02:54  [ТС]     Передача файлов через BlueTooth OPP / ContentResolver #29
Всё верно. зависнет пока не получит результат, так мне и надо ибо ничего более в сервисе не может работать пока не будет известен результат отправки.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
17.02.2013, 02:56     Передача файлов через BlueTooth OPP / ContentResolver #30
странный сервис какой-то)
elf32
-13 / 8 / 0
Регистрация: 15.02.2013
Сообщений: 87
09.03.2013, 14:48  [ТС]     Передача файлов через BlueTooth OPP / ContentResolver #31
Снова вернулся к данному вопросу.. А как передать файл используя API?
Я так понимаю, для передачи нужно использовать UUID OPP 00001105-0000-1000-8000-00805F9B34FB

Я вот создаю BluetoothSocket (createRfcommSocketToServiceRecord) вызываю connect, получаю Input/Output Stream, а дальше что? как передать файл? - просто записать содержимое файла в потом думае не прокатит, как минимум нужно ещё передать информацию о файле.
К тому же, напрмер при коннекте на андроиде 2.2, выдает ошибку (точно не помню какую), что-то связано с каналом. Видимо какой-то другой подход нужно использовать?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.03.2013, 14:04     Передача файлов через BlueTooth OPP / ContentResolver
Еще ссылки по теме:
Android Работа с устройством через bluetooth
Вывод данных полученных через Bluetooth на экран Android
Android Установка приложения на телефон через Bluetooth в Eclipse, используя BT адаптер
Android Передача int через extras
Android Передача данных через Intent

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

Или воспользуйтесь поиском по форуму:
elf32
-13 / 8 / 0
Регистрация: 15.02.2013
Сообщений: 87
20.03.2013, 14:04  [ТС]     Передача файлов через BlueTooth OPP / ContentResolver #32
актуально
Yandex
Объявления
20.03.2013, 14:04     Передача файлов через BlueTooth OPP / ContentResolver
Ответ Создать тему
Опции темы

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