![]() |
|
Модераторы: javastic, AntonSaburov |
![]()
|
|
| yezh |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 18.12.2005 Где: Москва Репутация: нет Всего: нет |
Здравствуйте! Начал ковырять блютуф и не могу создать сервер для игры.
Вот код.
Проблема в том, что после connection = (StreamConnection) service.acceptAndOpen(); приложение дальше не работает (деббагер прерывается и пишет что application is running), хотя мидлет реагирует. И второй запущенный эмулятор (то же приложение, только в режиме клиента) не находит удаленное устройство... Как это можно исправить? |
|||
|
||||
| Antropoid |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 786 Регистрация: 1.6.2006 Где: &Ukraine==Ode ssa Репутация: 13 Всего: 16 |
это правильно, так и должно быть - выполнение потока srvBattle продолжится только после того, как 2-ой запущенный эмулятор (в режиме клиента) разрешит передачу данных.
ну это у тебя проблемы с клиентом... выкладывай код. P.S. можно вместо connection = (StreamConnection) service.acceptAndOpen(); делать сразу connection = service.acceptAndOpen(); -------------------- ![]() Задыхаясь от восторга заниматься чепухой. |
||||
|
|||||
| yezh |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 18.12.2005 Где: Москва Репутация: нет Всего: нет |
Нате класс. Писал ориентируясь на примеры.
|
|||
|
||||
| Antropoid |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 786 Регистрация: 1.6.2006 Где: &Ukraine==Ode ssa Репутация: 13 Всего: 16 |
Так поиск все-таки проходит? Выводится "NO DEVICES FOUND!"?
-------------------- ![]() Задыхаясь от восторга заниматься чепухой. |
|||
|
||||
| yezh |
|
||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 18.12.2005 Где: Москва Репутация: нет Всего: нет |
Да, именно это он и выводит.
Теперь - проверка нужна для того что бы не добавлять в список одно и тоже устройство несколько раз. Доки с сайта:
Так что в srd устройства добавляются после проверки что их нет в этом векторе! Вот идиот... совсем забыл что метод indexOf() возвращает -1! Лана, исправил и все равно появляется сообщение NO DEVICES FOUND! А еще сразу же ошибка
Это сообщение отредактировал(а) yezh - 21.11.2006, 08:52 |
||||
|
|||||
| Antropoid |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 786 Регистрация: 1.6.2006 Где: &Ukraine==Ode ssa Репутация: 13 Всего: 16 |
Само собой появляется, потому что notify нужно помещать в synchronized блок, а так программа не понимает, какой объект ты нотифаешь. Функция public void inquiryCompleted(int i) нормально не отрабатыавет. Сначал наведи порядок с потоками, а потом посмотрим, что там он тебе выдаст...
-------------------- ![]() Задыхаясь от восторга заниматься чепухой. |
|||
|
||||
| yezh |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 18.12.2005 Где: Москва Репутация: нет Всего: нет |
Спасибо, я уже разобрался с этим. Забыл отписаться )
|
|||
|
||||
| yezh |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 18.12.2005 Где: Москва Репутация: нет Всего: нет |
Еще вопрос: почему у меня список устройств появляется только когда я дебажу код? То есть если поставить точку остановки и потом прогонять по шагам код, то список устройств появляется, а если просто запускать то нет. Может у меня что то не обновляется? Код тот же
Еще не понимаю как определить есть ли на найденном/выбранном устройстве то приложение которое необходимо клиенту. Т.е. метод servicesDiscovered интерфейса DiscoveryListener находит все сервисы на удаленном устройстве. А какой из них мой? Это сообщение отредактировал(а) yezh - 21.11.2006, 10:55 |
|||
|
||||
| yezh |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 18.12.2005 Где: Москва Репутация: нет Всего: нет |
Вроде разобрался в чем ошибка. Программа должна дождаться окончания поиска доступных устройств, т.е. надо останавливать основной поток. переписал класс однако опять выскакивает та же java.lang.IllegalMonitorStateException. В чем ошибка? Подскажите плииз, а то уже совсем ничего не понимаю....
Кстати, вопрос с поиском необходимого мне сервиса остается открытым |
|||
|
||||
| Antropoid |
|
||||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 786 Регистрация: 1.6.2006 Где: &Ukraine==Ode ssa Репутация: 13 Всего: 16 |
неизвестно почему (может как-то связано с полнолунием...)
wait() тоже надо в synchronized блок помещать.
Это уже тебе решать... можно, например, отфильтровывать их по конкретному протоколу
и дальше уже работаешь с необходимым тебе сервисом record. -------------------- ![]() Задыхаясь от восторга заниматься чепухой. |
||||||||||
|
|||||||||||
| yezh |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 18.12.2005 Где: Москва Репутация: нет Всего: нет |
не, я так понял, пока он останавливается, пока проходят некоторые строки и т.д. и т.п. запрос уже завершается и нормально выдается )). Спасибо за подсказку все заработало.
А я думал надо что-то мутить с agent.searchServices(), ставить там определенные параметры и т.п... Спасибо, попробуем. |
||||||
|
|||||||
| Antropoid |
|
||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 786 Регистрация: 1.6.2006 Где: &Ukraine==Ode ssa Репутация: 13 Всего: 16 |
ну, вообщем, это тоже... если тебе нужен сервис работающий по RFCOMM (stream data), то делаешь так:
L2CAP (packet data) так:
и т.д. -------------------- ![]() Задыхаясь от восторга заниматься чепухой. |
||||||
|
|||||||
| yezh |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 95 Регистрация: 18.12.2005 Где: Москва Репутация: нет Всего: нет |
а где то есть описание этих ууидов?И еще - надо ли определять/менять набор параметров сервиса... В принципе я нашел запущенный на удаленном эмуляторе (хорошо звучит
|
|||
|
||||
| Antropoid |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 786 Регистрация: 1.6.2006 Где: &Ukraine==Ode ssa Репутация: 13 Всего: 16 |
http://java.sun.com/javame/reference/apis/jsr082/ класс UUID что ты называешь параметрами сервиса? Если протокол передачи данных, то определять - нужно, иначе не найдешь своего; менять - никак... если девайс предоставляет определенный набор протоколов, по которым возможно Bluetooth-взаимодействие с ним, то это его индивидуальная особенность, определенная производителем, и повлиять на это никак нельзя. -------------------- ![]() Задыхаясь от восторга заниматься чепухой. |
|||
|
||||
![]()
|
FAQ раздела лежит здесь! |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Java ME (J2ME) | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |