Служба переднего плана в Android с использованием kivyAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Служба переднего плана в Android с использованием kivy

Сообщение Anonymous »

Я пытаюсь запустить службу переднего плана в Android с помощью kivy.
Я создал службу, следуя различным примерам в Интернете, но все они закрываются Android через несколько минут после перехода в спящий режим (режим сна) или даже когда я перехожу на другое приложение.
Я пробовал несколько примеров и пробовал разные варианты, но никто не выжил через несколько минут.
Среди прочего я пробовал
https://python-for-android.readthedocs. ... /services/
https://github.com/tshirtman/kivy_service_osc
https://github.com/kivy/kivy/wiki/Backg ... id.service
Как обеспечить работу службы kivy в фоновом режиме в Android (служба все еще запускается при переключении на другое приложение или блокировке экрана)?
Похоже, что, поскольку службы Android Oreo, порожденные приложением, будут закрыты, как только приложение будет закрыто. А если вы хотите запустить службу в фоновом режиме, вам необходимо отображать пользователю постоянное уведомление о том, что ваше приложение работает в фоновом режиме. Но я не знаю, как это сделать в kivy.
Я был бы признателен, если бы кто-нибудь мог мне помочь или показать пример, как это сделать.
Заранее спасибо
РЕДАКТИРОВАТЬ: Мое решение на данный момент, на всякий случай, если оно может кому-то помочь.
Наконец-то я смог запустить службу переднего плана (чтобы она не была убита Android, когда телефон переходит в спящий режим или когда вы используете другое приложение) с kivy, но мне пришлось отредактировать один файл структуры buildozer.
Я использовал пример в https://github.com/tshirtman/kivy_service_osc для создания APK, который я выполнил

Код: Выделить всё

buildozer -v android debug deploy run logcat
затем я отредактировал .buildozer/android/platform/build-armeabi-v7a/dists/oscservice__armeabi-v7a/templates/Service.tmpl.java (сценарий службы находится в файле service.y) и изменил

Код: Выделить всё

intent.putExtra("serviceStartAsForeground", "{{ foreground|lower }}");
автор:

Код: Выделить всё

intent.putExtra("serviceStartAsForeground", "true");
а затем я выполнил еще раз

Код: Выделить всё

buildozer -v android debug deploy run logcat
Я не нашел другого способа сообщить kivy, что я хочу выполнить службу переднего плана. Я буду признателен, если кто-нибудь узнает и поделится другим, лучшим способом сделать это.

Подробнее здесь: https://stackoverflow.com/questions/644 ... using-kivy
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»