 |
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, время: 11:09.
|