-
Постов
414 -
Зарегистрирован
-
Посещение
-
Победитель дней
12
Сообщения, опубликованные Pax Beach
-
-
13 часов назад, gutalin79 сказал:
Такая же проблема! А еще не понятно как вытащить адрес...
Для работы локатора в свернутом приложении, стоит работу с GPS вынести в сервис. Понятно, что это только для Android.
Вытащить адрес, видимо речь о почтовых адресах, нужно использовать API Google services, у них такое есть.
-
2 минуты назад, progilic сказал:
hi
I have a problem :
[dcc32 Fatal Error] FGX.Asserts.pas(159): F2039 Could not create output file 'c:\program files (x86)\embarcadero\studio\19.0\lib\Win32\Debug\FGX.Asserts.dcu'
Сообщение об ошибке справедливое.
Но, всегда нужно помнить, что циганский поезд, типа Эмбы лучше ставить в отдельную не системную папку, желательно с правами на запись.
-
В 16.04.2018 в 05:16, beklexx сказал:
Хмм, тогда интересно, является ли триангуляция/определение по wi-fi mock location?
Хотя это не логично, я так понял mock это разрешение получать gps не от сенсора. Тогда интересует, с какой версии андроида идёт ограничение на mock?
C 5-й, если правильно все помню.
-
-
3 часа назад, x11 сказал:
Нашёл в логах андроида при смахивании приложения с экрана:
Т.е. служба почему-то закрывается аварийно.
Broadcast reciever создавался в событии StartCommand, продублировал ещё и в OnCreate DataModule.
Как обычно — причин может быть много.
Здесь читающих мысли и чужой код из астрала не встречал, нужно код смотреть.
Обычный вариант вывести все события приложения в лог, и разбираться, после чего падает и почему.
-
56 минут назад, x11 сказал:
Подскажите, что нужно изменить в Ваших примерах, чтобы реагировать не на внутренние сообщения, а на внешние? Например, на звонки.
В коде есть комментарии на русском языке голубым по синему:
// Глобальные сообщения
и
// Локальные сообщения
соответственно то, что ниже этих комментариев, относится к локальному или глобальному ресиверу.
-
34 минуты назад, x11 сказал:
function TDM.AndroidServiceStartCommand( ... .. .. if Action = 'KillApplication' then begin Log('"Die! command geted'); Intent.setAction(StringToJString('StartService')); TJActivityManager.Wrap(ILocalObject(LJO).GetObjectID).killBackgroundProcesses(StringToJString('com.embarcadero.LocalBCR')); end;
А зачем StartService в KillApplication?
А где в вызове killBackgroundProcesses используется этот интент? — нигде.
Поэтому незачем.
Я же говорю — Осталось от предыдущего кода.
-
9 часов назад, x11 сказал:
procedure TfmMain.btStopServiceStartCommandClick(Sender: TObject); begin Log('Service to be stoped by StartCommand'); FService := TJIntent.Create; FService.setClassName(TAndroidHelper.Context.getPackageName(), TAndroidHelper.StringToJString('com.embarcadero.services.LBCRService')); FService.setAction(StringToJString('StopService')); TAndroidHelper.Activity.startService(FService); end;
а зачем здесь "startService" последней строкой?
StartCommand вызывается каждый раз, когда мы вызываем из приложения StartService.
А как обрабатывать намерение (Intent) переданный в этот метод — это наше дело.
У меня в этой команде обрабатывался и старт и стоп.
Убивать приложение через KillBackgroundProcess не обязательно, это осталось от моего другого приложения, где выгрузить процесс из памяти было критичным.
-
19 часов назад, x11 сказал:
Пока я не понял, что прописать в XML
<receiver android:name=".OutgoingCallReceiver" >
вместо ".OutgoingCallReceiver"
Нет Дельфи под рукой, трудно подсказать.
А можно весь манифест увидеть, и monitor log желательно, права в проекте все предоставлены?Кстати Android какой, а то может права дополнительно Runtime запрашивать надо?
На форуме есть все примеры для этого.
Свой пример писал кажется под Android 5.0.
-
В 01.06.2016 в 15:07, krapotkin сказал:
тут уже не раз хвалили, и я в том числе, X-SuperObject
Да, очень удобная библиотека.
Денек позаморачиваться — для дельфиста в новинку.
Зато потом с API общаться вообще нет проблем. -
Я предлагаю использовать вызовы методов этого интерфейса. Уже все написано за вас.
Не зная, как пользоваться Android Developer, под Android не получится ничего толкового написать.
-
Я тоже. Тут весь форум об этом.
Но Android не понимает Delphi, а Delphi использует простые обертки над Java классами
-
При входящем звонке система сама рассылает уведомление об этом. Нужно на него просто подписаться. Код уведомления надо поискать в справочнике разработчика.
Предполагаю, что здесь https://developer.android.com/reference/android/telephony/TelephonyManager.html
-
Сто пятьсот причин. Я бы плясал от версии андроид, наличие прав на сохранение файлов у приложения, куда приложение установлено, куда пишется файл.
Примерно в такой последовательности.
-
Только что, I PL сказал:
Приветствую, а есть способ запускать точку доступа? Без вызова окна настроек.
Наверняка.
Надо читать на портале разработчиков
-
В 11.09.2017 в 17:09, Rusland сказал:
Проверил, запускает и работает (Xiaomi Redmi Note 4 MIUI Global 8.5).
Так вот если выгрузить программу (сервис перезапускается) и выключить экран, то через несколько минут сервис не может достучаться до сервера. В чем может быть проблема и как ее решить?
Проблема в MUI.
Предполагаю, что надо искать решение в запросе разрешений на уведомления, разбудить телефон, показать приложение поверх других окон, еще что-нибудь такое. Потому что в MUI большой упор на энергосбережение, безопасность и спам.
Я замучился уже с MUI, не для разработчиков ось =)
-
-
3 минуты назад, MikeWuzHere сказал:
Вроде писал start sticky, но почему то по выходу с приложения и сервиса не видно. С логами не разобрался как работать, но вот вроде что то нарыл (до этого видел что туда летят координаты).
Судя по логам по завершеню работы самой программы - умирает и сервис, но старт стики почему то не срабатывает О_О
Что-то не так в логах. Фигурирует три пакета com.embarcadero... А должно быть максимум два.
Надо всё почистить и заново собрать. Если не заработает, смотреть код.
GPS трекер отлично работает нас телефонах. Только Xiomi не победил пока.
-
1 час назад, MikeWuzHere сказал:
Андроид (Le Eco Le 2, самсунг гал 3), 10 seattle. Проблема в том, что как только чистится память или закрывается приложени в ручную умирает и сервис, точнее не сам сервис, а координаты идти перестают.
Что наталкивает нас на мысльо том, что либо сервис стартует без команды дальнейшего перезапуска, либо не перезапускается, либо запускается и валится с ошибкой.
Лог монитор в помощь. Что показывает?
-
2 минуты назад, MikeWuzHere сказал:
Удалось решить проблему с вылетом сервиса? Приложение закрываешь и все, координаты не летят.
Какое устройство, ОС, версия Delphi?
-
16 минут назад, Barbanel сказал:
Поставили такую же задачу - удалять оставшиеся фото из галереи.
Взяли за основу твое решение - работает через раз, и только при отладке:
- перед созданием фото получаем id последнего фото (id_last)
- фотографируем
- ищем все id которые больше id_last и удаляем их.
На последнем шаге и получаем фейл - из под работающего приложения никогда не возращаются id больше id_last. Из под отладки - получаем лишь иногда. Причем если в момент отладки переключиться в галерею, то там есть свежие фото.
Есть идеи, в какую сторону копать? Может перед
vCursor := vContent.query(...)
нужно какой кеш обновить?
Сразу приходит в голову разумная пауза перед запросом. Не пробовали?
-
2 часа назад, rareMax сказал:
Спасибо, помогло!
Не сразу понял, что это стеб =)
-
12 часа назад, Barbanel сказал:
Скорее всего увас в конфиге IDE прописан флаг WAIT_2_SECONDS_BEFORE_FMX_STARTS. Уберите его - и проблема исчезнет.
А где этот флаг в настройках, никак не найду?
-
HBITMAP — это и есть VCL.TBitmap
var hWinDC : THandle; w, h : integer; tmpStream: TMemoryStream; begin GetTargetDimensions(w, h); hWinDC := GetWindowDC(TargetHandle); BitmapVCL.Width := w; BitmapVCL.Height := h; hWinDC := GetWindowDC(TargetHandle); BitBlt(BitmapVCL.Canvas.Handle, 0, 0, BitmapVCL.Width, BitmapVCL.Height, hWinDC, 0, 0, SRCCOPY); ReleaseDC(TargetHandle, hWinDC); tmpStream := TMemoryStream.Create; try BitmapVCL.SaveToStream(tmpStream); BitmapFMX.LoadFromStream(tmpStream); finally tmpStream.Free; end; end;
Получение GPS координат из сервиса
в Сервис(служба)
Опубликовано
У большинства пользователей, если не у всех, эти параметры, касаемо адреса, будут занулены.
Без интернета и API (того же гугла) этот вопрос не решить.