|
20.08.2010, 14:46
|
#1
|
ПроЭктировщик
Регистрация: 22.11.2009
Сообщений: 137
Написано 8 полезных сообщений (для 8 пользователей)
|
Предположительно, JSR-179 : javax.microedition.location
Хотелось бы получить координаты со встроенного GPS. Нет ли у кого - нибудь русифицированной спецификации по этой апи?
__________________
---
|
(Offline)
|
|
20.08.2010, 15:39
|
#2
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Ответ: Предположительно, JSR-179 : javax.microedition.location
Обычно все GPS работают одинаково - а именно - открывает COM-порт на которм подключен GPS и читаем от туда данные.
Формат данных: NMEA
__________________
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
20.08.2010, 15:47
|
#3
|
Знающий
Регистрация: 20.03.2010
Сообщений: 271
Написано 16 полезных сообщений (для 32 пользователей)
|
Ответ: Предположительно, JSR-179 : javax.microedition.location
а либа есть для работы с этим портом ?
__________________
¯¯¯¯\——-/¯¯¯¯ респект любителям BMX
|
(Offline)
|
|
20.08.2010, 15:56
|
#4
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Предположительно, JSR-179 : javax.microedition.location
Либа для работы с COM-ом есть, но если есть пакет в j2me, нужно попробовать с ним разобраться, чтобы протокол с нуля не реализовывать, да и с правами доступа могут быть грабли.
|
(Offline)
|
|
20.08.2010, 16:12
|
#5
|
ПроЭктировщик
Регистрация: 22.11.2009
Сообщений: 137
Написано 8 полезных сообщений (для 8 пользователей)
|
Ответ: Предположительно, JSR-179 : javax.microedition.location
MIDP 2.1, насколько я знаю, вообще не поддерживает СОМ. А у меня именно он, + встроенный GPS. Во всех приложениях, которые пытаются с ним работать, содержится куча жутко вложенных папок, так что ковырять их, имхо, бесполезно. Нужно копать jsr 179...
Нашёл документацию на английском
http://www-users.cs.umn.edu/~czhou/d...e-summary.html
__________________
---
Последний раз редактировалось ViNT, 21.08.2010 в 03:28.
|
(Offline)
|
|
20.08.2010, 18:26
|
#6
|
Элита
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений (для 1,833 пользователей)
|
Ответ: Предположительно, JSR-179 : javax.microedition.location
Вот делал для своей Нокии 5800. Хотел, чтобы мои координаты отправляло на сервер. Работает, но где-то то ли утечка памяти, то ли что-то ещё, я уже не помню, но спустя сколько-то часов беспрерывной работы, приложение вылетает с эксепшеном.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
20.08.2010, 22:31
|
#7
|
ПроЭктировщик
Регистрация: 22.11.2009
Сообщений: 137
Написано 8 полезных сообщений (для 8 пользователей)
|
Ответ: Предположительно, JSR-179 : javax.microedition.location
ой йо... как всё запутанно. Особенно в a.java/
Сейчас буду копать
не компилируется 24 errors
похоже, у меня какая-то зараза пожрала jvm...
Сейчас буду компу мозги вправлять. Так что извините, какое-то время меня не будет
Да... Ещё вопрос, пока я не начал экзекуцию: NOKIA 2710 содержит компас, пока что я видел его в работе только в стандартных картах. Его как-нибудь можно прослушивать? Сенсоры вроде не поддерживаются.
__________________
---
Последний раз редактировалось ViNT, 21.08.2010 в 03:29.
|
(Offline)
|
|
21.08.2010, 00:20
|
#8
|
Злобный Админ
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений (для 9,330 пользователей)
|
Ответ: Предположительно, JSR-179 : javax.microedition.location
так компас вроде программно..по гпс сделан.
Определяем место потом движемся и ещё одно..у нас есть вектор нашего положения, и по координатам знаем где север - рисуем стрелочку.
__________________
|
(Offline)
|
|
21.08.2010, 00:50
|
#9
|
Троллота
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений (для 1,772 пользователей)
|
Ответ: Предположительно, JSR-179 : javax.microedition.location
Сообщение от SBJoker
так компас вроде программно..по гпс сделан.
Определяем место потом движемся и ещё одно..у нас есть вектор нашего положения, и по координатам знаем где север - рисуем стрелочку.
|
не факт, видал мобилу где натуральный магнитный встроен
|
(Offline)
|
|
21.08.2010, 19:18
|
#10
|
ПроЭктировщик
Регистрация: 22.11.2009
Сообщений: 137
Написано 8 полезных сообщений (для 8 пользователей)
|
Ответ: Предположительно, JSR-179 : javax.microedition.location
компас магнитный
__________________
---
|
(Offline)
|
|
26.10.2010, 03:40
|
#11
|
Оператор ЭВМ
Регистрация: 07.03.2010
Сообщений: 36
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Предположительно, JSR-179 : javax.microedition.location
IDOL, я понимаю, что ты с Nokia 2710 Navigator Edition мучаешься...
У меня возникли сразу вопросы по этой теме: хотел приобрести себе для трекинга автомобиля этот телефон.
1. Можно ли в нём узнать CellID и LAC через JavaMidlet?
2.Так же GPS-координаты?
3. На сколько хватает батарейки?
4. Можно ли обрабатывать кнопку гарнитуры из JavaMidlet, по нажатию на которую (в момент звонка) происходит ответ на входящий звонок?
|
(Offline)
|
|
29.10.2010, 14:21
|
#12
|
ПроЭктировщик
Регистрация: 22.11.2009
Сообщений: 137
Написано 8 полезных сообщений (для 8 пользователей)
|
Ответ: Предположительно, JSR-179 : javax.microedition.location
0) JavaMidlet - это java - приложение или какой-то метод?
1) CellD не пробовал, но, скорее всего, нет. (а зачем, если есть GPS??)
2) Думаю, что да. Яндекс-карты с ним работают нормально.
3) Если режиме навигации - то после 4 часов на плеер и игрушки можешь не рассчитывать. Кирпичом лежит почти месяц(не проверял ). При активном использовании экрана (чтение) - дольше, чем на 6 часов меня не хватило. В общем, часов 8-10.
4) подозреваю, что нет. Там взаимодействие Java с функциями прошивки практически отсутствует.
ps Ненавижу гопников. Уроды.
__________________
---
Последний раз редактировалось IDOL 1234, 29.10.2010 в 14:22.
Причина: очепятки
|
(Offline)
|
|
23.02.2011, 23:28
|
#13
|
AnyKey`щик
Регистрация: 23.02.2011
Сообщений: 6
Написано 0 полезных сообщений (для 0 пользователей)
|
Ответ: Предположительно, JSR-179 : javax.microedition.location
вот пример использования javax.microedition.location
взятый здесь
после его ковыряния написал либу к MP
но в нем тоже есть "костыли" - не ясна надобность сбрасывать ГПС постоянно.
import java.util.Timer; import java.util.TimerTask; import javax.microedition.location.Criteria; import javax.microedition.location.Location; import javax.microedition.location.LocationException; import javax.microedition.location.LocationListener; import javax.microedition.location.LocationProvider; import javax.microedition.location.QualifiedCoordinates; import net.rim.device.api.system.Application; import net.rim.device.api.system.Bitmap; import net.rim.device.api.ui.Field; import net.rim.device.api.ui.FieldChangeListener; import net.rim.device.api.ui.Manager; import net.rim.device.api.ui.Screen; import net.rim.device.api.ui.Ui; import net.rim.device.api.ui.UiEngine; import net.rim.device.api.ui.component.ButtonField; import net.rim.device.api.ui.component.Dialog; import net.rim.device.api.ui.component.LabelField; import net.rim.device.api.ui.component.RichTextField; import net.rim.device.api.ui.container.MainScreen; import bbtracker.uitl.BBTHTTPClient; public class BBTMainScreen extends MainScreen { public final static String LOCATION_URL = "YOUR SCRIPT LOCATION"; private RichTextField logField; private String log; private long lastGPSRead; public BBTMainScreen() { log = ""; setTitle(new LabelField("BBTracker GPS Fix", LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH)); ButtonField btn = new ButtonField("follow logs", ButtonField.CONSUME_CLICK); btn.setChangeListener(new ButtonListener()); this.add(btn); logField = new RichTextField("asdf"); this.add(logField); lastGPSRead = System.currentTimeMillis(); new LocationTracker(); } public boolean onClose() { Application.getApplication().requestBackground(); return false; } final class ButtonListener implements FieldChangeListener { public void fieldChanged(Field field, int context) { UiEngine ui = Ui.getUiEngine(); Screen screen = new Dialog(Dialog.D_OK, BBTMainScreen.this.log, Dialog.OK, Bitmap.getPredefinedBitmap(Bitmap.EXCLAMATION), Manager.VERTICAL_SCROLL); ui.queueStatus(screen, 1, true); } } class LocationTracker extends TimerTask { private double longitude, latitude; private Timer timer; private LocationProvider provider; public LocationTracker() { timer = new Timer(); resetGPS(); timer.schedule(this, 0, 60000); } public void resetGPS() { try { if(provider != null) { provider.setLocationListener(null, 0, 0, 0); provider.reset(); provider = null; } Criteria criteria = new Criteria(); criteria.setHorizontalAccuracy(1000); criteria.setVerticalAccuracy(1000); criteria.setCostAllowed(false); // criteria.setAltitudeRequired(false); // criteria.setSpeedAndCourseRequired(false); // criteria.setAddressInfoRequired(false); criteria.setPreferredPowerConsumption(Criteria.POWER_USAGE_LOW); provider = LocationProvider.getInstance(criteria); provider.setLocationListener(new MyLocationListener(), 10, -1, -1); // reset the gps counter so we wait another 5 mins before a reset lastGPSRead = System.currentTimeMillis(); } catch(Exception e) { log = e.toString() + log; } log = "reset gps\n" + log; } public void run() { if(log.length() > 3000) { log = log.substring(log.length() - 3000); } if(System.currentTimeMillis() - lastGPSRead > 300000) { BBTHTTPClient.getPage(LOCATION_URL + "?longitude=-1&latitude=-1"); resetGPS(); BBTHTTPClient.getPage(LOCATION_URL + "?longitude=-2&latitude=-2"); } log = longitude + "," + latitude + "\n" + log; BBTMainScreen.this.logField.setText(longitude + "," + latitude + "\n"); log = BBTHTTPClient.getPage(LOCATION_URL + "?longitude=" + longitude + "&latitude=" + latitude).trim() + log; } private class MyLocationListener implements LocationListener { public void locationUpdated(LocationProvider provider, Location location) { if(location != null && location.isValid()) { log = "got valid coords\n" + log; QualifiedCoordinates qc = location.getQualifiedCoordinates(); try { // TODO: not thread safe (assignment should be done at one time) LocationTracker.this.longitude = qc.getLongitude(); LocationTracker.this.latitude = qc.getLatitude(); lastGPSRead = System.currentTimeMillis(); } catch(Exception e) { log = e.toString() + log; } } else { log = "location is not valid..\n" + log; } } public void providerStateChanged(LocationProvider provider, int newState) { // TODO: if provider was disabled, then disable reporting log = "state changed: " + newState + "\n" + log; LocationTracker.this.resetGPS(); // try { // provider.setLocationListener(null, 0, 0, 0); // provider.reset(); // provider = null; // provider = LocationProvider.getInstance(new Criteria()); // provider.setLocationListener(new MyLocationListener(), 10, -1, -1); // } catch(Exception e) { log = e.toString() + log; } } } } }
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 00:40.
|