Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

XE5 Android LocationListener


MultIfleX ©   (2013-11-07 20:44:00) 

Времени доброго, дорогие участники.

Сижу разбираюсь в пятой студии. Создал пустой проект мобильного приложения.

Попал ко мне "в руки" юнит Androidapi.JNI.Location. В нем нашел следующие вещи:

JLocationManager = interface(JObject)
['{42C3E256-9370-43B5-93E3-EDF5CE51FB28}']
...
end;

JLocationListener = interface(IJavaInstance)
['{D1CF3FB5-3BCB-4959-98D7-BD4D8F93D839}']
...
end;


Интересно стало. Решил поискать, как же этим пользоваться... на Delphi толком ничего нет, нашел вот что:

var
locationManager : JLocationManager;
begin
locationManager := TJLocationManager.Wrap( ((SharedActivity.getSystemService(TJContext.JavaClass.LOCATION_SERVICE)) as ILocalObject).GetObjectID);
... и вот тут, у locationManager есть метод, который позволяет стартовать "слушалку":
requestLocationUpdates(provider: JString; minTime: Int64; minDistance: Single; listener: JLocationListener); cdecl; overload;

не понятно как создать класс с привязкой к JLocationListener, чтоб он получал сообщения о локациях.

пробовал так:

 TMyLListener = class (TJLocationListener)
     procedure onLocationChanged(location: JLocation); cdecl;
     procedure onProviderDisabled(provider: JString); cdecl;
     procedure onProviderEnabled(provider: JString); cdecl;
     procedure onStatusChanged(provider: JString; status: Integer; extras: JBundle); cdecl;
 end;

....
...

tml := TMyLListener.Create;
locationManager.requestLocationUpdates( TJLocationManager.JavaClass.GPS_PROVIDER, 1000, 0, tml );


вываливается с ошибкой на tml := TMyLListener.Create;

Есть соображения у кого нибудь по этому поводу?


Djalma   (2013-12-19 16:35:00) [1]

good day

I'm trying to use the API in android Delphi XE5 more when it arrives in the Create method TJLocationListener class, it can not create the error.


btf   (2013-11-10 20:04:00) [2]

Просто так все там не получится. Нужно писать наследник от LocationListener на жабе, потом импортировать сию обертку в Delphi (через JNI), потом уже этот Listener передавать в requestLocationUpdates. Короче, геморрой еще тот.


MultIfleX   (2013-11-08 05:12:00) [3]


> не понятно как создать класс с привязкой к JLocationListener,
>  чтоб он получал сообщения о локациях.


> Есть соображения у кого нибудь по этому поводу?


Туповатый   (2013-11-08 00:38:00) [4]

Вопрос-то в чем?


MultIfleX   (2013-11-07 20:48:00) [5]

С чего началось - попробовал LocationSensor - он даже в "родных" демках студии не стартует GPS (значок не начинает мигать), и координаты соответственно не получает (проверял под открытым небом - не работает). Мне этот факт показался предельно досадным, и я решил поковыряться в нативном апи...


Наверх

Титульная страница Поиск, карта сайта Написать письмо