r@di0
-
Постов
12 -
Зарегистрирован
-
Посещение
-
Победитель дней
4
Сообщения, опубликованные r@di0
-
-
Вы вообще пробовали приведенный код? Он не имеет отношения к WakeLock, а как раз добавляет приложение в WhiteList.
Если Вы хотите сделать "неубиваемое" приложение, то Вам не получится обойтись каким-то легким решением. Особенно если приложению необходимо использовать сеть. Почитайте про doze mode.
Можете ещё посмотреть эту статью: http://delphiworlds.com/2018/01/monitoring-location-updates-on-android/
Там предпринята попытка сделать подобное "неубиваемое" приложение. -
4 часа назад, x11 сказал:
В общем.... r@di0, это не совсем то или даже совсем не то, что нужно.
Пожалуйста, поясните почему не то, и что всё же Вам действительно нужно. Надеюсь ответ займет менее 10 дней )
-
Такое поведение на Андроиде с 5 версии.
function GetPowerManager: JPowerManager; var PowerServiceNative: JObject; begin PowerServiceNative := TAndroidHelper.Context.getSystemService (TJContext.JavaClass.POWER_SERVICE); if not Assigned(PowerServiceNative) then raise Exception.Create('Could not locate Power Service'); Result := TJPowerManager.Wrap((PowerServiceNative as ILocalObject) .GetObjectID); if not Assigned(Result) then raise Exception.Create('Could not access Power Manager'); end; //Intent: JIntent; if TJBuild_VERSION.JavaClass.SDK_INT >= 23 then begin pw := GetPowerManager; if Assigned(pw) then if not pw.isIgnoringBatteryOptimizations (StringToJString('ВАШ ПАКЕТ')) then begin Intent := TJIntent.Create; try Intent.setAction (TJSettings.JavaClass. ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS); Intent.setData(TJnet_Uri.JavaClass.parse (StringToJString('package:ВАШ ПАКЕТ'))); TAndroidHelper.Context.startActivity(Intent); except on e: Exception do fgToast(e.Message, 3); end; end; end;
-
5 часов назад, ENERGY сказал:
А подскажите пожалуйста откуда вы брали so файл? Может там и документация есть. Я думал что bass есть только под Win.
http://www.un4seen.com/forum/?topic=13225.0
Документация:
http://www.un4seen.com/doc/ -
-
-
Дополнение: иногда нужно, чтобы уведомления не накапливались, а отображалось только последнее. Поправил класс NotificationPublisher (см. аттач), чтобы при наличии в данных параметра "unique": false обновлялось последнее сообщение, а не добавлялись новые.
-
В версии Берлин есть свои особенности.
1. Берём берлиновские java-исходники: C:\Program Files (x86)\Embarcadero\Studio\18.0\source\rtl\androiddex\java\fmx\src\
Далее в файле NotificationPublisher.java в buildNotification правим код, чтобы использовался переданный параметр Sound (если передан):if (msgSound == "") { //если не передан, используем стандартный звук уведомлений mBuilder.setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)); } else { mBuilder.setSound(Uri.parse("android.resource://" + this.mContext.getPackageName() + "/raw/" + msgSound)); }
Подключаете класс import android.net.Uri;
Прокидываете параметр String msgSound выше до publishGCM, а в publishGCM нужно получить из бандла параметр Sound по аналогии с другими параметрами (см. приложенный файл NotificationPublisher.java).
Можете так же прописать mBuilder.setStyle(new NotificationCompat.BigTextStyle().bigText(msgText)); для MultiLine сообщений и сразу сделать обработку параметра icon для использования в пушах иконок отличных от иконки приложения.
2. После того как Вы воссоздали структуру нужного пакета (в java иерархия классов определяется вложенностью папок) в нужном каталоге и внесли необходимые изменения в исходники, необходимо откомпилировать измененные классы, добавить их в исходный пакет (fmx.jar) и сформировать файл classes.dex (cм. приложенный файл install.bat):@echo off setlocal if x%ANDROID_SDK% == x set ANDROID_SDK="C:\Users\Public\Documents\Embarcadero\Studio\18.0\PlatformSDKs\android-sdk-windows" if x%JAVA% == x set JAVA="C:\Program Files\Java\jdk1.8.0_60\bin" set ANDROID_PLATFORM=%ANDROID_SDK%\platforms\android-22 set DX_LIB=%ANDROID_SDK%\build-tools\27.0.3\lib set EMBO_DEX="C:\Program Files (x86)\Embarcadero\Studio\18.0\lib\android\release\classes.dex" set FMX_JAR="C:\Program Files (x86)\Embarcadero\Studio\18.0\lib\android\release\fmx.jar" set PROJ_DIR="C:\fmx" echo COMPILLING NotificationPublisher.java %JAVA%\javac -d "%PROJ_DIR%" "%PROJ_DIR%\com\embarcadero\rtl\notifications\NotificationPublisher.java" -cp "%ANDROID_PLATFORM%\android.jar";"C:\Program Files (x86)\Embarcadero\Studio\18.0\lib\android\debug\android-support-v4.jar" pause echo COPY ORIGINAL fmx.jar copy %FMX_JAR% %PROJ_DIR%\fmx.jar" echo UPDATE FILE NotificationPublisher.class %JAVA%\jar uf "fmx.jar" com\embarcadero\rtl\notifications\NotificationPublisher.class echo CONVERTING FROM jar TO dex call %DX_LIB%\dx.jar --dex --verbose --output=%PROJ_DIR%\output\dex\test_classes.dex --positions=lines %PROJ_DIR%\fmx.jar echo MERGING dex FILES mkdir output\dex 2> nul java -cp %DX_LIB%\dx.jar com.android.dx.merge.DexMerger %PROJ_DIR%\output\dex\classes.dex %PROJ_DIR%\output\dex\test_classes.dex %EMBO_DEX% del output\dex\test_classes.dex echo Now we have the end result, which is output\dex\classes.dex pause :Exit endlocal
Поправьте PROJ_DIR на свой каталог, в котором всё лежит (у меня в C:\fmx), а так же проверьте правильность остальных путей.
3. После того как Вы получили новый пакет fmx.jar, а так же файл classes.dex, оба файла необходимо скопировать в каталог со своим Delphi-проектом.
4. Добавьте новый файл classes.dex в Deployment и отключите старый файл classes.dex;
5. У нового файла classes.dex пропишите Remote Path как у старого файла (classes\);
6. Добавьте звуковой(ые) файл(ы) для уведомлений в Deployment и пропишите Remote Path: res\raw\
На этом подготовка IDE завершена. Что-либо отключать в IDE в разделе Libraries (напр. fmx.dex.jar) не требуется. Добавлять так же ничего не требуется.
Если Вы ранее подключали свой fmx.dex.jar, то удалите его и включите стандартный.
7. При отправке Push с сервера параметр Sound передавать не в Notification!, а в Data:
$fields['data'] = array('body' => $text, 'title' => $title, 'sound' => 'neworder');
Имя звукового файла указывается без расширения. -
В 19.05.2016 в 21:02, Rusland сказал:
Подправил uChatBox.pas под себя, заменил TLabel на TText, теперь проблем с отрисовкой бордюра не наблюдаю. Добавил выделение заголовка и градиент в "облачка".
Всем привет! Под Андроид у некоторых сообщений внизу создаётся лишнее пустое пространство.
В примере это видно (выделил красным). Rad Studio 10.2 Tokyo.
Никто это не правил?
-
Удалось найти java2op.
Утилиту и полученный бридж-файл прикрепляю.Здесь можно почитать как подключить и использовать свой JAVA-класс
30007_java2op.exe_for_rad_studio_delphi_and_c_builder_xe7.ZIP
-
Сообществу, привет!
Проблема следующая:необходимо использовать Speechkit Mobile SDK в RAD Studio XE 6.
Это sdk идет в виде Android library project.Для использования сторонних java-библиотек в RAD Studio формируются некие "файлы-переходники" (Native Bridge File for a Java Library): ссылка1, ссылка2Для автоматического создания таких файлов имеются две утилиты:1. для создания бриджа для версий XE5 и XE6 можно использовать утилиту Java2Pas, но для неё не удается найти ключ;2. для версии XE7 используется утилита Java2OP, но её нигде не удается скачать.
Есть ли у кого-нибудь ключ для Java2Pas или утилита Java2OP - пожалуйста, выложите в теме.
Так же просьба, откликнуться тем кто владеет какой-нибудь информацией, которая может помочь в решении данного вопроса.
Изменение стандартного звука а push-уведомлении
в Push сообщения
Опубликовано
Так не работает?
setSound(Uri.parse("android.resource://" + this.mContext.getPackageName() + "/raw/sound"));
и добавить файл sound в Deployment (Remote Path: res\raw\)