cordova-plugin-background-mode
cordova-plugin-background-mode copied to clipboard
Android 9 Fix
Background mode is not working for android 9. As it would not launch the Foreground service.
Based on android documentation FOREGROUND_SERVICE permission is required:
Note: Apps that target Android 9 (API level 28) or higher and use foreground services must request the FOREGROUND_SERVICE permission. This is a normal permission, so the system automatically grants it to the requesting app.
If an app that targets API level 28 or higher attempts to create a foreground service without requesting FOREGROUND_SERVICE, the system throws a SecurityException. source
Also the service was not added correctly to the AndroidManifest.xml
Please Merge it!!
A merge would be appreciated!
@okhiroyuki Until this is merged you can add the following snippet to the Android platform section in your config.xml:
<config-file parent="/*" target="AndroidManifest.xml">
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
</config-file>
Full structure like this:
<widget id="com.example.app" version="1.0.0">
[...]
<platform name="android">
<config-file parent="/*" target="AndroidManifest.xml">
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
</config-file>
[...]
</platform>
[...]
</widget>
@RafaelKr Thank you. It's a nice snippet!!
If i implement this Code it is working fine. https://github.com/katzer/cordova-plugin-background-mode/issues/436#issuecomment-479880108
quick note: as per this comment by @martin-dufka, I had to include an entry in my config.xml
for two permissions before I got this to work on my Xiaomi Mi Mix 2 with LineageOS 16.0 (Android 9.0.0):
-
android.permission.FOREGROUND_SERVICE
-
android.permission.WAKE_LOCK
can anyone else confirm this behaviour?
To add more information. I also had to add the WAKE_LOCK permission. I was also getting a "unbound prefix" error when I was trying to do the above work around.
To fix that I followed these instructions: https://github.com/dpa99c/cordova-custom-config/issues/24
The xmlns:android="http://schemas.android.com/apk/res/android" attribute should be added to the root
tag inside the config.xml if you want to use .
+1 to merging this