Foreground Services in Android 14: What’s Changing? | by Konstantin Merenkov
In order to make an app with foreground services Android 14 compatible, there are three things you need to do:
- Set service type in Manifest
- Specify new permissions
- Update
startForeground()
function withforegroundServiceType
parameter
Set service type in Manifest
To declare a foreground service type, add the android:foregroundServiceType
attribute to the <service>
element in your manifest. For example, the following code declares a foreground service of type dataSync
:
<service
android:name=".YourForegroundService"
android:foregroundServiceType="dataSync" />
All available types can be found here.
If service type is not specified, you will get an exception: MissingForegroundServiceTypeException: Starting FGS without a type
Specify new permissions
You must also specify the appropriate permission for the foreground service type. For example, the following code requests the permission for foreground services of type dataSync
:
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
Does it mean that you don’t need usual
FOREGROUND_SERVICE
permission anymore?Yes, you are right. All you need is to replace the old
FOREGROUND_SERVICE
permission with the new one (or a few, if you have services with different types).
Update startForeground function
Lastly, you also need to specify the service type in startForeground()
function which is located in onStartCommand()
function of the service class.
Specifying the type requires Android Q, so you’ll have to wrap it into a statement in order to use the old startForeground()
for android versions lower than Q. If your minSDK is 29 or higher — just use the one with foreground service type.
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
startForeground(1, notification.build(), ServiceInfo.FOREGROUND_SERVICE_TYPE_LOCATION)
} else {
startForeground(1, notification.build(),)
}
Tags In
Related Posts
Leave a Reply Cancel reply
Categories
- ! Без рубрики (1)
- ++PU (1)
- 1 (1)
- 1w (1)
- 1win Brazil (1)
- 1win India (1)
- 1WIN Official In Russia (1)
- 1win Turkiye (1)
- 1xbet egypt (1)
- 2ankarafayansustasi.net_may (1)
- ankarafayansustasi.netsiteai apr (1)
- Artificial intelligence (1)
- Arts & Entertainment, Photography (1)
- belugasitesi_mAY (1)
- BH_TOPsitesi apr (1)
- BHsitesy_may (2)
- Blog (3)
- Bookkeeping (14)
- Bootcamp de programação (2)
- Bootcamp de programación (2)
- BT_TOPsitesi apr (1)
- casino (5)
- casinom-hub (1)
- casinom-hub.comsitesi apr (3)
- colombian mail order brides (1)
- Cryptocurrency exchange (2)
- Dinamobet_next (1)
- Disease & Illness, Colon Cancer (1)
- Dumanbet (1)
- Dumanbet_next (1)
- Finance, Insurance (1)
- FinTech (5)
- Forex Trading (11)
- Galabet (1)
- Health & Fitness, Fitness Equipment (1)
- Hitbet (1)
- Home & Family, Crafts (1)
- Home & Family, Gardening (1)
- Internet Business, Audio-Video Streaming (1)
- Internet Business, Ecommerce (1)
- Internet Business, Email Marketing (1)
- Internet Business, Internet Marketing (1)
- IT Вакансії (1)
- IT Образование (5)
- IT Освіта (1)
- latin women dating (1)
- mail order bride (1)
- Mars bahis (2)
- Matadorbet (1)
- minimiri.comsitesi apr (3)
- Mobile App Development (771)
- Mostbet Russia (1)
- New Post (1)
- News (1)
- PB_TOPsitesi apr (1)
- PBsitesi_may (1)
- Pusulabet (1)
- redmirepool.bizsitesi apr (2)
- redmirepoolsitesi_may (1)
- Reference & Education, College (1)
- Reference & Education, Sociology (1)
- Rokusitesi apr (1)
- Sober living (6)
- Society, Divorce (1)
- Software development (7)
- Superbetin (1)
- Tempobet_next (1)
- thelongeststride.comsitesi apr (1)
- tipobet-turkiyesitesi apr (1)
- Ultrabet (1)
- Uncategorized (1)
- Игра (2)
- казино (1)
- Криптовалюты (1)
- Новости Криптовалют (1)
- Финтех (7)
- Форекс Брокеры (9)
- Форекс обучение (2)