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

Ingalime

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

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

  • Посещение

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

    5

Ingalime стал победителем дня 5 сентября 2019

Ingalime имел наиболее популярный контент!

1 Подписчик

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

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

  1. Спасибо. Буду пробовать. У меня приложение не падает, а просто висит на заставке. Вижу заставку и всё.
  2. Попытка использовать logcat не помогла. На висящей заставке приложения - сыпется сообщения и среди них нет --------- beginning of как показано здесь: https://fire-monkey.ru/topic/55-средства-логирования-в-firemonkey/
  3. Ничего не помогает висит в RAD 11 на заставке. И что ему надо, не понятно...
  4. Здравствуйте. Есть приложение созданное в RAD 10.4.2 и успешно работающее. В RAD 11 приложение виснет на заставке. Закомментировала весь код - не помогло. Какие шаги можно дополнительно сделать, чтобы отловить проблему? Спасибо.
  5. Нет, не соображу как этот код для службы модифицировать под обычный музыкальный плеер.
  6. А можно ли, в качестве решения, добавить в проект Androidapi.JNI.Support из RAD 10.4.2. Или так делать нельзя?
  7. После изменения на TJapp_NotificationCompat_Builder ошибка ушла. Источник: https://stackoverflow.com/questions/69811459/how-do-i-use-the-new-interface-function-names-in-delphi-11s-androidapi-jni-supp Однако теперь приложение просто показывает заставку и не запускается. Висит на заставке. Код службы переднего плана теперь такой. Извините за код это солянка собранная в интернете и она без проблем работает в RAD 10.4 на всех версиях андроида, а вот в RAD 11 что упущено мною или не правильно вставила код. Может подскажите... unit Unit1; interface uses System.SysUtils, System.Classes, System.Android.Service, AndroidApi.JNI.GraphicsContentViewText, Androidapi.JNI.Os, Androidapi.JNI.App, Androidapi.JNI.Support, Androidapi.JNI.JavaTypes, Androidapi.Helpers, Androidapi.JNIBridge, Androidapi.Jni, System.Notification; type TDM = class(TAndroidService) function AndroidServiceStartCommand(const Sender: TObject; const Intent: JIntent; Flags, StartId: Integer): Integer; private { Private declarations } public { Public declarations } end; var DM: TDM; implementation {%CLASSGROUP 'FMX.Controls.TControl'} {$R *.dfm} function TDM.AndroidServiceStartCommand(const Sender: TObject; const Intent: JIntent; Flags, StartId: Integer): Integer; var //Android 8.1, 9 ... ServiceChannel: JNotificationChannel; NotificationManager: JNotificationManager; Obj: JObject; NewIntent: JIntent; ////ncb: JNotificationCompat_Builder; {$if COMPILERVERSION > 34} ncb: Japp_NotificationCompat_Builder; {$else} ncb: JNotificationCompat_Builder; {$endif} ntf: JNotification; PendingIntent: JPendingIntent; //Android 7.1 service : JService; serviceObjectId : Pointer; ntf2 : JNotification; intent2 : JIntent; PendingIntent2 : JPendingIntent; begin Result := TJService.JavaClass.START_NOT_STICKY; // can't ref .O on earlier phones, must hardcode if TJBuild_VERSION.JavaClass.SDK_INT > 26 then // JBuild_VERSION_CODES.JavaClass.O begin //Android 8.1 //new ways for SDK > 26 (won't be called when API < 26 anyways) try ServiceChannel := TJNotificationChannel.JavaClass.init( StringtoJString('com.radio.one'), //CHANNEL_ID StrToJCharSequence('Public radio Channel'), TJNotificationManager.JavaClass.IMPORTANCE_DEFAULT ); Obj := TAndroidHelper.Context.getSystemService( TJContext.JavaClass.NOTIFICATION_SERVICE); NotificationManager := TJNotificationManager.Wrap(Obj); NotificationManager.createNotificationChannel(ServiceChannel); NewIntent:= TAndroidHelper.Context.getPackageManager().getLaunchIntentForPackage( TAndroidHelper.Context.getPackageName()); NewIntent.setAction(TJIntent.JavaClass.ACTION_MAIN); NewIntent.addCategory(TJIntent.JavaClass.CATEGORY_LAUNCHER); NewIntent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK); PendingIntent := TJPendingIntent.JavaClass.getActivity( TAndroidHelper.Context, 0, NewIntent, TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK ); (* ncb := TJNotificationCompat_Builder.JavaClass.init( TAndroidHelper.Context, StringToJString('com.radio.one') *) {$if COMPILERVERSION > 34} ncb := TJapp_NotificationCompat_Builder.JavaClass.init( TAndroidHelper.Context, StringToJString('com.radio.one') ); {$else} ncb := TJNotificationCompat_Builder.JavaClass.init( TAndroidHelper.Context, StringToJString('com.radio.one') ); {$endif} ncb.setContentTitle(StrToJCharSequence('PublicRadio Service')); // ncb.setTicker(StrToJCharSequence('MyCommsService')); // can't remember why this is commented out to be honest ncb.setSmallIcon(JavaService.getApplicationInfo.icon); ncb.setContentIntent(PendingIntent); ncb.setOngoing(True); ntf := ncb.build; JavaService.startForeground(StartId, ntf); except exit; end; end else begin //Android 7.1 try serviceObjectId := (JavaService as ILocalObject).GetObjectID; service := TJService.Wrap(serviceObjectId); /////ntf2 := TJNotification.Create; ////ntf2.icon := service.getApplicationInfo.icon; NewIntent:= TAndroidHelper.Context.getPackageManager().getLaunchIntentForPackage( TAndroidHelper.Context.getPackageName()); NewIntent.setAction(TJIntent.JavaClass.ACTION_MAIN); NewIntent.addCategory(TJIntent.JavaClass.CATEGORY_LAUNCHER); NewIntent.addFlags(TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK); PendingIntent2 := TJPendingIntent.JavaClass.getActivity( TAndroidHelper.Context, 0, NewIntent, TJIntent.JavaClass.FLAG_ACTIVITY_NEW_TASK ); (* ncb := TJNotificationCompat_Builder.JavaClass.init( TAndroidHelper.Context, StringToJString('com.radio.one') *) {$if COMPILERVERSION > 34} ncb := TJapp_NotificationCompat_Builder.JavaClass.init( TAndroidHelper.Context, StringToJString('com.radio.one') ); {$else} ncb := TJNotificationCompat_Builder.JavaClass.init( TAndroidHelper.Context, StringToJString('com.radio.one') ); {$endif} //intent2 := TJIntent.Create; //PendingIntent2 := TJPendingIntent.JavaClass.getActivity(service.getApplicationContext, 0, intent2, 0); ncb.setContentTitle(StrToJCharSequence('PublicRadio')); // ncb.setTicker(StrToJCharSequence('MyCommsService')); ncb.setSmallIcon(JavaService.getApplicationInfo.icon); ncb.setContentIntent(PendingIntent2); ncb.setOngoing(True); ntf2 := ncb.build; ntf2.setLatestEventInfo(service.getApplicationContext, StrToJCharSequence('PublicRadio'), StrToJCharSequence('PublicRadio Service'), PendingIntent2); service.startForeground(StartId, ntf2); except exit; end; end; end; end.
  8. Ingalime

    RAD 11 и Android

    Помогло переустановка студии. Со второго раза все установилось в полном объеме.
  9. Ingalime

    [Android]Undeclared identifier

    Здравствуйте. У меня есть код музыкального плеера со службой переднего плана. Сделано в RAD 10.4.2 и все работает. При попытке откомпилировать код в RAD 11 получаю ошибку: [DCC Error] Unit1.pas(50): E2003 Undeclared identifier: 'JNotificationCompat_Builder' function TDM.AndroidServiceStartCommand(const Sender: TObject; const Intent: JIntent; Flags, StartId: Integer): Integer; var //Android 8.1, 9 ServiceChannel: JNotificationChannel; NotificationManager: JNotificationManager; Obj: JObject; NewIntent: JIntent; ncb: JNotificationCompat_Builder;//тут ошибка ntf: JNotification; PendingIntent: JPendingIntent; //************* Подскажите, пожалуйста, как исправить.
  10. Ingalime

    RAD 11 и Android

    Студия ставилась с интернетом. Видно было как андроид скачивается. А где правильное скачать sdk 30 андроид? Спасибо.
  11. Ingalime

    RAD 11 и Android

    Здравствуете. Установила RAD 11. Во время установки указала, чтобы все было установлено для Андроид. Однако SD Manager показывает не верные пути, но и папок таких нет (см. картинку). А вот в RAD 10.4.2 папка CatalogRepository заполнена как надо. Где моя ошибка для RAD11 и как исправить? Спасибо.
  12. Нашла что в Александрии этот вопрос вроде решен. Во что нового есть такое: Support to target Android API 30 (a Google Play Store requirement for 2021)
  13. Ingalime

    Целевой уровень API

    Здравствуйте. Есть приложение опубликованное в маркете (RAD 10.4.2). До недавнего времени можно было добавлять новые версии. Сегодня при попытке добавить новую версию такой отказ: Целевой уровень API для вашего приложения – 29. Чтобы обеспечить необходимую производительность и безопасность, целевой уровень API должен быть не ниже 30. Измените целевой уровень API для приложения так, чтобы он стал не ниже 30 Подскажите, пожалуйста по шагам как повысить этот уровень в уже готовом проекте. Спасибо.
  14. Ingalime

    Версии для разработки

    Здравствуйте. Запуталась в документации. Вроде для разработки на телефоне должна быть IOS не ниже 10, а на Маке начиная с кокой версии надо? Может где в документации есть перечень названий? Спасибо.
  15. На андроид 8.1 все отлично. На андроид 7.1 приложение выпадает в черный экран с продолжением играет музыку и чтобы его закрыть надо идти в настроки стстемы и там его можно закрыть. Видимо получение фокуса зависит от версии андроид.
×
×
  • Создать...