Permission Denial: startForeground requires android.permission.FOREGROUND_SERVICE
This will happen if you have set targetSdkVersion = 28
(Android 9 / Pie) or above and have not declared the usage of the FOREGROUND_SERVICE
permission.
From the migration notes for Android 9:
Apps wanting to use foreground services must now request the FOREGROUND_SERVICE permission first. This is a normal permission, so the system automatically grants it to the requesting app. Starting a foreground service without the permission throws a SecurityException.
The solution is to just add the following in AndroidManifest.xml
:
<manifest ...>
...
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
...
<application ...>
...
</manifest>
Permission Denial: startForeground requires android.permission.FOREGROUND_SERVICE
Apps that target Android 9 (API level 28) or higher and use foreground services must request the FOREGROUND_SERVICE permission
.
So now we need to add Foreground service permission in manifest file
- it Allows a regular application to use
Service.startForeground
SAMPLE
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
FOREGROUND_SERVICE
is a normal permission, so the system automatically grants it to the requesting app.
Check this the migration notes of Android 9 / Pie
- Change
Foreground service permission
- Summary
Apps wanting to use foreground services must now request the FOREGROUND_SERVICE permission first. This is a normal permission, so the system automatically grants it to the requesting app. Starting a foreground service without the permission throws a SecurityException.
Also Read startForeground()
- Apps targeting API
Build.VERSION_CODES.P
or later must request the permissionManifest.permission.FOREGROUND_SERVICE
in order to use this API.
Noting that FOREGROUND_SERVICE
doesn't require runtime permission requirement. only add below to Manifests
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
the above line should be added before <application