Перейти к содержанию

Ingalime

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

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

  • Посещение

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

    5

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

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

Информация о Ingalime

  • Звание
    Продвинутый пользователь

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

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

  1. Так заработало: procedure TForm2.FormShow(Sender: TObject); begin WebBrowser1.EnableCaching := false; WebBrowser1.Navigate('http://91.199.194.34/radionews.html'); end;
  2. Здравствуйте. Не могу разобраться с TWebBrowser на андроиде. TWebBrowser упорно грузит старый вариант страницы. Ввожу ссылку в Хроме - все нормально, вижу новый вариант страницы. Выгружаю программу полностью из памяти. Компилирую. Запускается по новой на устройстве и вижу старый вариант страницы. Пробую создать TWebBrowser динамически, не помогает, показывает старый первый вариант страницы. RAD10.4.1. Clean проекта не помогло. Подскажите, что не так? Спасибо. procedure TForm2.FormShow(Sender: TObject); var WebBrowser: TWebBrowser; begin WebBrowser := TWebBrowser.Create(Self); WebBrowser.Parent := Self; WebBrowser.Align := TAlignLayout.Client; //упорно отображает старый вариант страницы, а в хроме или опере все нормально WebBrowser.Navigate('http://91.199.194.34/radionews.html'); end;
  3. Здравствуйте. Кому нибудь удалось воспроизвести этот стандартный пример?: http://http://docwiki.embarcadero.com/RADStudio/Sydney/en/Firebase_Android_Support У меня FDeviceToken получается пустой. Помогите советом. Спасибо. RAD10.4.1 Phone Readmi 5A Android 8.1
  4. Вам ответили давно: http://fire-monkey.ru/topic/5620-переход-к-x64/?sortby=date&page=3
  5. У кого в 10.4 не пустой токен устройства покажите, пожалуйста, ваш манифест. Может помимо этой строки еще что-то надо: <service android:name="com.embarcadero.gcm.notifications.GCMIntentService" />
  6. Нет. https://blogs.embarcadero.com/rad-studio-roadmap-november-2020/ https://blogs.embarcadero.com/rad-studio-november-2020-roadmap-pm-commentary/
  7. Прошу прощения исправлено. Забыла что для новых версий надо импортировать google-services.json из коносли firebase Ошибка пропала, однако токен устройства пустой. В манифесте из статьи https://fire-monkey.ru/topic/3840-статья-настройка-пуш-уведомлении-через-сервис-firebase-для-android-и-ios-часть-2/ указано <%receivers%> <service android:name="com.embarcadero.gcm.notifications.GCMIntentService" /> В опциях проекта api key указан. true в опциях проекта Entitlement List-> Receve push notifications указано Из консоли firebse взят Sender ID const FAndroidServerKey = '1036128679228'; Но не выходит каменный цветок. Это не помогло пустой токен http://fire-monkey.ru/topic/4839-fpushservicedevicetokenvalue-nil-что-делать/?page=3#comment-32995
  8. Здравствуйте. Создано приложение для получения пушей. Материалы отсюда: https://fire-monkey.ru/topic/3840-статья-настройка-пуш-уведомлении-через-сервис-firebase-для-android-и-ios-часть-2/ Отсюда стало понятно что для 10.4.1 надо сделать изменение: http://docwiki.embarcadero.com/RADStudio/Sydney/en/Firebase_Android_Support TPushServiceManager.Instance.GetServiceByName(TPushService.TServiceNames.FCM); Однако при старте приложения сыпались ошибки: java.lang.RuntimeException: Unable to get provider com.embarcadero.firebase.provider.FirebaseInitProvider: java.lang.IllegalStateException: ApplicationId must be set. at android.app.ActivityThread.installProvider(ActivityThread.java:6398) и т.д. При полностью закоментированном коде ошибка не пропадала. Выяснилось, что ошибка возникает если установить в true в опциях проекта Entitlement List-> Receve push notifications тогда ошибка. Снять галочку ошибки нет. Кому либо удалось сделать приложение с поддержкой пушей в 10.4.1? Для 10.3.1 был какой-то патч: https://blog.marcocantu.com/blog/2019-05-android-firebase-patch-blog.html Но у меня 10.4.1 Спасибо.
  9. У меня это первый проект в RAD 10.4.1
  10. Да. Причина найдена. Скорее всего это ошибка эмбаркадеро. Не дружит этот проект с внутренностями IDE. Если в опциях проекта снять галочку Generate Android App Bundle file (arm + arm64) то нормально компилируется и в режиме Development и в Application Store. При установленной галочке нормально только в режиме Development. Придется публиковать только для Андроид 6+...
  11. Здравствуйте. В проекте используется библиотека BASS для воспроизведения звука. Проект Андроид Дельфи 10.3 / 10.4.1 В режиме Development все работает и компилируеться нормально. Ошибок нет. При переключении в режим Application Store при попытке Build возникает ошибка: [DCC Error] E2597 C:\Users\Public\Documents\Embarcadero\Studio\20.0\PlatformSDKs\android-ndk-r17b\toolchains\arm-linux-androideabi-4.9\prebuilt\windows\bin\arm-linux-androideabi-ld.exe: cannot find -lbass [DCC Fatal Error] F2588 Linker error code: 1 ($00000001) Все пути прописаны. Ничего не менялось. Однако в Development режиме все нормально, а в Application Store ошибка. Что может быть упущено для Application Store? Спасибо.
  12. Код ниже отрабатывает как надо. Проверено в Андроид 7.1 и Андроид 8.1. Других телефонов нет. Может кому пригодиться код для службы переднего плана. Код скомбинирован из этого источника: Foreground Service function TDM.AndroidServiceStartCommand(const Sender: TObject; const Intent: JIntent; Flags, StartId: Integer): Integer; var //Android 8.1 ServiceChannel: JNotificationChannel; NotificationManager: JNotificationManager; Obj: JObject; NewIntent: JIntent; ncb: JNotificationCompat_Builder; 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) 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') ); 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); end else begin //Android 7.1 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') ); //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); end; end; Разрешение Foreground service=true В манифесте: <service android:exported="false" android:name="com.embarcadero.services.serPublic" /> Старт службы: private { Private declarations } FService: TLocalServiceConnection; //***************************************** if FService = Nil Then Begin FService := TLocalServiceConnection.Create; FService.StartService('serPublic'); end; Проверено в Дельфи 10.3 и Дельфи 10.4.1
  13. Это вариант работает для Андроид 8.1. С Андроид 7 падает после слеша. Видимо для Android 7.0 чего-то не хватает... function TDM.AndroidServiceStartCommand(const Sender: TObject; const Intent: JIntent; Flags, StartId: Integer): Integer; var ServiceChannel: JNotificationChannel; NotificationManager: JNotificationManager; Obj: JObject; NewIntent: JIntent; ncb: JNotificationCompat_Builder; ntf: JNotification; PendingIntent: JPendingIntent; begin Result := TJService.JavaClass.START_NOT_STICKY; ServiceChannel := TJNotificationChannel.JavaClass.init( StringtoJString('com.radio.one'), StrToJCharSequence('Public radio Channel'), TJNotificationManager.JavaClass.IMPORTANCE_DEFAULT ); Obj := TAndroidHelper.Context.getSystemService( TJContext.JavaClass.NOTIFICATION_SERVICE); NotificationManager := TJNotificationManager.Wrap(Obj); NotificationManager.createNotificationChannel(ServiceChannel); PendingIntent := TJPendingIntent.JavaClass.getActivity( JavaService.getApplicationContext, 0, Intent, 0 ); ncb := TJNotificationCompat_Builder.JavaClass.init( TAndroidHelper.Context, StringToJString('com.radio.one') ); ncb.setContentTitle(StrToJCharSequence('PublicRadio')); // ncb.setTicker(StrToJCharSequence('Communications Service')); ncb.setSmallIcon(JavaService.getApplicationInfo.icon); ncb.setContentIntent(PendingIntent); ncb.setOngoing(True); ntf := ncb.build; JavaService.startForeground(StartId, ntf); end;
  14. Код найден в Интернете и он работает отлично на моем Андроид 8.1 Зачем у автора эта строка, непонятно... if TJBuild_VERSION.JavaClass.SDK_INT > TJBuild_VERSION_CODES.JavaClass.O Что-то связанно с открытием канала...
  15. Здравствуйте. Есть код службы переднего фона которая прекрасно работает на Андроид 8.1 Послала арк человеку у которого Андроид 7. Приложение падает после сплеш скрина. Я думаю что ошибка в последнем begin end. Телефона с Андроид 7 у меня нет. Не подскажите что там исправить? RAD 10.3 Спасибо. 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; 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 ServiceChannel: JNotificationChannel; NotificationManager: JNotificationManager; Obj: JObject; NewIntent: JIntent; ncb: JNotificationCompat_Builder; ntf: JNotification; PendingIntent: JPendingIntent; begin Result := TJService.JavaClass.START_NOT_STICKY; if TJBuild_VERSION.JavaClass.SDK_INT > TJBuild_VERSION_CODES.JavaClass.O then begin // 28 > 26 ServiceChannel := TJNotificationChannel.JavaClass.init( StringtoJString('com.radio.one'), StrToJCharSequence('Public radio Channel'), TJNotificationManager.JavaClass.IMPORTANCE_DEFAULT ); Obj := TAndroidHelper.Context.getSystemService( TJContext.JavaClass.NOTIFICATION_SERVICE); NotificationManager := TJNotificationManager.Wrap(Obj); NotificationManager.createNotificationChannel(ServiceChannel); PendingIntent := TJPendingIntent.JavaClass.getActivity( JavaService.getApplicationContext, 0, Intent, 0 ); ncb := TJNotificationCompat_Builder.JavaClass.init( TAndroidHelper.Context, StringToJString('com.radio.one') ); ncb.setContentTitle(StrToJCharSequence('PublicRadio')); // ncb.setTicker(StrToJCharSequence('Communications Service')); ncb.setSmallIcon(JavaService.getApplicationInfo.icon); ncb.setContentIntent(PendingIntent); ncb.setOngoing(True); ntf := ncb.build; end else begin // earlier notification code (worked under 10.2.3, targetting API 14) PendingIntent := TJPendingIntent.JavaClass.getActivity( JavaService.getApplicationContext, 0, Intent, 0 ); ntf := TJNotification.Create; ntf.icon := JavaService.getApplicationInfo.icon; ntf.setLatestEventInfo( JavaService.getApplicationContext, StrToJCharSequence('PublicRadio'), StrToJCharSequence('PublicRadioService'), PendingIntent); end; JavaService.startForeground(StartId, ntf); end; end.
×
×
  • Создать...