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

OnePeople

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

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

  • Посещение

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

    18

OnePeople стал победителем дня 24 ноября

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

2 Подписчика

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

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

4 073 просмотров профиля
  1. Последний параметр ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK И этот флаг должен совпадать с манифестом
  2. Ну так в 29 public final void startForeground (int id, Notification notification, int foregroundServiceType)
  3. Да нормально сервисы работают, другое дело что инфы именно для rad studio очень мало, вот эта тема для вас Тут в теме есть все действия чтобы сервис работал вечно;)
  4. Да вроде не должно, тут по идее нужно только расширение файла: SHGetFileInfo(PChar(Extension), FILE_ATTRIBUTE_NORMAL, FileInfo, SizeOf(FileInfo), SHGFI_ICON or SHGFI_SMALLICON or SHGFI_SYSICONINDEX or SHGFI_USEFILEATTRIBUTES );
  5. И добавить ncb.setsound
  6. Не знаю как правильно ни когда не задумывался, всегда делал по старинке, тут надо ещё проверить чтобы последний символ не был равен "/". If path[length(path)]='/' then // или if pos('/',path)=length(path) then Copy(path,0, lastDelimiter ('/',copy(path,0,length(path)-1)-1) else Copy(path,0,lastDelimiter('/',path)-1); Или допустим copy(path, 0, lastDelimiter ( tpath.getfilename, path)-1; Или
  7. if TJBuild_VERSION.JavaClass.SDK_INT > 26 then // JBuild_VERSION_CODES.JavaClass.O begin {$ifdef VER330} // 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')); // Текст для служб специальных возможностей // Начиная с выпуска L, этот текст больше не отображается на экране, но он по-прежнему полезен для служб специальных возможностей (где он служит звуковым объявлением о появлении уведомления). // 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; Как то так
  8. Ну так вы смотрите сразу справку гуугл CHANNEL_ID - The id of the channel. Must be unique per package. The value may be truncated if it is too long. Идентификатор канала. Должно быть уникальным для каждого пакета. Значение может быть усечено, если оно слишком длинное. Допустим пусть это будет имя пакета + '_id_1' Смысл в том что приложение может создать несколько уведомлений, и что если вам нужно удалить уведомление вы NotificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE); // The id of the channel. String id = имя пакета + '_id_1'; notificationManager.deleteNotificationChannel(id);
  9. Тут немного занялся радио у себя, не забудьте добавить ещё эти файлы http://www.un4seen.com/stuff/bass_ssl-android.zip иначе ссылки начинающие с https могут не играть)
  10. OnePeople

    1 nov 2020

    Так там вроде о подписочной модели распространения приложений, в частности о новых возможностях!?
  11. OnePeople

    Android Services

    И нужно внимательно читать справку гууууугл
  12. OnePeople

    Android Services

    Попробуйте еще сделать так <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" /> jpn:=TAndroidHelper.Context.getPackageName; ps:=TAndroidHelper.Context.getSystemService(TJContext.JavaClass.POWER_SERVICE); if ps <> nil then begin pm := TJPowerManager.Wrap((ps as ILocalObject).GetObjectID); end; if pm.isIgnoringBatteryOptimizations(jpn)=false then begin Intent := TJIntent.Create; Intent.setAction(TJSettings.JavaClass.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS); intent.setData(TJnet_Uri.JavaClass.parse(StringToJString('package:').concat(jpn))); TAndroidHelper.Context.startActivity(Intent); end;
  13. Можете посмотреть какие файлы там есть: var files: TStringDynArray; files := TDirectory.GetFiles(TPath.GetHomePath); TArray.Sort<string>(files, TComparer<string>.Construct(CompareLowerStr)); for i := 0 to Length( files) - 1 do begin Memo1.lines.add(files); end;
×
×
  • Создать...