-
Постов
1 204 -
Зарегистрирован
-
Посещение
-
Победитель дней
26
Активность репутации
-
Rusland отреагировална Равиль Зарипов (ZuBy) в Стилизованный компонент на базе нативного
порядок отрисовки компонентов на форме, сейчас нативные лежат всегда сверху
-
Rusland отреагировална Равиль Зарипов (ZuBy) в Стилизованный компонент на базе нативного
ждать следующий релиз, там будет z-order вроде правильный для нативных и стилизованных
-
Rusland получил реакцию от rareMax в Таймер в сервисе
cherezovmax,
uses AndroidApi.Log, // LOGI Androidapi.Timer, ... private { Private declarations } FTimerHandle: integer; FTimerCounter: integer; TimerInterval: integer; procedure StartTimer; procedure WaitComplete(TimerId: Integer); ... procedure TDM.AndroidServiceCreate(Sender: TObject); begin FTimerHandle := AndroidTimerCreate; FTimerCounter := 0; TimerInterval:=5000; end; function TDM.AndroidServiceStartCommand(const Sender: TObject; const Intent: JIntent; Flags, StartId: Integer): Integer; begin StartTimer; LogI('TJService.JavaClass.START_STICKY'); Result := TJService.JavaClass.START_STICKY; end; procedure TDM.StartTimer; begin LogI('... timer to be started'); AndroidTimerSetInterval(FTimerHandle, TimerInterval); AndroidTimerSetHandler(WaitComplete); LogI('+ Timer started'); end; procedure TDM.WaitComplete(TimerId: Integer); begin LogI('WaitComplete procedure') end;
-
Rusland отреагировална Andrey Efimov в [Статья] [Android] Очередь событий Delphi приложения на Android
Ссылка: http://delphifmandroid.blogspot.ru/2016/09/delphi-android.html
Автор: Андрей Ефимов
Описание: Это маленькая заметка о том, какие события происходят, когда мы запускаем приложение на Android. В ней я покажу логи из LogCat (с описанием тестов, которые провёл) и мы выясним, какие же события происходят всегда, а какие нет.
-
Rusland получил реакцию от Pax Beach в Фильтр по типу "облака тегов"
Можно наверное воспользоваться TRoundRect, изменив Fill Color и Stroke Color на #FF4B90BE и положить на него пару TText... будет похоже.
Самое трудное придумать как их объединять в ряды.
-
Rusland отреагировална Brovin Yaroslav в Получить голос из микрофона потоками
А обычный TAudioCaptureDevice не подходит? И почему указан кодек MP4 для записи аудио? -
Rusland отреагировална Pax Beach в Получить голос из микрофона потоками
... или обычный TJMediaRecorder?
Вот готовый пример записи микрофона в файл.
Так не подойдет?
А определение уровней звукозаписи для нормализации (normalization) — это обычно постпроцесс, выполняемый для всего файла записи.
-
Rusland получил реакцию от azm_ezm_ivan в Получить голос из микрофона потоками
Не, тут никто не знает... )
Ну может так еще попробуете:
recorder := TJMediaRecorder.Create;
-
Rusland получил реакцию от Равиль Зарипов (ZuBy) в Получить голос из микрофона потоками
Не, тут никто не знает... )
Ну может так еще попробуете:
recorder := TJMediaRecorder.Create;
-
Rusland получил реакцию от Pax Beach в как из сервиса узнать, что приложение основное сейчас закрыто
брал отсюда
Интересно что в стандартном Androidapi.JNI.App.pas вроде те же функции описаны, но с ним не получается работать.
-
Rusland отреагировална Andrey Efimov в Как изменить версию АПИ для компиляции проекта
1. Можно поставить и самую последнюю версию АПИ (на данный момент последняя версия АПИ 24 Android 7, но использовать рискованно, т.к. Студией официально заявлена поддержка только до версии АПИ 23) Google поддерживает обратную совместимость.
2. Частично, выбор зависит от версии АПИ, пример: в "Build Tools, Revision 23.0.0" появилась официальная поддержка Android 6.0 (API level 23). Т.е. если используете АПИ 23, то Build Tools должны быть версии 23.0.0 или более поздней. Опять же поддерживается обратная совместимость. Подобную информацию можно посмотреть тут SDK Build Tools Release Notes
Те же правила относятся и к SDK Tools. По умолчанию студия ставит версию 24.3.3 (19 АПИ)
3. Версия только устанавливаемая вместе со студией! Буквально вчера удалось это на себе прочувствовать. По умолчанию ставится версия NDK r9c. Не обновляйте самостоятельно на последнюю версию, приложения перестанут запускаться на устройствах!
4. Для внутренней работы студии с НДК? не знаю точного ответа...
5. Изменить можно в файле AndroidManifest.template.xml
6. Всё это техническая информация, которая позволяет гуглу выдавать списки приложений под устройство пользователя. Т.е. если у пользователя АПИ 19 устройство, а ваше приложение работает с версиями не ниже 20 АПИ, то этому пользователю не будут показывать ваше приложение.
Пример приложения написанного с такими настройками:
SDK 23 АПИ NDK r9c в приложении я мониторю версию АПИ, чтобы не пытаться выдать новый функционал из 23 АПИ для версии (например) 19 АПИ. разработка проводилась на устройстве с АПИ 19 Тесты прошли на всех версиях АПИ выше 4.4 Приложение: Wifi Info (Установки: активные/всего - 119/337)
Надеюсь хоть немного смог объяснить, хотя сам ещё не до конца понимаю, что хорошо для студии, что плохо...
p.s. Всё описанное выше, справедливо для RAD Studio Berlin
-
Rusland получил реакцию от sargon в Фильтр по типу "облака тегов"
Можно наверное воспользоваться TRoundRect, изменив Fill Color и Stroke Color на #FF4B90BE и положить на него пару TText... будет похоже.
Самое трудное придумать как их объединять в ряды.
-
Rusland получил реакцию от Равиль Зарипов (ZuBy) в как из сервиса узнать, что приложение основное сейчас закрыто
брал отсюда
Интересно что в стандартном Androidapi.JNI.App.pas вроде те же функции описаны, но с ним не получается работать.
-
Rusland отреагировална Pax Beach в После "сна" программа с сервисом не стартует
При таких параметрах SDK Manager у меня в Берлине не виснет:
SDK
NDK
JAVA
-
Rusland получил реакцию от Равиль Зарипов (ZuBy) в как из сервиса узнать, что приложение основное сейчас закрыто
ZuBy, огромное спасибо, выручил )
-
Rusland отреагировална Равиль Зарипов (ZuBy) в как из сервиса узнать, что приложение основное сейчас закрыто
всего-то нужны было дописать
procedure TForm9.Button2Click(Sender: TObject); // Androidapi.JNI.GraphicsContentViewText, Androidapi.JNI.JavaTypes, // Androidapi.JNIBridge, Androidapi.JNI.App, Androidapi.Helpers, Androidapi.JNI.ActivityManager; var ActivityServiceManager: JObject; FActivityManager: JActivityManager; List: JList; Iterator: JIterator; ri: JActivityManager_RunningServiceInfo; begin ActivityServiceManager := TAndroidHelper.Context.getSystemService(TJContext.JavaClass.ACTIVITY_SERVICE); FActivityManager := TJActivityManager.Wrap((ActivityServiceManager as ILocalObject).GetObjectID); List := FActivityManager.getRunningServices(MAXINT); Iterator := List.Iterator; while Iterator.hasNext do begin ri := TJActivityManager_RunningServiceInfo.Wrap((Iterator.next as ILocalObject).GetObjectID); with ListView1.Items.Add do begin Text := JStringToString(ri.service.getPackageName); Detail := JStringToString(ri.service.getClassName); end; end; end; ri.service.getPackageName - показывает родителя сервиса (т.е. приложение)
-
Rusland получил реакцию от Pax Beach в как из сервиса узнать, что приложение основное сейчас закрыто
Виноват
Это вот апи скачанные с интернета: AndroidApi.zip
В uses
Androidapi.JNI.GraphicsContentViewText, // TJIntent (Receive Intent) Androidapi.JNI.JavaTypes, // JList Androidapi.JNIBridge, // ILocalObject Androidapi.JNI.App, // TJService Androidapi.Helpers, // StringToJString AndroidApi.Log, // LOGI Androidapi.JNI.RunningServiceInfo, // поиск запущенных приложений - https://stackoverflow.com/questions/34262554/how-to-check-if-a-service-is-running-in-delphi-10-seattle Androidapi.JNI.ActivityManager, // поиск запущенных приложений - http://blog.csdn.net/flcop/article/details/17190009uses b:boolean;
-
Rusland получил реакцию от Error в Повтор акции C++Builder® 10.1 Berlin Starter Edition
https://www.embarcadero.com/ru/products/delphi/starter/promotional-download
-
Rusland отреагировална AngryOwl в Получить голос из микрофона потоками
С удовольствием бы, но уж очень все подвязано на рабочий проект, а вырезать фрагменты - не получится быстро.
Если будет достаточно свободного времени - постараюсь оформить как-нибудь.
Смотрите форум un4seen.
-
Rusland отреагировална Равиль Зарипов (ZuBy) в Многоязыковое приложение
вот недавно @AlexG выкладывал решение
-
Rusland отреагировална Andrey Efimov в Многоязыковое приложение
Можно использовать возможности Android API, а можно сделать всё самостоятельно, через какой-нибудь ini файл например
Пример использования АПИ: Автоматическая смена названия приложения в зависимости от языка системы
Пример нужно немного расширить: добавляем переводы меню и всего, что хотим в strings.xml, после этого, при запуске приложения получаем ресурсы из автоматически выбранного strings-**.xml.
Вот так выглядит функция получения ресурса:
class function TLoadR.LoadRString(const value: String): String; var resourceId: integer; begin resourceId := TAndroidHelper.Activity.getResources.getIdentifier (StringToJString(value), StringToJString('string'), TAndroidHelper.Activity.getPackageName); Result := JStringToString(TAndroidHelper.Activity.getResources.getString(resourceId)); end;
Внимание! Не пытайтесь использовать функцию TAndroidHelper.GetResourceID, в ней я обнаружил багу. В след. релизе поправят. Предложенный выше код, полностью рабочий.
-
Rusland отреагировална Равиль Зарипов (ZuBy) в Многоязыковое приложение
1) можно использовать DeviceInfo
2) все зависимости есть в модуле выше
if TPlatformServices.Current.SupportsPlatformService(IFMXLocaleService, IInterface(LocaleService)) then DeviceInfo.diLang := LocaleService.GetCurrentLangID;
-
Rusland отреагировална Error в Повтор акции C++Builder® 10.1 Berlin Starter Edition
Delphi тоже еще раздают вроде...
-
Rusland получил реакцию от Andrey Efimov в как из сервиса узнать, что приложение основное сейчас закрыто
Оставлю здесь ссылочку как полуответ на вопрос
-