Извините, ничего не найдено.

Не расстраивайся! Лучше выпей чайку!
Регистрация
Справка
Календарь

Вернуться   forum.boolean.name > Программирование игр для мобильных телефонов > MidletPascal > Библиотеки

Ответ
 
Опции темы
Старый 20.08.2010, 14:46   #1
IDOL 1234
ПроЭктировщик
 
Аватар для IDOL 1234
 
Регистрация: 22.11.2009
Сообщений: 137
Написано 8 полезных сообщений
(для 8 пользователей)
Восклицание Предположительно, JSR-179 : javax.microedition.location

Хотелось бы получить координаты со встроенного GPS. Нет ли у кого - нибудь русифицированной спецификации по этой апи?
__________________
---
(Offline)
 
Ответить с цитированием
Старый 20.08.2010, 15:39   #2
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Предположительно, JSR-179 : javax.microedition.location

Обычно все GPS работают одинаково - а именно - открывает COM-порт на которм подключен GPS и читаем от туда данные.

Формат данных: NMEA
__________________
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
psih1 (20.08.2010)
Старый 20.08.2010, 15:47   #3
psih1
Знающий
 
Аватар для psih1
 
Регистрация: 20.03.2010
Сообщений: 271
Написано 16 полезных сообщений
(для 32 пользователей)
Ответ: Предположительно, JSR-179 : javax.microedition.location

а либа есть для работы с этим портом ?
__________________
¯¯¯¯\——-/¯¯¯¯ респект любителям BMX
(Offline)
 
Ответить с цитированием
Старый 20.08.2010, 15:56   #4
ViNT
Модератор
 
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений
(для 817 пользователей)
Ответ: Предположительно, JSR-179 : javax.microedition.location

Либа для работы с COM-ом есть, но если есть пакет в j2me, нужно попробовать с ним разобраться, чтобы протокол с нуля не реализовывать, да и с правами доступа могут быть грабли.
(Offline)
 
Ответить с цитированием
Старый 20.08.2010, 16:12   #5
IDOL 1234
ПроЭктировщик
 
Аватар для IDOL 1234
 
Регистрация: 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
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Предположительно, JSR-179 : javax.microedition.location

Вот делал для своей Нокии 5800. Хотел, чтобы мои координаты отправляло на сервер. Работает, но где-то то ли утечка памяти, то ли что-то ещё, я уже не помню, но спустя сколько-то часов беспрерывной работы, приложение вылетает с эксепшеном.
Вложения
Тип файла: zip Location.zip (1.5 Кб, 600 просмотров)
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
IDOL 1234 (20.08.2010)
Старый 20.08.2010, 22:31   #7
IDOL 1234
ПроЭктировщик
 
Аватар для IDOL 1234
 
Регистрация: 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
SBJoker
Злобный Админ
 
Аватар для SBJoker
 
Регистрация: 04.09.2005
Сообщений: 5,926
Написано 3,415 полезных сообщений
(для 9,330 пользователей)
Ответ: Предположительно, JSR-179 : javax.microedition.location

так компас вроде программно..по гпс сделан.
Определяем место потом движемся и ещё одно..у нас есть вектор нашего положения, и по координатам знаем где север - рисуем стрелочку.
__________________
(Offline)
 
Ответить с цитированием
Старый 21.08.2010, 00:50   #9
Tadeus
Троллота
 
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений
(для 1,772 пользователей)
Ответ: Предположительно, JSR-179 : javax.microedition.location

Сообщение от SBJoker Посмотреть сообщение
так компас вроде программно..по гпс сделан.
Определяем место потом движемся и ещё одно..у нас есть вектор нашего положения, и по координатам знаем где север - рисуем стрелочку.
не факт, видал мобилу где натуральный магнитный встроен
(Offline)
 
Ответить с цитированием
Старый 21.08.2010, 19:18   #10
IDOL 1234
ПроЭктировщик
 
Аватар для IDOL 1234
 
Регистрация: 22.11.2009
Сообщений: 137
Написано 8 полезных сообщений
(для 8 пользователей)
Ответ: Предположительно, JSR-179 : javax.microedition.location

компас магнитный
__________________
---
(Offline)
 
Ответить с цитированием
Старый 26.10.2010, 03:40   #11
xmoonlight
Оператор ЭВМ
 
Регистрация: 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
IDOL 1234
ПроЭктировщик
 
Аватар для IDOL 1234
 
Регистрация: 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
NeiroN
AnyKey`щик
 
Аватар для NeiroN
 
Регистрация: 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 fieldint context) {
            
UiEngine ui Ui.getUiEngine();
            
Screen screen = new Dialog(Dialog.D_OKBBTMainScreen.this.logDialog.OK,
            
Bitmap.getPredefinedBitmap(Bitmap.EXCLAMATION), Manager.VERTICAL_SCROLL);
            
ui.queueStatus(screen1true);
        }
    }
    
    class 
LocationTracker extends TimerTask {
        private 
double longitudelatitude;
        private 
Timer timer;
        private 
LocationProvider provider;
        
        public 
LocationTracker() {
            
timer = new Timer();
            
            
resetGPS();
            
            
timer.schedule(this060000);
        }
        
        public 
void resetGPS() {
            try {
                if(
provider != null) {
                    
provider.setLocationListener(null000);
                    
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 providerLocation 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 providerint 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)
 
Ответить с цитированием
Ответ


Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 20:58.


vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot
Style crйe par Allan - vBulletin-Ressources.com