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

Саша

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

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

  • Посещение

Информация о Саша

  • День рождения 17.02.1960

Информация

  • Пол
    Мужчина
  • Город
    Мизур

Посетители профиля

Блок последних пользователей отключён и не показывается другим пользователям.

  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?
×
×
  • Создать...