Поиск по сайту

Результаты поиска по тегам 'Android'.

  • Поиск по тегам

    Введите теги через запятую.
  • Поиск по автору

Тип публикаций


Категории и разделы

  • Общие вопросы
    • Анимация
    • Графика
    • Стили
    • Базы данных и REST
    • Компоненты
    • Положение, размеры, выравнивание
    • Работа с текстом
    • Приложение и формы
    • Отладка
    • Развертывание приложений
    • Вопросы по языку Object Pascal и RTL
    • Общая информация о TControl
    • События
    • Прочие вопросы
  • Вопросы по платформам
    • Android
    • iOS
    • OSX
    • Windows
    • Windows Phone
    • Linux
  • Вопросы по использованию RAD Studio
    • Лицензирование
    • Сборка проектов
    • Multi-Device Designer
    • Редактор кода
    • Вопросы
  • Обучение
    • Основная информация
    • Вопросы
    • Отзывы
  • Поиск специалистов по FireMonkey
    • Консультации
    • Ищу подрядчика
  • API интернет сервисов
    • ВКонтакте API
    • Google Maps API
    • Yandex деньги
  • Дополнительные ресурсы по FireMonkey
    • Сторонние компоненты
    • Приложения, написанные с использованием FireMonkey
    • Примеры
    • Руководства
    • Шаблоны
    • Статьи и заметки
    • Информация о версиях RAD Studio
    • Новости
  • Организация работы данного форума
    • Правила форума
    • Нарушения правил форума
    • Предложения об организации форума
    • Проблемы
  • Видеокурсы
    • Основная информация
    • Курсы
    • Предложения и голосования за новые курсы
    • Вопросы

Категории

  • Курсы



Фильтр по количеству...

