-
Постов
60 -
Зарегистрирован
-
Посещение
Весь контент Саша
-
1. Не зря их нарекли гуглофонами. 2. Однако, JAVA - программы работают отиично! Тот же Locus. Просто Embarcadero не по себе ношу тянет.
-
Здравствуйте! Вот здесьhttps://fire-monkey.ru/topic/4711-не-запускается-служба/ Andrey Efimjv выставил файл Notification.zip, но внутри архива APK - файл. А может кто-нибудь выложить исходники? Просто у меня нет такой папки, в которой есть этот пример. Спасибо!
-
В итоге мне нужно приложение такой структуры. Хост - с моим расчетным модулем, описанным здесь 8 постов выше. Сервис - который В ПОТОКЕ периодически запрашивает метоположение и передает его хосту. Причем, Сервис это должен делать и при неактивном хосте, так как сервис еще кроме этого должен передавать местоположение на FTP - сервер.
- 47 ответов
-
- gps
- tlocationsensor
-
(и ещё 1 )
C тегом:
-
Спасибо! Но я не знаю, что такое LocationListener. Мне сейчас хотябы со службой разобраться. В виндовсе службы идут как по масмлу, а андроиде труба. А как состтыковаьб JAVA и Delphi - для меня темный лес.
- 47 ответов
-
- gps
- tlocationsensor
-
(и ещё 1 )
C тегом:
-
После всех изменений в манифесте проверил на улице. Работает чуточку лучше. Возможно, что идет отражение сигнала от домов. Остается еще попробовать установить ActivitiType в Navigation. PS Стою в открытом поле на месте. Скачки и по расстоянию (до 38 метров) и по азимуту. Либо спутники так видят, либо TLocationSensor в Embarcadero работает калечно.
- 47 ответов
-
- gps
- tlocationsensor
-
(и ещё 1 )
C тегом:
-
Текст по ссылкам я обязательно изучу. Попробобовал пока с манифестом. Чем дальше, тем страшнее. До моего сообщения о скачках (Android 10) манифест был по умоланию, без этих строк. При этом в меню Android для этого приложения я мог руками настроить доступ этого приложения к Wi-Fi и к мобильному интернету. Затем я добавл в манифест permission.ACCESS_FINE_LOCATION. В меню Android возможность настройки доступа пропала. Мое приложение, похоже, стало выдавть верные данные настолько, насколько я не на улице, а хожу по комнате. Утром проверю на улице. Зато доступ этого приложения к интернету пропал. А в дальнейшем мне этот доступ из приложения будет нужен.
- 47 ответов
-
- gps
- tlocationsensor
-
(и ещё 1 )
C тегом:
-
А Вам знакомо приложение Locus? Там как только устаналивается связь со спутниками, загорается зеленый значок. А спутники видны сразу даже до установления связи с ними.
- 47 ответов
-
- gps
- tlocationsensor
-
(и ещё 1 )
C тегом:
-
Еще раз о километраже. Простейшая формула для расчета расстояния по прямой (по дуге большого круга планеты) вот такая cosduga:=(sin(lat1) * sin(lat2) + cos(lat1) * cos(lat2) * cos(long2 – long1)); //(1) km:= 6371 * arccos(cosduga); В ней: lat1, long1 - широта и долгота точки отправления (прибытия) в радианах lat2, long2 - широта и долгота точки прибытия (отправления) в радианах южные широты и западные долготы берутся со знаком минус. Напомню, что эту формулу можно вывести двумя способами: 1. через чертежи трехгранного угла. 2. через скалярное произведение векторов Кому этой формулы достаточно - просто вставьте ее в свою программу без заморочек. Она будет работать. Только перед нахождением arccos необходимо предотвратить возможную машинную ошибку, которая обязательно моежет возникнуть, если cosduga, например, будет 1.000000001 cosduga:=min(cosduga,1); cosduga:=max(cosduga,-1); "Беда" в том, что эта формула привязана ТОЛЬКО к истинному Северному полюсу. Можно воспользоваться другой формулой, которая открывает гораздо большие возможности, чем вычисление расстояния. Сейчас покажу другой способ вычисления расстояния. Здесь fi - широта, lamda - долгота в радианах. южные широты и западные долготы берутся со знаком минус. Поехали. Следующие шесть строк оформить подпрограммой. x1:=cos(fi1)*cos(lamda1); y1:=sin(fi1)*cos(lamda1); z1:=sin(lamda1); x2:=cos(fi2)*cos(lamda2); y2:=sin(fi2)*cos(lamda2); z2:=sin(lamda2); cosduga:=x1*x2+y1*y2+z1*z2;// из этой формулы можно получить формулу (1) cosduga:=min(cosduga,1); cosduga:=max(cosduga,-1); km:=arccos(cosduga)/(2*3.1415926)*40000;
- 47 ответов
-
- gps
- tlocationsensor
-
(и ещё 1 )
C тегом:
-
Разработал расчетный модуль. На вход этого модуля подаются: 1. Географические координаты точки назначения X (далее: положение). 2. Положение текущей точки A. 3. Положение предыдущей точки B. На выходе этого модуля: 1. Угол между AB и AX (<XAB). 2. Угол между AB и истинным (можно и магнитным) Северным полюсом. Направление на СП вычисляется динамически - без компаса. 3. Расстояние по прямой AB (между двумя замерами). 4. Расстояние по прямой AX до точки назначения. Дал этому модулю 16 контрольных заданий, с которыми он успешно справился! Соединил этот модуль с GPS-примником. И тут началось! Задаю положение точки направления. Иду под открытым небом в этом направлении. Показания этого модуля скачут со страшной силой. Бывают показания и верными, но редко. То, что здесь предлагал Равиль Зарипов, на современные телефоны не устанавливается (Android 10). Здеcь на форумах предлагалось сделать некий фильтр, который отсекал бы резкие изменения по дистанции. Кроме этого можно добавить фильтр от резкого изменения азимута.Только что здесь понимать под "резкими изменениями". А программы на JAVA успешно работают без этих прибамбасов. Может кто знает решение этой проблемы без танцев с бубномна сегодня?
- 47 ответов
-
- gps
- tlocationsensor
-
(и ещё 1 )
C тегом:
-
У меня есть предположение, что сенсор ловит кроме GPS координаты от телефонных вышек.
- 47 ответов
-
- gps
- tlocationsensor
-
(и ещё 1 )
C тегом:
-
Спасибо! Проблема решена! После aBitmap := TBitmap.Create; добавил Image1.Bitmap.Clear(TAlphaColors.White);
-
Здравствуйте! Вот фрагмент программы. var aBitmap: TBitmap; type TArrow = record x, y: integer; end; var arrow: array [1..3] of TArrow; ........ ........ ........ procedure TForm1.Button4Click(Sender: TObject); begin aBitmap := TBitmap.Create; aBitmap.SetSize(trunc(Image1.Width), trunc(Image1.Height)); aBitmap.Canvas.BeginScene; // Задаю цвет aBitmap.Canvas.Stroke.Color := TAlphaColorRec.Forestgreen; // Рисую зеленую стрелку aBitmap.Canvas.DrawLine(PointF(X0, Y0), PointF(arrow[1].x, arrow[1].y), 1); aBitmap.Canvas.DrawLine(PointF(arrow[1].x, arrow[1].y), PointF(arrow[2].x, arrow[2].y), 1); aBitmap.Canvas.DrawLine(PointF(arrow[1].x, arrow[1].y), PointF(arrow[3].x, arrow[3].y), 1); aBitmap.Canvas.EndScene; Image1.Bitmap.Assign(aBitmap); aBitmap.Free; end; При первом нажатии кнопки полуаю ожидаемый результат. Затем мне надо перерисовать эту стрелку в другом направлении. Для этого пересчитываю x, y в arrow, нажимаю кнопку, вижу ужас. Ноая стрелка нарисовалась правильно, но остались следы от старой стрелки в виде разбросанных пикселей от старой срелки. Помогите, пожалуста, решить проблему. Спасибо!
-
Эта ошибка исчезла. Зато появилась такая: [DCC Error] E2597 C:\android\SDK\ndk\21.0.6113669\toolchains\aarch64-linux-android-4.9\prebuilt\windows-x86_64\aarch64-linux-android\bin\ld.exe: cannot find -ldl LD.EXE по этому пути ЕСТЬ. там еще чего-то не хватает -ldl. Когдя ругалась на c:\java\bin тогда манифест создавался, а сечас и манифест не создается. Если в менеджере SDK (Delphi) при нажатии Save появляются восклицательные знаки. Но при открытии менеджера SDK этих знаков нет У вас так?
-
При установке 10.4 или 11.3 все равно пытается установиться SDK версии 25.2.5! При установке 10.4 SDK устанавливается полностью: установил и работай. При установке 11.3 что-то пишется по родным путям в studio 22, но папки в отличии от studio 21 недозаполнены. Даже папки platforms нет. Даже, если скармливать SDK с помощью AS, то чего-то там не хватает. Поэтому и ругается при линковне. Даже манифест не создается. Вывод: 11.3 не от андроида 13! За 30 лет работы хуже языка, чем JAVA не встречал. Может быть Embarcadero одумается. Спасибо за участие в решении моей проблеымы!
-
Настроил NDK вашим способом Телефон виден, правда, Android 64 bit. В NDK у вас platforms\android-23. Для API 33 так и должно быть? У меня в NDK установились платформы 16-29. Во время компилляции теперь выдает ошибку. Путь у меня прописан правильно - файл ld.exe вижу [DCC Error] E2597 C:\android\SDK\ndk\21.0.6113669\toolchains\aarch64-linux-android-4.9\prebuilt\windows-x86_64\aarch64-linux-android\bin\ld.exe: cannot find -ldl На этом форуме есть подобный вопрос, но там речь о 10.4. Попробую поискать для 11.3. Неужели я чего-то добьюсь с этой затеей. https://fire-monkey.ru/topic/7278-dcc-error-e2597-arm-linux-androideabi-ldexe-error-cannot-find-ldl/?do=findComment&comment=42512
-
То же, что и у Вас. И в гугле пытаюсь найти решение - пока безрезультатно. Может быть потому, что я еще не разбирался с вашими настройками NDK???
-
Упорно при компиляции выдает ошибку ERROR: E7684 Could not find program 'C:\bin\java.exe'. Переменную среды поменял. Телефон не видит. Правда, все остальное я еще не настраивал.
-
Установил SDK по короткому пути в C:\SDK. Прописал папки. Совет дельный. Прописал пути. Вот что получилось. Когда нажимаю SAVE, то с тупостью осла (осел обидится) меняются пути, пояляются восклицательные знаки и вот такое сообщение. Когда нажиаю OK это все уходит, но при повторном входе в SDK MANAGER пути как на первом изображении. То есть, сохраняются. NDK установлено по километровым путям, но без восклицательныйх знаков. Установилось с установкой Д11.4. Стоит ли установить в C:\NDK. Если да, то как? JAVA установлена сюда. И еще такие проблемы. Телефон не видит. При компиляции выдает ошибку ERROR: E7684 Could not find program 'C:\bin\java.exe'. Там у меня сроду JAVы не было и все работало. Правильно ли я выполнил установку. Как решить проблему с ошибкой JAVA и невидимостью телефона? Спасибо!
-
Какая-то вакханалия. Установил 11.3. SDK (33) не устанавливается. Файл aapt.exe не находит (и не только его), базовые папки полупустые. Калечная установка. Можно как нибудь скормить SDK из Android Studio?
-
Печаль! Наша организация приобрела за бешенные деньги 10.4 Sydney, которую мы используем под Windows. И ради того, чтобы я в личных целях писал под Android 13 новую версию не купят.
-
Д11 - это Delphi 11.3?
-
Забегая наперед, скажу, что все эти процедуры не помогли: на Android 13 так и не работает, вываливается. При первом запуске программы (после установки) запрос для пользователя появляется. Эффект от ответа на этот запрос такой же, что и от соотсветствующей ручной настройки в меню андроида. При следующих запусках запрос не появляется. И что меня еще удивило. После установки этого приложения c измененным манифестом на Android 10 (с Location там проблем не было и нет) пропал доступ к интернету из этого приложения. Приложение обращалось к FTP-серверу. Проблема решилась добавлением в манифест вот такой строки: <uses-permission android:name="android.permission.INTERNET" /> Подозрение у меня на версию SDK. Посмотрите, пожалуйста мой вчерашний (10.08.2023 17:34) скриншот SDK Mahager. Там красная черта и написано android-29. Может быть Android 13 не от этого SDK? Спасибо! Вот здесь https://learn.microsoft.com/ru-ru/xamarin/android/app-fundamentals/android-api-levels?tabs=windows#android-versions-and-api-levels еесть таблица, из которой видно, что API 29 - это Android 10.
-
Да! Я даже не могу из своей программы работать с теми папками, с которыми хочу. А только с определенными. Но меня (пока?) это устраивает. Отвлекся от темы. А что касается сенсора, то такое ощущение, что в прграммах на JAVA он работает точнее. Но меня и этаточность устраивает. И еще про манифест и разрешения. Получается, что разрешения в манифесте главней, чем разрешения в меню андроида???
-
Спасибо за то, что ткнули меня где надо копать! Добавил две строки в манифест. Добавил запрос отсюда: https://docwiki.embarcadero.com/RADStudio/Alexandria/en/Android_Permission_Model Кстати, там синтаксическая ошибка. Пришлось перекроить, сохранив при этом смысл изложенного. В меню Android 10 (где и так все работает) запрещаю доступ к местоположению. Запускаю программу, появляется диалоговое окно запроса. В этом окне даю разрешение. В меню Android 10 проверяю настройку. Настройка установлена как надо. Приложение работает. Но ведь и в Android 13 появится точно такой же запрос. И настройка установится. Тогда какая разница: установлю я эту настройку из окна или из меню? Жду, когда доберусь Android 13.