-
Постов
52 -
Зарегистрирован
-
Посещение
Сообщения, опубликованные Саша
-
-
Вот в этом приложении два потока. Цикл первого потока работает с периодом 1000 (1 секунда), цикл второго 750 (3/4 секунды). Каждый поток работает 60 циклов, затем выключается.
Эти потоки работают и в СВЕРНУТОМ приложении. Но если из потока я пытаюсь получить GPS-координаты, то в СВЕРНУТОМ приложении ПОТОК НЕ РАБОТАЕТ.
Здесь: POTOK3.ZIP - исходники, Potok.apk - готовое приложение.
-
Здравствуйте!
Пытаюсь запустить компьютер из ИНТЕРНЕТА.
В роутере проброс портов сделан: 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; -
7 часов назад, krapotkin сказал:
пользоваться интернетом на телефоне и включать/выключать на телефоне доступ к конкретному адаптеру - сильно разные задачи
скорее всего, второй вариант система вообще не даст
Тогда и заморачиваться с этим не буду. Сегодня нашел вот такю программу.
-
Моя задумка постепенно воплощается в жизнь.
В личку пришлю исходники всем ответившим. Только обещайте, что не будете смеяться с имен переменных.
Программа еще должна передавать некоторые сигнальные файлы на FTP. Это работало отлично, пока я не добавил в манифест:
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
после этого связь с интернетом пропала.Связь восстановилась после добавления в манифест строки:
<uses-permission android:name="android.permission.INTERNET" />
Есть ли такая возможность включать/включать доступ в интернет независимо от пользователя?
То есть цикл в потоке на четном проходе включает доступ в интернет и передает файлы на FTP, а на нечетном выключает.
На нечетном проходе получает только координаты. -
9 часов назад, Саша сказал:
Надеюсь, что и в Android13 ои будет работать.
Сам себя процитировал.
И в Android13 работает!!!
-
Вставил в поток по совету OnPeople
provider := locationManager.getBestProvider(criteria, true);
location := LocationManager.getLastKnownLocation(provider);
и т. д.
Работает. Координаты передаются. В верхнем правом углу телефона появляется значок GPS. Если свернуть приложение, а затем развернуть, то через несколько секунд этот значок гаснет, но координаты продолжают определятся.
Пришлось закомментировать эту строку, dBearing := location.getBearing , так как иногда возникает ошибка деления на 0. Похоже, что там возращается NaN. Попробую ее облачить в конструкцию try except end.
-
Огромно спасибо откликнувшимся в решении данной проблемы!!!
Да! Есть еще асы на этом форуме!
Неоценимую помощь OnePeople. Последних штрих добавил krapotkin, с которым я общаюсь в другой ветке (и скоро возобновлю общение).
LocationListener работает!
Надеюсь, что и в Android13 ои будет работать.
-
Спасибо! Найти бы теперь этот метод...
Аналогично и переменная Provider.
Сейчас буду бродить по юсесам.
-
14 часов назад, OnePeople сказал:
1622 ну так правильно вы слушатель не создали
Спасибо! И дай Бог,Вам терпения. Похоже, осталось чуть-чуть.
Правильно ли я сделал?
После класса 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. -
В 29.08.2023 в 06:45, OnePeople сказал:
Вообще бы не парились
Скачал Alcinoe-master. Компиляция шла дольше, чем обычно, что обнадеживало, но затем жалоба на невозможность открыть вот этот файл:
C:\Alcinoe-master\Demos\ALGeoPositionSensor\_Source\EXEC
Ну это ладно. Займусь этим позже.
-
4 часа назад, OnePeople сказал:
Вообще Ctrl + space вам в помощь
Ctrl + space у меня не работает.
А в коде все равно куча ошибок. Катастрофа!В строках 1622 и 1639 вот такая ошибка:
there is no overloaded that can be called with these arguments
нет никакого перегруженного, который можно было бы вызвать с этими аргументами
-
5 часов назад, OnePeople сказал:
Конечно я же вам писал код 2 вариант, в таймере или потоке делаете
provider := locationManager.getBestProvider(criteria, true); location := LocationManager.getLastKnownLocation(provider);
Здесь несколько вопросов.
1. Достаточно ли второй вариант для пробы вставить в нажатие кнопки Click.
2. В конце второго варианта не хватает только одной строки end; ?
3. Что там в uses?
4. Да и пеерменные какого типа?
В инете пока ответы на эти вопросы не нахожу.
-
27 минут назад, krapotkin сказал:
в мобильных системах в принципе не будет синхронных операций
все через подписку на события
Спасибо! А тут еще может быть неприятная ситуация при расчете скорости. Работа кода внутри LocationChanged занимает какое-то время, хотя и мизерное. Может ли сработать сенсор еще раз, пока не отработал кода внутри LocationChanged? Может быть придется использовать какой-то флаг, по которому будет выполнятся exit на входе этого события до тех пор, пока не отработает хвост? То есть аналогично тому, как блокируют повторный запуск потока.
-
В 28.08.2023 в 20:21, krapotkin сказал:
чувствуется, что статью по ссылке вы не читали )
Статью изучил досканально. Палки в колеса конкретные!
В 29.08.2023 в 06:45, OnePeople сказал:Вообще бы не парились
Скачал. Ошибки при компиляции: не хватает некоторых файлов, но с этим буду разбираться. А вот в FMX, которые там в USES не хватает каких то методов. Но там, похоже, файлы пропатченные.
На днях проехал 500 км. Испытывал свой сенсор. Помехи есть, но пока терпимые. Помехи уменьшились после совета krapotkin. В своем приложении сделал возможность настраивать Distance и Accuracy. И менял их в разных комбинациях. У сенсора на эти настройки ноль эмоций, фунт презренья. И при Distance=1 и при Distance=500 (при разных Accuracy) расстояние между замерами 15-28 метров. Скорость движения при этом была 70-95 км/ч.А вопрос такой: есть ли возможность получать координаты с сенсора принудительно, а не ждать, пока сработает LocationChanged?
-
3 минуты назад, krapotkin сказал:
чувствуется, что статью по ссылке вы не читали )
Статью еще не изучал, но закладки провел у себя крассной нитью. В ближайшее время ОБЯЗАТЕЛЬНО изучу. Столько много информации приходится лопатить на эту тему, что даже не знаю с чего начать.
-
19 часов назад, krapotkin сказал:
несмотря на то что все хотят сделать из телефона GPS трекер с фоновым опросом, Google и производители кастомных оболочек хором говорят "хрена вам"
А производители кастомных оболочек не боятся, что их пошлют на хрен? У меня есть информация, что Play Market не размещает у себя приложения, которые вычисляют местоположение в ФОНОВОМ режиме. Но такие проиложения можно разрабатывать в своих интересах. А если хочешь продавать такие программы, то это можно делать и минуя Play Market: посвящай свой сайт этой программе и продавай.
-
Android 10. Ругается на picture.png при нажатии Button2.
-
В 30.05.2017 в 09:04, krapotkin сказал:
ну вроде 100 раз писали, что из телефона трекер не нужно делать. мобильные ОС против.
1. Не зря их нарекли гуглофонами.
2. Однако, JAVA - программы работают отиично! Тот же Locus. Просто Embarcadero не по себе ношу тянет.
-
Здравствуйте! Вот здесьhttps://fire-monkey.ru/topic/4711-не-запускается-служба/ Andrey Efimjv выставил файл Notification.zip, но внутри архива APK - файл.
А может кто-нибудь выложить исходники? Просто у меня нет такой папки, в которой есть этот пример.
Спасибо!
-
10 минут назад, Саша сказал:
В виндовсе службы идут как по масмлу, а андроиде труба.
В итоге мне нужно приложение такой структуры.
Хост - с моим расчетным модулем, описанным здесь 8 постов выше. Сервис - который В ПОТОКЕ периодически запрашивает метоположение и передает его хосту. Причем, Сервис это должен делать и при неактивном хосте, так как сервис еще кроме этого должен передавать местоположение на FTP - сервер.
-
5 минут назад, OnePeople сказал:
Так и есть, используй слушатель (LocationListener) или по таймеру запрашивайте местоположение по java.
Спасибо! Но я не знаю, что такое LocationListener. Мне сейчас хотябы со службой разобраться. В виндовсе службы идут как по масмлу, а андроиде труба. А как состтыковаьб JAVA и Delphi - для меня темный лес.
-
В 26.08.2023 в 00:48, Саша сказал:
Утром проверю на улице.
После всех изменений в манифесте проверил на улице. Работает чуточку лучше. Возможно, что идет отражение сигнала от домов. Остается еще попробовать установить ActivitiType в Navigation.
PS
Стою в открытом поле на месте. Скачки и по расстоянию (до 38 метров) и по азимуту. Либо спутники так видят, либо TLocationSensor в Embarcadero работает калечно.
-
2 часа назад, krapotkin сказал:
тут написано, что проблема сложная и не решается в лоб
Текст по ссылкам я обязательно изучу. Попробобовал пока с манифестом. Чем дальше, тем страшнее.
До моего сообщения о скачках (Android 10) манифест был по умоланию, без этих строк. При этом в меню Android для этого приложения я мог руками настроить доступ этого приложения к Wi-Fi и к мобильному интернету.
Затем я добавл в манифест permission.ACCESS_FINE_LOCATION. В меню Android возможность настройки доступа пропала. Мое приложение, похоже, стало выдавть верные данные настолько, насколько я не на улице, а хожу по комнате. Утром проверю на улице.
Зато доступ этого приложения к интернету пропал. А в дальнейшем мне этот доступ из приложения будет нужен.
-
4 часа назад, krapotkin сказал:
пока спутники не нашлись
А Вам знакомо приложение Locus? Там как только устаналивается связь со спутниками, загорается зеленый значок. А спутники видны сразу даже до установления связи с ними.
Проблема Wake-on-Lan
в Прочие вопросы
Опубликовано
Собственно это не мой код. Я сделал совершенно другим способом. И меня беспокоила не красота, а то, что андроид в отличии от виндовс делал это калечно: там обрезался старший бит. Максимальное значение было #7F (127), а все, что больше #3F - знак вопроса.
Проблема решилась так:
IdUDPClient1.Send('40.240.8,50',9,Data,IndyTextEncoding(IdTextEncodingType.enc8Bit));