Найдено 177 результатов

  1. Добрый день. Имеется приложение, которое реализовано в портретной и альбомной ориентации. При повороте экрана срабатывает событие TForm.OnResize, в котором производятся изменения размеров и положения элементов. В Андроиде при повороте все происходит плавно, а в iOS на долю секунды мигает экран с изменённым положением контролов и только потом перерисовывается. Почему так происходит и как это можно исправить?
  2. DeviceInfo - модуль для получения информации о девайсе Android || Windows || IOS || MAC OS Intel планшет для Андроида нужно включить разрешения (permission) Ссылка на GitHub
  3. Есть прога(c++) на сервере под Windows. К ней подключаются девайсы под андроид и проверяют обновление некого андроид-приложения. Прога на сервере должна узнать версию лежащего локально apk-файла и сообщить ее девайсу. Теоретически можно с помощью aapt получить AndroidManifest.xml файл и вытащить версию от туда. А если ли какие стандартные средства, чтобы узнать версию APK под Windows?
  4. Провел небольшое исследование поведения таймера Posix в сервисе. Результаты не очень. Таймер ведет себя так же как и в приложении, главное отличие - не умирает окончательно, но рассчитывать на него не стоит. Перед экспериментом было отключено энергосбережение, экономия трафика во сне (телефон работал через wifi), т.е. созданы все условия для долгой и стабильной работы. 2017-02-24 23:22:51 - телефон ушел в сон. Таймер начал работать эпизодически, с провалами до получаса. 2017-02-25 07:24:58 - я проснулся и разблокировал телефон. Таймер опять нормально заработал. В следующей серии попробую протестировать сервис с AlarmManager, что то у меня подозрения что результаты будут не лучше. 2017-02-25 07:27:58 Posix-таймер в сервисе. Запрос раз в 60 сек. № 108 2017-02-25 07:26:58 Posix-таймер в сервисе. Запрос раз в 60 сек. № 107 2017-02-25 07:25:58 Posix-таймер в сервисе. Запрос раз в 60 сек. № 106 2017-02-25 07:24:58 Posix-таймер в сервисе. Запрос раз в 60 сек. № 105 2017-02-25 07:21:05 Posix-таймер в сервисе. Запрос раз в 60 сек. № 104 2017-02-25 07:14:00 Posix-таймер в сервисе. Запрос раз в 60 сек. № 103 2017-02-25 07:01:59 Posix-таймер в сервисе. Запрос раз в 60 сек. № 102 2017-02-25 06:46:33 Posix-таймер в сервисе. Запрос раз в 60 сек. № 101 2017-02-25 06:24:50 Posix-таймер в сервисе. Запрос раз в 60 сек. № 100 2017-02-25 06:13:58 Posix-таймер в сервисе. Запрос раз в 60 сек. № 99 2017-02-25 05:51:32 Posix-таймер в сервисе. Запрос раз в 60 сек. № 98 2017-02-25 05:30:07 Posix-таймер в сервисе. Запрос раз в 60 сек. № 97 2017-02-25 05:16:28 Posix-таймер в сервисе. Запрос раз в 60 сек. № 96 2017-02-25 05:07:28 Posix-таймер в сервисе. Запрос раз в 60 сек. № 95 2017-02-25 05:00:41 Posix-таймер в сервисе. Запрос раз в 60 сек. № 94 2017-02-25 04:41:01 Posix-таймер в сервисе. Запрос раз в 60 сек. № 93 2017-02-25 04:21:19 Posix-таймер в сервисе. Запрос раз в 60 сек. № 92 2017-02-25 04:00:40 Posix-таймер в сервисе. Запрос раз в 60 сек. № 91 2017-02-25 03:41:33 Posix-таймер в сервисе. Запрос раз в 60 сек. № 90 2017-02-25 03:16:59 Posix-таймер в сервисе. Запрос раз в 60 сек. № 89 2017-02-25 03:02:01 Posix-таймер в сервисе. Запрос раз в 60 сек. № 88 2017-02-25 02:44:54 Posix-таймер в сервисе. Запрос раз в 60 сек. № 87 2017-02-25 02:23:49 Posix-таймер в сервисе. Запрос раз в 60 сек. № 86 2017-02-25 02:10:28 Posix-таймер в сервисе. Запрос раз в 60 сек. № 85 2017-02-25 01:52:11 Posix-таймер в сервисе. Запрос раз в 60 сек. № 84 2017-02-25 01:32:57 Posix-таймер в сервисе. Запрос раз в 60 сек. № 83 2017-02-25 01:28:26 Posix-таймер в сервисе. Запрос раз в 60 сек. № 82 2017-02-25 01:27:26 Posix-таймер в сервисе. Запрос раз в 60 сек. № 81 2017-02-25 01:26:26 Posix-таймер в сервисе. Запрос раз в 60 сек. № 80 2017-02-25 01:25:27 Posix-таймер в сервисе. Запрос раз в 60 сек. № 79 2017-02-25 01:10:59 Posix-таймер в сервисе. Запрос раз в 60 сек. № 78 2017-02-25 01:00:27 Posix-таймер в сервисе. Запрос раз в 60 сек. № 77 2017-02-25 00:38:59 Posix-таймер в сервисе. Запрос раз в 60 сек. № 76 2017-02-25 00:19:22 Posix-таймер в сервисе. Запрос раз в 60 сек. № 75 2017-02-25 00:01:27 Posix-таймер в сервисе. Запрос раз в 60 сек. № 74 2017-02-24 23:51:15 Posix-таймер в сервисе. Запрос раз в 60 сек. № 73 2017-02-24 23:30:37 Posix-таймер в сервисе. Запрос раз в 60 сек. № 72 2017-02-24 23:22:51 Posix-таймер в сервисе. Запрос раз в 60 сек. № 71 2017-02-24 23:21:51 Posix-таймер в сервисе. Запрос раз в 60 сек. № 70 2017-02-24 23:20:51 Posix-таймер в сервисе. Запрос раз в 60 сек. № 69 2017-02-24 23:19:51 Posix-таймер в сервисе. Запрос раз в 60 сек. № 68 2017-02-24 23:18:51 Posix-таймер в сервисе. Запрос раз в 60 сек. № 67 2017-02-24 23:17:52 Posix-таймер в сервисе. Запрос раз в 60 сек. № 66 2017-02-24 23:16:52 Posix-таймер в сервисе. Запрос раз в 60 сек. № 65
  5. Для работы с USB-устройствами (на девайсах с USB-хостом) нужно использовать BroadcastReceiver. Нашёл пример работы с ними (https://github.com/freeonterminate/delphi/tree/master/BroadcastReceiver). Проверял на XE10. Долго мучался с проверкой, пока не выяснилось, что под XE7 работает, а под XE10 - нет. Выдаёт ошибку "Interface not supported" в момент создания JFMXBroadcastReceiver (или около того, точно непонятно). Для демонстрации я создал отдельный простой проект - https://github.com/ashumkin/Delphi-Android-BroadcastSample. В XE7 он работает (при нажатии на кнопку Register вешается слушатель, который ловит и выводит в лог (см. adb logcat) события включения/выключения экрана). А в XE10 - выдаёт вышеупомянутую ошибку "Interface not supported". В логах есть строки W/dalvikvm(31735): dvmFindClassByName rejecting 'com/embarcadero/firemonkey/broadcast/FMXBroadcastReceiverListener' W/dalvikvm(31735): dvmFindClassByName rejecting 'com/embarcadero/firemonkey/broadcast/FMXBroadcastReceiver' (но они есть и при запуске приложения, собранного в XE7) Пробовал по-разному: и удалял AndroidManifest.template.xml от XE7, и пересоздавал .dproj в XE10, - пофик. В чём засада?
  6. Доброго времени суток! У меня вопрос, если можно объясните пожалуйста: я пишу программу с помощью С++ builder Seattle 10 (версия) для андроид платформы, но возникает проблема с загрузкой AUDIO файлов, в *.apk файл не грузится аудиофайлы. Невозможно изменить playaudiofile коды в sample. Объясните как можно чтобы аудиофайлы грузились в андроид платформы. Спасибо за ответ!
  7. Всем привет. Столкнулся со следующей проблемой после активации tedit при попытке создать любое намерение (для набора номера или открытия ссылки) программа наглухо зависает. И наоборот после создания и выполнения намерения, если перейти к tedit происходит глухое зависание. Тоже самое происходит и с memo. Проблема похожа на описанную в этой теме, но решение из нее не помогает Чем заменить tedit не знаю, пробовал все возможные варианты. Функции работы с намерениями рабочая и если не активировать tedit то все работает отлично. Пробовал на разных устройствах, результат тот же. Правда на всех устройствах был Android 5. Подскажите пожалуйста, возможно ли под android создать диалоговое окно с вводом текста? Или может быть есть еще какие-нибудь способы ввода текста?
  8. Как узнать что MediaPlayer закончил воспроизведение аудио/видео файла? С 2015 года что-нибудь изменилось?
  9. Пытаюсь из сервиса вывести лог, но в monitor ничего не приходит. Для примера вот тестовый проект Проверьте, как у вас? PS. Из приложения лог приходит нормально
  10. RAD Studio Mobile Tutorials - Free eBook Get all the information you need to know on developing mobile apps for Android and iOS with RAD Studio, Delphi and C++Builder XE7 in this free 300+ page ebook. Download the free RAD Studio Mobile Development Tutorials ebook Topics include: Setting up the tools and SDKs Creating your first mobile app Best practices for using components User interface design Connecting with data Push notifications And much more.
  11. Привет Всем! vkbdhelper.pas Давно пользовался vkbdhelper'ом, но он был только для андроида. руки добрались и до этого, теперь его можно использовать и на IOS изменения * почистил uses секцию * убрал зависимость от платформ (кросс-платформенный) * добавил глобальную переменную VKOffset VKOffset - расстояние между контролом и клавиатурой для тех случаев когда включены подсказки/автозамена и контрол оказывается под доп. панелькой Не все клавиатуры включают доп. панели в свой размер! Например для IOS нужно всегда прибавлять 30-32 пикселя, панель с кнопкой Done перекрывает контрол {$IFDEF IOS} VKOffset := 31; {$ELSE} VKOffset := 0; // на свой вкус // не знаю как определить размер доп. панельки // когда она не входит в размер клавиатуры // и определить есть ли панелька вообще... {$ENDIF} vkbdhelper.zip
  12. Всем добрый день! Приоритет нитки для Windows имеет тип TThreadPriority: enum DECLSPEC_DENUM TThreadPriority : unsigned char { tpIdle, tpLowest, tpLower, tpNormal, tpHigher, tpHighest, tpTimeCritical }; __property TThreadPriority Priority = {read=GetPriority, write=SetPriority, nodefault}; Тут по названиям элементов множества всё предельно понятно. Для Android тип уже int: __property int Priority = {read=GetPriority, write=SetPriority, nodefault}; Нигде не могу найти возможные варианты значений для приоритета. Кто-нибудь знает?
  13. Подскажите как добраться до кнопки очистки содержимого TSearchBox? Сам TSearchBox у TListView благодаря теме "Можно ли программно передать фокус на SearchBox и очистить строку?" доступен без проблем, но кнопка не обнаруживается в ListViewProducts.SearchEdit.Children.Items :-( Хочу изменить логику ее появления - сделать видимой всегда, когда есть текст в ListViewProducts.SearchEdit.Text. По умолчанию ее поведение малость загадочное - она исчезание при любой возможности (потеря фокуса, Resize, смена ориентации и т.д.). Что бы очистить поле поиска, пользователю приходится в данный момент производить следующие манипуляции: Кликнуть на SearchBox Ввести любой символ Нажать на появившуюся "кнопку с крестиком" Пока написан костыль на все возможные манипуляции - добавляю пробел в конец SearchBox, удаляю добавленный пробел, но иногда он не срабатывает и вводит пользователя в ступор. Пытался решить проблему добавлением отдельной кнопки очистки, с нормальным поведением, но опять же встает вопрос как навсегда скрыть родную кнопку. Сейчас пытаюсь отказаться от встроенного в TListView TSearchBox, сделать отдельное поле ввода поиска, но с наскока не пойму как передавать строку фильтрации в TListView.
  14. На Android код, который работает исправно на Win вызывает ошибку "CalledFromWrongThreadException: Only the original thread that created a view hierarcy can touch its views" Смысл таков, что я пытаюсь показать форму из треда, у которой BorderStyle=none (роли это не играет). Решение в Андроиде заключается в том, чтобы пускать через runOnUiThread (то есть выполнять интерфейсные штуки в главном потоке). Как я понимаю, в firemonkey эту фичу должен выполнять Synchronize(). Тем не менее, ошибка возникает. А при запуске в режиме дебага на андроид девайсе событие кнопки вообще не срабатывает иногда. А если срабатывает, то возникает описанное выше исключение. Я собрал тестовый пример и в нем не сразу видна ошибка, тогда как получил я ее на рабочем проекте. Цель: показать бизибокс на время бекграундных действий. Этот бизибокс у меня сначала был просто на каждой форме и я интерфейсно его вызывал, но теперь решил сделать отедльной формой (как и тоаст), но почему так происходит я не понял. Вы что скажете? unit Unit1; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Controls.Presentation, FMX.StdCtrls; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; TWorkThread = class(TThread) public procedure Execute; override; end; var Form1: TForm1; implementation {$R *.fmx} uses unit2; procedure TForm1.Button1Click(Sender: TObject); var t: TWorkThread; begin t := TWorkThread.Create(True); t.FreeOnTerminate := true; t.Start; end; { TWorkThread } procedure TWorkThread.Execute; begin inherited; Self.Synchronize(procedure begin Form2.Show; Form2.Top := Form1.Top; Form2.Left := Form1.Left; Form2.BringToFront; end); Terminate; end; end.
  15. Собственно вопрос, можно ли вызывать АктивитиДиалог из рабочего потока в андроид или это будет приводить к ошибкам?
  16. Всем привет. Есть приложение под Android, используются 2 формы. Так вот при первом переключении есть заметная задержка (фриз). Четко чувствуется на всех устройствах. При следующих переключениях такого не наблюдается. Может быть кто-то сталкивался с такой проблемой, подскажите пожалуйста пути решения.
  17. TListView, как внезапно выяснилось, напрочь игнорирует системный размер шрифта и в iOS, и в Android. Есть решение, как его можно заставить соответствовать системным настройкам, или же никто не грузит себя этой ерундой? Наверняка и многие другие компоненты не утруждают себя соответствием системным настройкам, но меня пока интересует только TListView.
  18. При публикации нового приложения я обнаружил исчезновение Google Cloud Messaging из консоли разработчика, теперь вместо него Firebase Cloud Messaging. Как я понимаю возможность push сообщений для Delphi закончилась? Или как то можно прикрутить FCM к проекту на Delphi?
  19. Доброго времени суток. Пишу мобильное приложение на Delphi Berlin. Добавил вибрацию при нажатии на кнопку. На Андроид 4.4.2 все работает нормально, на Андроид 6 при нажатии на кнопку приложение вылетает. Проблема точно в вибрации, так как при отсутствии вибрации все работает нормально. В качестве процедуры вибрации использую следующий код: procedure Vibr; //Процедура вибрации var VibratorObj: JObject; Vibrator: JVibrator; begin VibratorObj := SharedActivity.getSystemService(TJActivity.JavaClass.VIBRATOR_SERVICE); Vibrator := TJVibrator.Wrap((VibratorObj as ILocalObject).GetObjectID); if Vibrator.hasVibrator() then Vibrator.vibrate(200); end; Как по Вашему, в чем может быть причина?
  20. Что это (alert, message, notify, etc.)? И как этим можно воспользоваться на Android?
  21. Хочу в программе создать условие, чтобы в зависимости от разрешения экрана устройства, на котором запустилось приложение, активировалась заранее созданная форма, оптимизированная под это разрешение. Но приложение выдаёт (если вывести в label ширину и высоту экрана, например, с помощью screen.width/height) разрешение с учётом верхнего и нижнего статус-бара (например, 1024х720 вместо 1024х768). Можно каким-либо образом получить полное разрешение? Как вариант, конечно, можно вычитать кол-во px занимающих панели по гайдлайнам dpi. Нашёл только данные от sdk v11 — 19px for LDPI 25px for MDPI 38px for HDPI 50px for XHDPI.
  22. Ссылка: http://delphifmandroid.blogspot.ru/2016/07/admob.html Автор: Андрей Ефимов Описание: Подробная инструкция по добавлению рекламного блока в приложение, разработанное в RAD Studio.
  23. Как избежать повторных нажатий/ закликиваний на кнопку? Имеется следующий код: procedure Tfm.ButtonPrevCardClick(Sender: TObject); begin ButtonPrevCard.Enabled := false; Application.ProcessMessages; // здесь код по смене карты + пауза в 2 секунды ButtonPrevCard.Enabled := true; Application.ProcessMessages; end; Под Windows повторных нажатий/закликиваний при этом не происходит. А под Андроид, если пользователь быстро подряд нажал несколько раз, то сработает также несколько раз.
  24. Почему-то код, исправно работающий для WIN, не работает на ANDROID. procedure AssignEventToComponent(C: TComponent; MethodName: String; const Evt: TNotifyEvent; OnlyIfNil: boolean = true); var M: TMethod; begin M := GetMethodProp(C,MethodName); if not OnlyIfNil or (M.Code = nil) then begin TNotifyEvent(M) := Evt; SetMethodProp(C,MethodName,M); end; end; Есть какие-то особенности работы TMethod для ANDROID?
  25. Я использую принудительную ориентацию экрана на Android устройстве. Что это означает? Когда открывается приложение, экран переворачивается в то положение, которое я устанавливаю по умолчанию, или которое было установлено в настройках приложения (состояние читается при запуске приложения). Приведу пример кода, как я его написал. Здесь что-то лишнее, что-то может стоит доработать. Есть две проблемы в примере: 1. Чтобы изменить ориентацию экрана, приходится закрывать (уничтожать) приложение, а потом открывать заново. 2. Когда стоит режим ландшафт, то срабатывает автоматический переворот экрана по сенсору, когда поворачиваешь экран на 180 градусов. А когда стоит режим портрет, автоматически экран не переворачивается. В настройках проекта так: В Object inspector для главной формы так: В модуле проекта вот так: begin Application.Initialize; TAndroidHelper.Activity.getWindow.addFlags (TJWindowManager_LayoutParams.JavaClass.FLAG_KEEP_SCREEN_ON); Application.FormFactor.Orientations := [TFormOrientation.Portrait, TFormOrientation.InvertedPortrait, TFormOrientation.Landscape, TFormOrientation.InvertedLandscape]; Application.CreateForm(TDM, DM); Application.CreateForm(TfmMain, fmMain); VKAutoShowMode := TVKAutoShowMode.Always; Application.Run; end. В модуле главной формы: procedure TfmMain.FormShow(Sender: TObject); begin if DM.setOrientation(TAndroidHelper.Activity) then Invalidate; end; В дата-модуле вот так: function TDM.setOrientation(Activity: JActivity): boolean; var orient: Integer; begin result := False; if DM.GetSettingsBoolean('IsOrientationLandshaft', true) then orient := TJActivityInfo.JavaClass.SCREEN_ORIENTATION_SENSOR_LANDSCAPE else orient := TJActivityInfo.JavaClass.SCREEN_ORIENTATION_SENSOR_PORTRAIT; try if Activity.getRequestedOrientation <> orient then begin Activity.setRequestedOrientation(orient); result := true; end; except result := False; end; end;