Перейти к содержанию
Fire Monkey от А до Я

Саша

Пользователи
  • Постов

    52
  • Зарегистрирован

  • Посещение

Весь контент Саша

  1. Собственно это не мой код. Я сделал совершенно другим способом. И меня беспокоила не красота, а то, что андроид в отличии от виндовс делал это калечно: там обрезался старший бит. Максимальное значение было #7F (127), а все, что больше #3F - знак вопроса. Проблема решилась так: IdUDPClient1.Send('40.240.8,50',9,Data,IndyTextEncoding(IdTextEncodingType.enc8Bit));
  2. Вот в этом приложении два потока. Цикл первого потока работает с периодом 1000 (1 секунда), цикл второго 750 (3/4 секунды). Каждый поток работает 60 циклов, затем выключается. Эти потоки работают и в СВЕРНУТОМ приложении. Но если из потока я пытаюсь получить GPS-координаты, то в СВЕРНУТОМ приложении ПОТОК НЕ РАБОТАЕТ. Здесь: POTOK3.ZIP - исходники, Potok.apk - готовое приложение. POTOK3.ZIP Potok.apk
  3. Здравствуйте! Пытаюсь запустить компьютер из ИНТЕРНЕТА. В роутере проброс портов сделан: UDP 192.168.0.49:9 IP локального компьютера IP от провайдера статический (в примере: 40.240.8.50) Вот этот фрагмент работает в Windows четко. На андроиде не работает. Компилируется без ошибок. procedure TForm1.Button5Click(Sender:TObject); const s='18:C0:4D:7E:E6:B2'; // MAC адрес сетевой платы var Data,temp:string; k,n:integer; begin IdUDPClient1:=TIdUDPClient.Create(nil); Data:=''; for k:=0 to 5 do begin Data:=Data+Chr(StrToInt('$FF')); end; temp:=StringReplace(s,':','', [rfReplaceAll]); for k:=0 to 15 do begin temp:=StringReplace(s,':','', [rfReplaceAll]); for n:=0 to 5 do begin Data:=Data+Chr(StrToInt('$'+temp[1]+temp[2])); Delete(temp,1,2); end; end; IdUDPClient1.Send('40.240.8.50',9, Data); end;
  4. Тогда и заморачиваться с этим не буду. Сегодня нашел вот такю программу. GPS+Test_v1.6.5.apk
  5. Моя задумка постепенно воплощается в жизнь. В личку пришлю исходники всем ответившим. Только обещайте, что не будете смеяться с имен переменных. Программа еще должна передавать некоторые сигнальные файлы на FTP. Это работало отлично, пока я не добавил в манифест: <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" /> после этого связь с интернетом пропала. Связь восстановилась после добавления в манифест строки: <uses-permission android:name="android.permission.INTERNET" /> Есть ли такая возможность включать/включать доступ в интернет независимо от пользователя? То есть цикл в потоке на четном проходе включает доступ в интернет и передает файлы на FTP, а на нечетном выключает. На нечетном проходе получает только координаты.
  6. Сам себя процитировал. И в Android13 работает!!!
  7. Вставил в поток по совету OnPeople provider := locationManager.getBestProvider(criteria, true); location := LocationManager.getLastKnownLocation(provider); и т. д. Работает. Координаты передаются. В верхнем правом углу телефона появляется значок GPS. Если свернуть приложение, а затем развернуть, то через несколько секунд этот значок гаснет, но координаты продолжают определятся. Пришлось закомментировать эту строку, dBearing := location.getBearing , так как иногда возникает ошибка деления на 0. Похоже, что там возращается NaN. Попробую ее облачить в конструкцию try except end.
  8. Огромно спасибо откликнувшимся в решении данной проблемы!!! Да! Есть еще асы на этом форуме! Неоценимую помощь OnePeople. Последних штрих добавил krapotkin, с которым я общаюсь в другой ветке (и скоро возобновлю общение). LocationListener работает! Надеюсь, что и в Android13 ои будет работать.
  9. Спасибо! Найти бы теперь этот метод... Аналогично и переменная Provider. Сейчас буду бродить по юсесам.
  10. Спасибо! И дай Бог,Вам терпения. Похоже, осталось чуть-чуть. Правильно ли я сделал? После класса TForm добавил вот что. TMyLocatioListner = class(TJavaLocal, JLocationListener) private [weak] FParent: TForm1; public constructor Create(AParent: TForm1); Destructor Destroy; Override; procedure onFlushComplete(requestCode: integer); cdecl; procedure onLocationChanged(Location: Jlocation); overload; cdecl; procedure onLocationChanged(Location: JList); overload; cdecl; procedure onProviderDisabled(Provider: JString); cdecl; procedure onProviderEnabled(Provider: JString); cdecl; procedure onStatusChanged(Provider: JString; status: integer; extras: JBundle); cdecl; end; var LocationListner:TMyLocatioListner; // это создание слушателя? После этого число ошибок уменьшилось, но они еще остались. Да. И какого типа переменные: dLatitude, dLongitude, dBearing? У меня они double.
  11. Скачал Alcinoe-master. Компиляция шла дольше, чем обычно, что обнадеживало, но затем жалоба на невозможность открыть вот этот файл: C:\Alcinoe-master\Demos\ALGeoPositionSensor\_Source\EXEC Ну это ладно. Займусь этим позже.
  12. Ctrl + space у меня не работает. А в коде все равно куча ошибок. Катастрофа! В строках 1622 и 1639 вот такая ошибка: there is no overloaded that can be called with these arguments нет никакого перегруженного, который можно было бы вызвать с этими аргументами
  13. Здесь несколько вопросов. 1. Достаточно ли второй вариант для пробы вставить в нажатие кнопки Click. 2. В конце второго варианта не хватает только одной строки end; ? 3. Что там в uses? 4. Да и пеерменные какого типа? В инете пока ответы на эти вопросы не нахожу.
  14. Спасибо! А тут еще может быть неприятная ситуация при расчете скорости. Работа кода внутри LocationChanged занимает какое-то время, хотя и мизерное. Может ли сработать сенсор еще раз, пока не отработал кода внутри LocationChanged? Может быть придется использовать какой-то флаг, по которому будет выполнятся exit на входе этого события до тех пор, пока не отработает хвост? То есть аналогично тому, как блокируют повторный запуск потока.
  15. Статью изучил досканально. Палки в колеса конкретные! Скачал. Ошибки при компиляции: не хватает некоторых файлов, но с этим буду разбираться. А вот в FMX, которые там в USES не хватает каких то методов. Но там, похоже, файлы пропатченные. На днях проехал 500 км. Испытывал свой сенсор. Помехи есть, но пока терпимые. Помехи уменьшились после совета krapotkin. В своем приложении сделал возможность настраивать Distance и Accuracy. И менял их в разных комбинациях. У сенсора на эти настройки ноль эмоций, фунт презренья. И при Distance=1 и при Distance=500 (при разных Accuracy) расстояние между замерами 15-28 метров. Скорость движения при этом была 70-95 км/ч. А вопрос такой: есть ли возможность получать координаты с сенсора принудительно, а не ждать, пока сработает LocationChanged?
  16. Статью еще не изучал, но закладки провел у себя крассной нитью. В ближайшее время ОБЯЗАТЕЛЬНО изучу. Столько много информации приходится лопатить на эту тему, что даже не знаю с чего начать.
  17. А производители кастомных оболочек не боятся, что их пошлют на хрен? У меня есть информация, что Play Market не размещает у себя приложения, которые вычисляют местоположение в ФОНОВОМ режиме. Но такие проиложения можно разрабатывать в своих интересах. А если хочешь продавать такие программы, то это можно делать и минуя Play Market: посвящай свой сайт этой программе и продавай.
  18. Android 10. Ругается на picture.png при нажатии Button2.
  19. 1. Не зря их нарекли гуглофонами. 2. Однако, JAVA - программы работают отиично! Тот же Locus. Просто Embarcadero не по себе ношу тянет.
  20. Здравствуйте! Вот здесьhttps://fire-monkey.ru/topic/4711-не-запускается-служба/ Andrey Efimjv выставил файл Notification.zip, но внутри архива APK - файл. А может кто-нибудь выложить исходники? Просто у меня нет такой папки, в которой есть этот пример. Спасибо!
  21. В итоге мне нужно приложение такой структуры. Хост - с моим расчетным модулем, описанным здесь 8 постов выше. Сервис - который В ПОТОКЕ периодически запрашивает метоположение и передает его хосту. Причем, Сервис это должен делать и при неактивном хосте, так как сервис еще кроме этого должен передавать местоположение на FTP - сервер.
  22. Спасибо! Но я не знаю, что такое LocationListener. Мне сейчас хотябы со службой разобраться. В виндовсе службы идут как по масмлу, а андроиде труба. А как состтыковаьб JAVA и Delphi - для меня темный лес.
  23. После всех изменений в манифесте проверил на улице. Работает чуточку лучше. Возможно, что идет отражение сигнала от домов. Остается еще попробовать установить ActivitiType в Navigation. PS Стою в открытом поле на месте. Скачки и по расстоянию (до 38 метров) и по азимуту. Либо спутники так видят, либо TLocationSensor в Embarcadero работает калечно.
  24. Текст по ссылкам я обязательно изучу. Попробобовал пока с манифестом. Чем дальше, тем страшнее. До моего сообщения о скачках (Android 10) манифест был по умоланию, без этих строк. При этом в меню Android для этого приложения я мог руками настроить доступ этого приложения к Wi-Fi и к мобильному интернету. Затем я добавл в манифест permission.ACCESS_FINE_LOCATION. В меню Android возможность настройки доступа пропала. Мое приложение, похоже, стало выдавть верные данные настолько, насколько я не на улице, а хожу по комнате. Утром проверю на улице. Зато доступ этого приложения к интернету пропал. А в дальнейшем мне этот доступ из приложения будет нужен.
  25. А Вам знакомо приложение Locus? Там как только устаналивается связь со спутниками, загорается зеленый значок. А спутники видны сразу даже до установления связи с ними.
×
×
  • Создать...