• 0
Martifan

Android Service + GPS

Вопросы

Здравствуйте, хочу собрать на сервисе сохранение местоположения в файл на мобильном, можете привести пример как это сделать? Сохранение должны идти к примеру в текстовый документ. Сервис работает, просто хочу разобраться как надо выполнять переодичное действие на нём.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

17 ответов на этот вопрос

  • 0

Исходники есть здесь http://fire-monkey.ru/topic/2242-poluchenie-gps-koordinat-iz-servisa/

Вариант 1 рабочий, вам нужно только организовать запись в файл

Изменено пользователем Rusland

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Про отправку через Intent рассказано здесь

Изменено пользователем Rusland

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

там посмотрел вроде все понятно но когда пытаюсь передать адрес: http://my.Site.com/mytrack/track.php?IMEI=asas&x=12&y=12 он предлагает выбрать браузер а нельзя сделать так чтобы он передал без спроса на ссылке параметры?

Изменено пользователем Martifan

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Тогда через IdHTTP открывайте адрес с параметрами... типа http://mysite.com/?lat=50.123456&long=48.123456

Изменено пользователем Rusland

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Точно, нельзя, там вызывается Activity, которого в сервисе нет...

Используйте NetHTTPClient... хотя если у вас используется шифрование SSL, то возможны проблемы (видимо компонент сыроват)

Изменено пользователем Rusland

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

NetHTTPClient это новый компонент? SSL нету проверю и отпишусь

Изменено пользователем Martifan

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Вроде с XE8 этот нативный компонент. Тут подробности о том как его использовать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

а разве сервисе можно использовать IdHTTP?

Если вы (или кто-нибудь) сильны в английском, то задайте вопрос на stackoverflow.com почему в сервисе возникает проблема с IdHTTP и как ее обойти.

Уверен Remy Lebeau поможет справиться с этой бедой и будет всем счастье. У меня к сожалению не очень с английским :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

