![]() |
Модераторы: javastic, AntonSaburov |
![]() ![]() ![]() |
|
AlexeySNG |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 17.7.2012 Репутация: нет Всего: нет |
Доброго времени суток! На яве программировать только учусь и синтаксис не совсем понятен для меня. Прошу знающих людей о помощи (при возможности с комментариями) - необходимо реализовать вот какую функцию - телефон с поддержкой JSR-82 при запуске программы постоянно через блютуз сканирует (то есть автоматически, не требуя нажатия кнопок для начала сканирования) и при нахождении устройств проверяет его (найденного устройства) имя, если имя предположим Dev1, Dev2, Dev3 - то переходит на подпрограмму 1, если имя Dev4,Dev5 - переходит на подпрограмму 2, если имя Dev6,Dev7 - на подпрограмму 3 и отображает Dev6, Dev7 в списке найденных устройств. Пожалуйста помогите кто может. Спасибо.
|
|||
|
||||
AlexeySNG |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 17.7.2012 Репутация: нет Всего: нет |
Помогите примером пожалуйста.
|
|||
|
||||
oxigen |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 12.4.2010 Репутация: 4 Всего: 4 |
Примером чего? Примеры базовых функций языка Вы можете найти в любой книге по Java
Про поиск bluetooth устройств можете почитать тут http://www.rsdn.ru/article/java/bluetooth.xml |
|||
|
||||
AlexeySNG |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 17.7.2012 Репутация: нет Всего: нет |
Вот здесь разъясняется как сделать поиск блютуз устройств http://meego.e-werest.org/blog/j2me/2538.html но дело вот в чём - после поиска устройств мне необходимо проверить имена заранее заданные в программе и выполнить какое либо действие в зависимости от найденного имени не показывая это (найденные устройства) на экране - то есть считать имя найденного устройства, сверить его с заданными, и выполнить действие в зависимости от имени найденного устройства. Сервисы на найденных устройствах искать не надо, это позже. И поиск БТ устройств что бы не останавливался, ну или произвёл поиск, сравнил имена с заданными, выполнил действие, продолжил поиск. По ссылке вроде всё расписано хорошо, пытаюсь делать в NetBeans - куча ошибок. Спасибо заранее.
|
|||
|
||||
oxigen |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 12.4.2010 Репутация: 4 Всего: 4 |
AlexeySNG, давайте свой код, давайте ошибки и тогда можно будет предметно смотреть, что там не так.
|
|||
|
||||
AlexeySNG |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 17.7.2012 Репутация: нет Всего: нет |
Вот какой код, не ругайтес сильно, только начинаю:
Ошибка 1 - deviceDiscovered(javax.bluetooth.RemoteDevice,javax.bluetooth.DeviceClass) in serv_SearchDevice cannot implement deviceDiscovered(javax.bluetooth.RemoteDevice,javax.bluetooth.DeviceClass) in javax.bluetooth.DiscoveryListener attempting to assign weaker access privileges; was public Ошибка 2 - missing method body, or declare abstract Ошибка 3 - cannot find symbol symbol: class BTmidlet location: class serv_SearchDevice Ошибка 4 - cannot find symbol symbol: variable localDevice location: class serv_SearchDevice Вот что пишет при компиляции : Compiling 1 source file to C:\Users\saa\Documents\NetBeansProjects\BTmidlet\build\compiled C:\Users\saa\Documents\NetBeansProjects\BTmidlet\src\BTMidlet.java:16: error: cannot find symbol public serv_SearchDevice(BTmidlet midl) { symbol: class BTmidlet location: class serv_SearchDevice C:\Users\saa\Documents\NetBeansProjects\BTmidlet\src\BTMidlet.java:25: error: method deviceDiscovered(RemoteDevice,DeviceClass) is already defined in class serv_SearchDevice public void deviceDiscovered(RemoteDevice remoteDevice, C:\Users\saa\Documents\NetBeansProjects\BTmidlet\src\BTMidlet.java:29: error: method startServiceSearch(RemoteDevice) is already defined in class serv_SearchDevice private void startServiceSearch(RemoteDevice device) {//Это не надо, сервисы не нужны C:\Users\saa\Documents\NetBeansProjects\BTmidlet\src\BTMidlet.java:31: error: method servicesDiscovered(int,ServiceRecord[]) is already defined in class serv_SearchDevice public void servicesDiscovered(int _int, ServiceRecord[] records) {//Это тоже не надо C:\Users\saa\Documents\NetBeansProjects\BTmidlet\src\BTMidlet.java:33: error: method serviceSearchCompleted(int,int) is already defined in class serv_SearchDevice public void serviceSearchCompleted(int _int, int _int1) { C:\Users\saa\Documents\NetBeansProjects\BTmidlet\src\BTMidlet.java:36: error: method inquiryCompleted(int) is already defined in class serv_SearchDevice public void inquiryCompleted(int _int) { C:\Users\saa\Documents\NetBeansProjects\BTmidlet\src\BTMidlet.java:12: error: servicesDiscovered(int,ServiceRecord[]) in serv_SearchDevice cannot implement servicesDiscovered(int,ServiceRecord[]) in DiscoveryListener void servicesDiscovered(int _int, ServiceRecord[] records); attempting to assign weaker access privileges; was public C:\Users\saa\Documents\NetBeansProjects\BTmidlet\src\BTMidlet.java:13: error: serviceSearchCompleted(int,int) in serv_SearchDevice cannot implement serviceSearchCompleted(int,int) in DiscoveryListener void serviceSearchCompleted(int _int, int _int1); attempting to assign weaker access privileges; was public C:\Users\saa\Documents\NetBeansProjects\BTmidlet\src\BTMidlet.java:14: error: inquiryCompleted(int) in serv_SearchDevice cannot implement inquiryCompleted(int) in DiscoveryListener void inquiryCompleted(int _int); attempting to assign weaker access privileges; was public C:\Users\saa\Documents\NetBeansProjects\BTmidlet\src\BTMidlet.java:10: error: deviceDiscovered(RemoteDevice,DeviceClass) in serv_SearchDevice cannot implement deviceDiscovered(RemoteDevice,DeviceClass) in DiscoveryListener void deviceDiscovered(RemoteDevice remoteDevice, DeviceClass deviceClass); attempting to assign weaker access privileges; was public C:\Users\saa\Documents\NetBeansProjects\BTmidlet\src\BTMidlet.java:11: error: missing method body, or declare abstract void startServiceSearch(RemoteDevice device); C:\Users\saa\Documents\NetBeansProjects\BTmidlet\src\BTMidlet.java:15: error: missing method body, or declare abstract public serv_SearchDevice(); C:\Users\saa\Documents\NetBeansProjects\BTmidlet\src\BTMidlet.java:17: error: cannot find symbol midlet = midl; symbol: variable midlet location: class serv_SearchDevice C:\Users\saa\Documents\NetBeansProjects\BTmidlet\src\BTMidlet.java:19: error: cannot find symbol localDevice = LocalDevice.getLocalDevice(); symbol: variable localDevice location: class serv_SearchDevice C:\Users\saa\Documents\NetBeansProjects\BTmidlet\src\BTMidlet.java:20: error: cannot find symbol discoveryAgent = localDevice.getDiscoveryAgent(); symbol: variable discoveryAgent location: class serv_SearchDevice C:\Users\saa\Documents\NetBeansProjects\BTmidlet\src\BTMidlet.java:20: error: cannot find symbol discoveryAgent = localDevice.getDiscoveryAgent(); symbol: variable localDevice location: class serv_SearchDevice C:\Users\saa\Documents\NetBeansProjects\BTmidlet\src\BTMidlet.java:21: error: cannot find symbol discoveryAgent.startInquiry(DiscoveryAgent.GIAC, this); symbol: variable discoveryAgent location: class serv_SearchDevice C:\Users\saa\Documents\NetBeansProjects\BTmidlet\src\BTMidlet.java:27: error: cannot find symbol remoteDevices.addElement(remoteDevice); symbol: variable remoteDevices location: class serv_SearchDevice C:\Users\saa\Documents\NetBeansProjects\BTmidlet\src\BTMidlet.java:37: error: cannot find symbol for (int i = 0; i < remoteDevices.size(); i++) { symbol: variable remoteDevices location: class serv_SearchDevice C:\Users\saa\Documents\NetBeansProjects\BTmidlet\src\BTMidlet.java:39: error: cannot find symbol midlet.ListDev.addElement(((RemoteDevice) remoteDevices.// symbol: variable remoteDevices location: class serv_SearchDevice C:\Users\saa\Documents\NetBeansProjects\BTmidlet\src\BTMidlet.java:39: error: package midlet does not exist midlet.ListDev.addElement(((RemoteDevice) remoteDevices.// C:\Users\saa\Documents\NetBeansProjects\BTmidlet\src\BTMidlet.java:43: error: cannot find symbol System.out.println("Device: " + remoteDevices); //Это не нужно, ведь отображать найденные устр-ва пока не надо symbol: variable remoteDevices location: class serv_SearchDevice C:\Users\saa\Documents\NetBeansProjects\BTmidlet\src\BTMidlet.java:45: error: cannot find symbol midlet.ShowList(); symbol: variable midlet location: class serv_SearchDevice 23 errors C:\Users\saa\Documents\NetBeansProjects\BTmidlet\nbproject\build-impl.xml:338: Compile failed; see the compiler error output for details. ПОСТРОЕНИЕ ЗАВЕРШЕНО СО СБОЕМ (общее время: 2 секунд) |
|||
|
||||
oxigen |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 12.4.2010 Репутация: 4 Всего: 4 |
Знаете, есть смысл начать с того, чтоб взять любой учебник по Java и написать Hello world.
После этого многие вопросы сами отпадут. А по самому коду: 1. В мобильном приложении должен быть класс, наследник javax.microedition.midlet.MIDlet Это точка входа в программу. 2. Имя класса должно совпадать с именем файла 3. В Java не нужно отдельно декларировать метод и отдельно писать реализацию. Все вместе должно быть. 4. Java строго типизированый язык - все переменные нужно объявлять. 5. Вы обращаетесь к классу BTmidlet, но его нет. |
|||
|
||||
AlexeySNG |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 17.7.2012 Репутация: нет Всего: нет |
Пытаюсь понять структуру самой программы вот на чём учусь (нашёл в сети)
Код работает без ошибок, но: 1) Мне не нужен вывод на экран 2) Не нужен поиск сервисов в найденных устройствах 3) Из найденных устройств провести проверку найденных имён и перейти на подпрограмму обработки (К примеру - Если в найденных именах присутствует имена Dev1, Dev2 перейти на подпрограмму1 если нет - продолжить поиск) Вопрос данная программа ищет только доступные для поиска устройства, или все? Можно ли как-то разделить поиск доступных и скрытых? Структура программы начинает потихоньку доходить до понимания ;) Классы,подклассы, расширения класса... Добавлено через 3 минуты и 39 секунд Не всё правда понятно, как например переменные объявляются в этом исходнике и где. Как вытащить данные из переменной с найденными БТ устройствами. Книги читаю - вот такую "В. Пирумян - Платформа программирования J2ME для портативных устройств" и вот такую "Горнаков.С. Программирование Мобильных Телефонов НаJ ava2MicroEdition" |
|||
|
||||
oxigen |
|
||||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 12.4.2010 Репутация: 4 Всего: 4 |
Примерно так.
Переменные объявляются вот тут переменные - поля класса. Видимые во всем классе
Или вот тут - локальная. Видимая только внутри метода
Скрытые для поиска потому и скрытые, что их нельзя найти. Это сообщение отредактировал(а) oxigen - 19.7.2012, 10:32 |
||||||
|
|||||||
AlexeySNG |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 17.7.2012 Репутация: нет Всего: нет |
Спасибо за ответ - с Вашей помощью понимать начинаю. Есть вопрос к Вам - Можно ли на J2ME написать программу что бы она динамически проверяла найденные по именам устройства, а не дожидалась завершения поиска, то есть запускаем поиск по блютуз и динамически (не останавливая поиск) проверяем найденные имена. Такое вообще возможно? Что то вроде радара...
|
|||
|
||||
oxigen |
|
||||
Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 12.4.2010 Репутация: 4 Всего: 4 |
Да. Смотрите:
Метод
Вызывается каждый раз, когда найдено очередное устройство. Делайте тут с найденым устройством что хотите. Сейчас оно просто сохраняется в векторе. Метод
вызывается, когда поиск закончен. Можете сразу же тут стартовать поиск заново. serv_SearchDevice() - запускает поиск. Интересно, за сколько времени подобное батарейку полностью скушает. |
||||
|
|||||
AlexeySNG |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 17.7.2012 Репутация: нет Всего: нет |
Ну батарейка это как говорится дело наживное
![]()
Правда int где объявить? ![]() |
|||
|
||||
oxigen |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 12.4.2010 Репутация: 4 Всего: 4 |
Нет. Что-то Вы тут намудрили.
Вы нашли одно устройство. С этим одним устройством и работаете.
Правда int где объявить? Это Вы о чем? int это тип. Это сообщение отредактировал(а) oxigen - 19.7.2012, 13:35 |
|||
|
||||
AlexeySNG |
|
|||
Новичок Профиль Группа: Участник Сообщений: 14 Регистрация: 17.7.2012 Репутация: нет Всего: нет |
Изменяюсь за ерунду с int - только учусь. Получается если устройства с нужными именами не найдены то эта процедура повторится пока не найдутся или этот кусок надо постоянно вызывать?
Спасибо. З.Ы. Я в асме для микроконтроллеров пишу, ява это для меня новое... Добавлено через 3 минуты и 48 секунд Кстати а имена устройств где нибудь (в какой нибудь переменной/переменных) можно перечислить нужные, а потом оттуда брать и сравнивать? |
|||
|
||||
oxigen |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 142 Регистрация: 12.4.2010 Репутация: 4 Всего: 4 |
Получается если устройства с нужными именами не найдены то эта процедура повторится пока не найдутся или этот кусок надо постоянно вызывать?
Смотри, как оно работает. Вызываешь discoveryAgent.startInquiry(DiscoveryAgent.GIAC, this); Дальше оно само там что-то как-то ищет. Как и каким образом, нам не видно. Но как только найдет одно устройство - сработает твой метод public void deviceDiscovered(RemoteDevice remoteDevice, DeviceClass deviceClass) {} И в параметрах придет информация о найденом устройстве. И так раз за разом, пока не найдет все. Как только все нашлось (или поиск прервался по другим причинам) - вызовется public void inquiryCompleted(int arg) {} То есть сам ты вызываешь только discoveryAgent.startInquiry(DiscoveryAgent.GIAC, this), когда хочешь начать поиск. Остальное происходит "само по себе". Кстати а имена устройств где нибудь (в какой нибудь переменной/переменных) можно перечислить нужные, а потом оттуда брать и сравнивать? Массив, вектор... |
|||
|
||||
![]() ![]() ![]() |
FAQ раздела лежит здесь! |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java ME (J2ME) | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |