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

Pax Beach

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

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

  • Посещение

  • Победитель дней

    12

Активность репутации

  1. Like
    Pax Beach получил реакцию от Zawuza в TBeacon. CASE: Использование маячков для контроля расхода электроэнергии   
    В рамках конкурса Device Lab от Google подготовил кейс «Маячки Eddystone для контроля расхода электроэнергии».
    Ознакомиться можно по ссылке — http://singro.ru/eddystone-beacons-electro-energy/ и в ближайшее время на «Хабрахабре».

    С помощью компонента TBeacon решены задачи:
    — поиск ближайших маячков;
    — работа с маячками в сервисе Android; 
    — фильтрация маячков по технологии Eddystone, ссылкам, идентификаторам.
    — привязка маячков к геокоординатам и базе данных приборов учета электроэнергии.
     
    Черпайте идеи и задавайте вопросы.
    Буду рад ответить на них.
     
    UPD:
    Наша работа заняла второе место в конкурсе Google Device Lab. Прочитать об этом можно на хабре.
  2. Like
    Pax Beach получил реакцию от Kitty в Описание TfgToast - Быстрые уведомления   
    ... и как это мешает отправить в систему намерение (Intent)?
  3. Like
    Pax Beach получил реакцию от Kitty в GCMIntentService или Multiline Push and Local Notification   
    И не появятся. Студия использует откомпилированную в составе библиотеку RTL.
     
  4. Like
    Pax Beach получил реакцию от Rusland в TNotificationCenter. Можно ли изменить иконку?   
    Коллеги, есть ли успехи в решении этого вопроса?
    Поделитесь опытом плиз.
  5. Like
    Pax Beach получил реакцию от Равиль Зарипов (ZuBy) в GCMIntentService или Multiline Push and Local Notification   
    Я имею ввиду, не жалко сделать бесплатно для участников форума,у которых есть репутация, которые сами вклад в развитие проекта делают. 
  6. Like
    Pax Beach получил реакцию от Kitty в [Android] ShareSheet   
    Можно переписать Action, чтобы попробовать работать через метод  startActivityForResult(), надо тестировать.
    Если понятно в какое приложение расшаривается изображение, возможно оно в процессе публикации или после шлет в эфир broadcast message, которое можно ловить, надо в мониторе смотреть.
     
  7. Like
    Pax Beach получил реакцию от Евгений Корепов в [Android] ShareSheet   
    Можно переписать Action, чтобы попробовать работать через метод  startActivityForResult(), надо тестировать.
    Если понятно в какое приложение расшаривается изображение, возможно оно в процессе публикации или после шлет в эфир broadcast message, которое можно ловить, надо в мониторе смотреть.
     
  8. Like
    Pax Beach получил реакцию от Kitty в Акция: Delphi 10.1 Berlin Starter Named БЕСПЛАТНО   
    За то, можно получить доступ к сообществу.
     
    Terms and Conditions:
    Offer valid from August 22nd 2016 to September 9th 2016
    Only one license per order
    Only one license per email address / account
    This offer does not include any upgrade subscription
    We reserve the right to change this offer at any time
    Offer void where prohibited by law
  9. Like
    Pax Beach отреагировална Alexander в Eddystone   
    Может это поможет
  10. Like
    Pax Beach получил реакцию от Rusland в Получение GPS координат из сервиса   
    Rusland, спасибо за пример 2.
    Много времени потратил на изучение работы из под сервиса.
    В итоге, в Berlin в сервисе отлично работает JLocationManager и JLocationListener.
     
  11. Like
    Pax Beach отреагировална Rusland в Получение GPS координат из сервиса   
    На радостях что сервис теперь может автоматически стартовать после перезагрузки системы (спасибо Ефимову Андрею), решил что пора научится получать координаты GPS через сервис.
     
    Вариант 1.
     
    Как-то я уже пробовал это сделать прицепив к dfm TLocationSensor, но был крах.
    Сегодня я прочитал вот такую статейку где говорится как раз об этом - крошится из-за того что в System.Android.Sensors используется Activity, которое null (у нас же сервис, а не простое приложение) 
    и предлагается решение в виде внесения изменение в System.Android.Sensors и System.Sensors.
    Я внес указанные изменения (сами файлы в patch.zip прикрепил к сообщению), скачал их Демо пример отсюда, положил вышеуказанные файлы в папку patch, но при компиляции выдает 3 ошибки вида:
    на строки соответственно
    Попробуйте кто-нибудь скомпилировать у себя пожалуйста. Пример должен быть рабочий по идее...
     
    тогда я решил действовать по другому:
     
    Вариант 2.
     
    Я вспомнил что можно обойтись без TLocationSensor и использовать LocationListener.
    В сервисе  сделал так:
    unit Unit2; interface uses System.SysUtils, System.Classes, System.Android.Service, AndroidApi.JNI.GraphicsContentViewText, Androidapi.JNI.Os, Androidapi.JNI.App, Androidapi.JNI.Location,Androidapi.JNIBridge,Androidapi.JNI.JavaTypes,Androidapi.Helpers, // для координат AndroidApi.Log; // лог смотреть через monitor.bat type TLocationListener = class; TAndroidServiceDM = class(TAndroidService) function AndroidServiceStartCommand(const Sender: TObject; const Intent: JIntent; Flags, StartId: Integer): Integer; private { Private declarations } FLocationManager: JLocationManager; locationListener: TLocationListener; public destructor Destroy; override; { Public declarations } procedure StartLocator(); procedure onLocationChanged(Location: JLocation); end; TLocationListener = class(TJavaLocal, JLocationListener) private [weak] FParent: TAndroidServiceDM; public constructor Create(AParent: TAndroidServiceDM); procedure onLocationChanged(Location: JLocation); cdecl; procedure onProviderDisabled(provider: JString); cdecl; procedure onProviderEnabled(provider: JString); cdecl; procedure onStatusChanged(provider: JString; status: Integer; extras: JBundle); cdecl; end; var AndroidServiceDM: TAndroidServiceDM; implementation {%CLASSGROUP 'FMX.Controls.TControl'} {$R *.dfm} function TAndroidServiceDM.AndroidServiceStartCommand(const Sender: TObject; const Intent: JIntent; Flags, StartId: Integer): Integer; begin StartLocator(); Result:=TJService.JavaClass.START_STICKY; end; destructor TAndroidServiceDM.Destroy; begin if Assigned(locationListener) then FLocationManager.removeUpdates(locationListener); inherited; end; procedure TAndroidServiceDM.onLocationChanged(Location: JLocation); var M: TMarshaller; begin if Assigned(Location) then begin Logi(M.AsUtf8('LogLatitude '+ Location.getLongitude.ToString).ToPointer); Logi(M.AsUtf8('LogLongitude '+Location.getLongitude.ToString).ToPointer); end; end; procedure TAndroidServiceDM.StartLocator(); var LocationManagerService: JObject; GPSLocation, NetworkLocation: JLocation; begin if not Assigned(FLocationManager) then begin LocationManagerService := SharedActivityContext.getSystemService(TJContext.JavaClass.LOCATION_SERVICE); FLocationManager := TJLocationManager.Wrap((LocationManagerService as ILocalObject).GetObjectID); if not Assigned(locationListener) then locationListener := TLocationListener.Create(self); FLocationManager.requestLocationUpdates(TJLocationManager.JavaClass.GPS_PROVIDER, 10000, 0, locationListener, TJLooper.JavaClass.getMainLooper); FLocationManager.requestLocationUpdates(TJLocationManager.JavaClass.NETWORK_PROVIDER, 10000, 0, locationListener, TJLooper.JavaClass.getMainLooper); end; GPSLocation := FLocationManager.getLastKnownLocation(TJLocationManager.JavaClass.GPS_PROVIDER); NetworkLocation := FLocationManager.getLastKnownLocation(TJLocationManager.JavaClass.NETWORK_PROVIDER); onLocationChanged(GPSLocation); onLocationChanged(NetworkLocation); end; constructor TLocationListener.Create(AParent: TAndroidServiceDM); begin inherited Create; FParent := AParent; end; procedure TLocationListener.onLocationChanged(Location: JLocation); begin FParent.onLocationChanged(Location); end; procedure TLocationListener.onProviderDisabled(provider: JString); begin end; procedure TLocationListener.onProviderEnabled(provider: JString); begin end; procedure TLocationListener.onStatusChanged(provider: JString; status: Integer; extras: JBundle); begin end; end. После старта приложения, через несколько секунд оно морозится и система спрашивает "Подождать?". 
    Расстановка breakpoint-ов мне не помогла, ошибка случается раньше Segment fault 11.
     
    Пример в архиве ASARservRepair2.zip прикрепляю.
    Посмотрите пожалуйста в чем может быть проблема?
    ASARservRepair2.zip
    patch.zip
  12. Like
    Pax Beach отреагировална kami в Создание и запуск нового потока (POSIX)   
    http://forum.vingrad.ru/forum/topic-60076.html
  13. Like
    Pax Beach отреагировална rareMax в Создание и запуск нового потока (POSIX)   
    http://docwiki.embarcadero.com/RADStudio/Seattle/en/Using_the_Parallel_Programming_Library
  14. Like
    Pax Beach отреагировална enatechno в как сделать автоскролинг чтобы активный итем был виден ?   
    Активный итем или последний добавленный? На дельфи "скроллировать" можно с помощью TListbox.ScrollToItem(Item). Если последний добавленный, то сначала добавляем, а потом скролл к нему. Например вот так:
     
    Listbox1.BeginUpdate; try aListBoxItem := TListBoxItem.Create(Listbox1); aListBoxItem.Text := 'text ' + random(500).ToString; Listbox1.AddObject(aListBoxItem); finally Listbox1.EndUpdate; end; Listbox1.ScrollToItem(aListBoxItem);  
  15. Like
    Pax Beach отреагировална Равиль Зарипов (ZuBy) в DeviceInfo - модуль для получения информации о девайсе   
    DeviceInfo - модуль для получения информации о девайсе
    Android || Windows || IOS || MAC OS
      

    Intel планшет

    для Андроида нужно включить разрешения (permission)
    Ссылка на GitHub
  16. Like
    Pax Beach отреагировална Brovin Yaroslav в [TWebBrowser] [iOS] Открытие прикрепленной html страницы в TWebBrowser   
    Добрый день,
     
    Прикрепляю проект, где все загружается корректно (iOS Simulator). WebBrowserLoadLocalFile.zip
    Внимательно проверьте место назначения развертывания файла и факт того, что он задеплоился:
    Обязательно слэш в конце: "Startup\Documents\" Строка с файлом в Deployment Manager не должна быть серой!  
    Загрузка идет таким способом:
    uses System.IOUtils; procedure TForm15.FormCreate(Sender: TObject); begin WebBrowser1.URL := 'file:/' + TPath.Combine(TPath.GetDocumentsPath, 'DemoPage.html'); end; P.S. Сделано все по руководству Включение своих файлов в приложение
  17. Like
    Pax Beach получил реакцию от zairkz в Как изменить версию АПИ для компиляции проекта   
    И все же, это подходящая ветка для обсуждения настроек SDK manager.
    1. Какой SDK API-Level выбирать?
    2. Какую версию build-tools использовать?
    3. Какую версию NDK API выбирать?
    4. Для чего в Delphi параметры C++ Builder NDK?
    5. Как изменять и зачем в манифесте строчка?
    <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14" /> 6. На что влияют все эти настройки и с точки зрения функционала приложений на различных версиях Android и, важно, при публикации в Google Play?
    Кто разобрался в этом? Или давайте вместе разберемся, кидайте ссылки.
    Обсудим по порядку?
  18. Like
    Pax Beach получил реакцию от zairkz в Как изменить версию АПИ для компиляции проекта   
    1. Выбираю android-19 — чтобы сохранить поддержку Android 4.4.2 и выше
    2. Самые новые инструменты построения проектов — в моем случае 24.0.1.
    3. Без понятия, на что это влияет — выбираю тоже android-19.
    4. Не знаю.
    5. Зачем, догадываюсь — Embarcadero поддерживает корректную работу приложений, начиная с версии API 14. Я компилирую проекты под API 19. Как управлять этой строчкой в манифесте? — не знаю
    6. ... но ее содержимое существенным образом влияет на фильтры Google.
     
  19. Like
    Pax Beach отреагировална Brovin Yaroslav в Почему у меня при создании TListBoxItem в рантайме и включенной опции переноса слов WordWrap, слова не переносятся, а в дизайн тайме - переносятся?   
    Чтобы в рантайме (runtime) работал перенос, нужно просто сбросить настройку:
    ListBoxItem.StyledSettings := ListBoxItem.StyledSettings - [TStyledSetting.ssOther]; В дизайн тайме, при установке свойства WordWrap y TListBoxItem, автоматически сбрасывается опция TStyledSettings.ssOther у StyledSettings, которая означает, что настройки переноса нужно брать из контрола, а не из стиля. В рантайме - нет.    Свойство TListBoxItem.StyledSettings отвечает за то, какие настройки брать из стиля, а какие из самого контрола. Так отсутствие значения ssOther говорит о том, что значение варианта переноса будет браться из контрола, а не из стиля.    Обратите внимание еще на тему: Почему не изменяется Font.Style и Font.Size?
  20. Like
    Pax Beach отреагировална Brovin Yaroslav в Почему не изменяется Font.Style и Font.Size?   
    Label1.StyledSettings := Label1.StyledSettings - [TStyledSetting.Size]; В FireMonkey все, что отвечает за визуальную часть (отображение контрола) обычно выносится в стиль. Однако, не всегда удобно создавать новый стиль, только, когда нужно, например, поменять размер шрифта в TLabel. Поэтому, чтобы позволить пользователям удобно менять такие настройки, как шрифт. Шрифт выделен в отдельное свойство TLabel.Font. При выделении шрифта отдельным свойством, нужно понимать, что при таком подходе контрол "не знает", откуда ему брать шрифт: то ли из свойства, то ли из стиля.
     
    Поэтому, чтобы контрол знал, откуда ему брать шрифт для отображения: из стиля или из свойства Font, введено свойство TLabel.StyledSetting. Которое говорит контролу, какие характеристики шрифта нужно брать из стиля, а какие можно взять из свойства TLabel.Font. По умолчанию, StyledSettings настроены так, что все берется из стиля. В вашем случае, нужно сбросить галку напротив значения ssSize и ssFont.
     
    Подробная информация есть на Embarcadero Doc Wiki: http://docwiki.embarcadero.com/RADStudio/XE5/en/Setting_Text_Parameters_in_FireMonkey
  21. Like
    Pax Beach получил реакцию от Kitty в Вызов приложения из нофитикейшена   
    Да, у меня такая же ситуация. Не доделали в С++.
     
  22. Like
    Pax Beach получил реакцию от Kitty в Как изменить версию АПИ для компиляции проекта   
    1. Выбираю android-19 — чтобы сохранить поддержку Android 4.4.2 и выше
    2. Самые новые инструменты построения проектов — в моем случае 24.0.1.
    3. Без понятия, на что это влияет — выбираю тоже android-19.
    4. Не знаю.
    5. Зачем, догадываюсь — Embarcadero поддерживает корректную работу приложений, начиная с версии API 14. Я компилирую проекты под API 19. Как управлять этой строчкой в манифесте? — не знаю
    6. ... но ее содержимое существенным образом влияет на фильтры Google.
     
  23. Like
    Pax Beach отреагировална rareMax в Передача объекта в результат функции   
    Сейчас попробую на интерфейсы перевести. Если не получится - буду вашим способом пользоваться(хотя для конечного пользователя гемор лишний будет). Спасибо за совет.
  24. Like
    Pax Beach получил реакцию от rareMax в Как изменить версию АПИ для компиляции проекта   
    И все же, это подходящая ветка для обсуждения настроек SDK manager.
    1. Какой SDK API-Level выбирать?
    2. Какую версию build-tools использовать?
    3. Какую версию NDK API выбирать?
    4. Для чего в Delphi параметры C++ Builder NDK?
    5. Как изменять и зачем в манифесте строчка?
    <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14" /> 6. На что влияют все эти настройки и с точки зрения функционала приложений на различных версиях Android и, важно, при публикации в Google Play?
    Кто разобрался в этом? Или давайте вместе разберемся, кидайте ссылки.
    Обсудим по порядку?
  25. Like
    Pax Beach получил реакцию от Kitty в Как изменить версию АПИ для компиляции проекта   
    И все же, это подходящая ветка для обсуждения настроек SDK manager.
    1. Какой SDK API-Level выбирать?
    2. Какую версию build-tools использовать?
    3. Какую версию NDK API выбирать?
    4. Для чего в Delphi параметры C++ Builder NDK?
    5. Как изменять и зачем в манифесте строчка?
    <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14" /> 6. На что влияют все эти настройки и с точки зрения функционала приложений на различных версиях Android и, важно, при публикации в Google Play?
    Кто разобрался в этом? Или давайте вместе разберемся, кидайте ссылки.
    Обсудим по порядку?
×
×
  • Создать...