не NetHTTPClient и не IdHTTP не работает :( как Ярослав сказал сервис не поддерживает FMX компонентов :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Как я понял, Ярослав сказал что сервис не поддерживает визуальных компонент. Нет?

 

Martifan, я только что проверил с NetHTTPClient - все работает.

var
  Ss: TStringStream;
  S:String;
begin
    Ss:=TStringStream.Create('', TEncoding.UTF8);
    NetHTTPClient1.Get('http://cbr.ru/',Ss);
    s:=Ss.DataString; // результат
end;

 

 

PS. Проверьте что в uses не осталось ничего от Indy, типа IdBaseComponent, IdComponent, IdTCPConnection,  IdTCPClient, IdHTTP

Изменено пользователем Rusland

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

 

Как я понял, Ярослав сказал что сервис не поддерживает визуальных компонент. Нет?

 

Martifan, я только что проверил с NetHTTPClient - все работает.

var
  Ss: TStringStream;
  S:String;
begin
    Ss:=TStringStream.Create('', TEncoding.UTF8);
    NetHTTPClient1.Get('http://cbr.ru/',Ss);
    s:=Ss.DataString; // результат
end;

 

 

PS. Проверьте что в uses не осталось ничего от Indy, типа IdBaseComponent, IdComponent, IdTCPConnection,  IdTCPClient, IdHTTP

 

я проверил ничего не получается как я кладу компонент NetHTTPClient на форме то сервис вырубается можете поделиться примером как вы этого делайте?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
  • 0

Вот пожалуйста https://yadi.sk/d/X2zfmhAxo9ZF2
Адрес там на свой подправите

LocationSensorPatch2.zip

Изменено пользователем Andrey Efimov
Залил файл на форум

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Похожий контент

    • От zekelive
      Добрый день, товарищи. Если кто сталкивался, подскажите) в потоке создаются картинкив виде плиток и прочие компоненты и падают на scrollbox.  Но в runtime пролистывание лагает, да в целом вся программа подлагивает. Можно ли как то реализовать подгрузка в фоне без ущерба? Или может ещё какой способ есть?
    • От Вольдемар
      Пользуюсь в своем Android приложении этим компонентом, вроде всё работает. Но хотелось бы асинхронности. Помогите пожалуйста с примером, как сделать асинхронность и получать результат после Post. Спасибо
    • От Aptyp
      На моём Samsung Note 5 вокруг букв проглядываются линии. Причём пробовал 3 различных разрешения экрана, ничего не меняется. У друга на Xiaomi Redmi 4x такого не наблюдается.
      Что это может быть?
       


    • От om.pranayama
      Здравствуйте форумчане и профессионалы разработчики.
      Компилирую проект через C++Builder 10.2  под Android
      Появилась следующая проблема при использовании компонента TBitmapListAnimation
      Если приложение свернуть, а затем развернуть - то появляются жуткие глитчи в ввиде чёрных фонов вокруг компонентов, типа TImage, TButton.
      В Windows такая проблема - не наблюдается.
      Попытки вызвать Repaint или даже Invalidate для всей формы - положительного результата не дают.
      Пожалуйста, помогите решить эту проблему.
      //--------------------------------------------------------------------------------------------------------------------------------------------
      ТЕМУ МОЖНО УДАЛЯТЬ
      Причина не в TBitmapListAnimation а в TAniIndicator, который работал совместно с TBitmapListAnimation.
      Приношу извинения за беспокойство. Проблема была в TAniIndicator. Буду разбираться почему он так себя безобразно ведёт.
      Тему можно удалять.
    • От Aptyp
      В приложении:
          procedure TForm7.Button1Click(Sender: TObject);     var AIntent: JIntent;         AServiceName: string;     begin       AIntent := TJIntent.Create;       AServiceName := 'com.embarcadero.services.Service';       AIntent.setClassName( TAndroidHelper.Context.getPackageName(), TAndroidHelper.StringToJString( AServiceName ) );       AIntent.putExtra( TAndroidHelper.StringToJString( 'Code' ), 0 );       AIntent.putExtra( TAndroidHelper.StringToJString( 'Data' ), TAndroidHelper.StringToJString( 'DataString' ) );       TAndroidHelper.Activity.startService( AIntent );     end;
      В сервисе:
          procedure TDM.AndroidIntentServiceCreate(Sender: TObject);     begin       Toast( 'Create' );     end;          procedure TDM.AndroidIntentServiceHandleIntent(const Sender: TObject;       const AnIntent: JIntent);     begin       Toast( 'HandleIntent' );     end; Сообщение 'Create' показывается, а 'HandleIntent' нет. OnCreate срабатывает, но onHandleIntent не вызывается что бы я не делал. Может я что-то не так делаю?
    • От Roman V
      Всем привет. Учусь работать с ini-файлами на Android. И сразу же возникла проблема, которую никак не могу решить. Хотел написать подобие приложение-тест с хранением данных в ini файле. В итоге все отлично работает на windows,а под Андроид при запуске висит только значок firemonkey секунд 10 и приложение вырубается так и не запустившись. В чем может быть проблема? Использую отладку по USB. 
      TIniFile *Ini = new TIniFile(System::Ioutils::TPath::GetDocumentsPath() + PathDelim + "options.ini"); Юзаю эти библиотеки 
      #include <System.IOUtils.hpp> #include <System.IniFiles.hpp>  
    • От gonzales
      Доброго времени суток!
      Решаю следующую задачу, в приложении динамически формируются разные объекты, наследники от одного класса. При формировании объектов заполняется динамический массив этих элементов. Далее я хочу в отдельном потоке для каждого из элементов массива получить его состояние, то есть делаю запрос к серверу. Все это повешено на таймер, каждую секунду должен отрабатываться запрос. Все более менее работает в Windows, а на Андроиде со временем приложение валится. Вот код таймера, для читаемости я удалил куски с различными вариантами E. RootElements - это массив TEssense от которого есть наследники. Функции GetBoardCurrentValue, GetBoardMaxValue - по сути запросы к серверу. 
      Подскажите, правильно ли я оформляю работу с потоками для работы на Андроиде?
      procedure TForm1.MasterTimerTimer(Sender: TObject); begin TTask.Run( procedure var l, d, a: byte; i,j:integer; E: TEssence; p: Pointer; VirtualNode: IXMLNode; VirtualElementNode: IXMLNode; id: byte; begin l := Length(Form1.RoomElements); for j := 0 to l - 1 do begin E := Form1.RoomElements[j]; // Реле if E is TRele then begin d := (E as TRele).Device_ID; a := (E as TRele).Device_Adress; if Form1.GetBoardCurrentValue(d, a) = true then begin TThread.Synchronize(nil, procedure begin (E as TRele).ReleSwitch.IsChecked := Form1.device[d].Board[a].CurrentValue.ToBoolean; end); end; // (E as TRele).ReleOnTimer(E) end // Диммер else if E is TDimmer then begin d := (E as TDimmer).Device_ID; a := (E as TDimmer).Device_Adress; if Form1.GetBoardMaxValue(d, a) = true then begin TThread.Synchronize(nil, procedure begin if (Form1.device[d].Board[a].Type_ID = TType.Светодиод) or (Form1.device[d].Board[a].Type_ID = TType.Диммер220) then begin (E as TDimmer).DimmerValue.Text := (Form1.device[d].Board[a].MaxValue).ToString; end; end); end; // (E as TDimmer).DimmerOnTimer(E) end // Таймер else if E is TSTimer then begin id := (E as TSTimer).STimerIndex; Form1.FillHTTPRequest(0, 0, HTTP_GET_TIMER_INFO, id); if Form1.AnswerIsComming = HTTP_GET_TIMER_INFO then begin TThread.Synchronize(nil, procedure begin if Form1.HTTPAnswer.Data1 = 0 then (E as TSTimer).Interval.Text := 'OFF' else (E as TSTimer).Interval.Text := 'ON' end); end; // (E as TSTimer).STimerOnTimer(E); end; end; end); end;   
    • От andahay
      Доброго времени суток. Есть android приложение, в нем есть диалоговое окно, которое предлагает перейти в google play и скачать другое приложение (pro версию), с 2 кнопками (да/нет). Как реализовать этот переход в Google play, чтобы в нем сразу было загружено нужное приложение. Использую Delphi XE7
    • От zekelive
      Добрый день, друзья. Начал заниматься вопросом описанным в шапке и столкнулся со множеством непонятных для меня проблем. Как примерно должно выглядеть на Рис. ниже. Знаю, что сам список барабан выполнен в TlistBox. Есть хорошая ссылка на блог Ярослава тут. Пошерстил файлы в FMX, и не нашел ключа для своего дела. Может кто занимался этим? Я изначально брал TScrollBox, кидал на него Tlayout и в него TLabel. Но думаю, видимо не то совсем.

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу