Skip to content

Commit ddaddbc

Browse files
committed
Request POST_NOTIFICATIONS at runtime so foreground service notification shows on Android 13+
1 parent a10bb2b commit ddaddbc

2 files changed

Lines changed: 11 additions & 0 deletions

File tree

work_timer/android/app/src/main/AndroidManifest.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
22
<uses-permission android:name="android.permission.VIBRATE"/>
3+
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
34
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
45
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MEDIA_PLAYBACK"/>
56
<application

work_timer/android/app/src/main/kotlin/com/utsapoddar/sift/MainActivity.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,15 @@
11
package com.utsapoddar.sift
22

3+
import android.Manifest
34
import android.content.BroadcastReceiver
45
import android.content.Context
56
import android.content.Intent
67
import android.content.IntentFilter
8+
import android.content.pm.PackageManager
79
import android.os.Build
810
import android.os.Bundle
11+
import androidx.core.app.ActivityCompat
12+
import androidx.core.content.ContextCompat
913
import io.flutter.embedding.android.FlutterActivity
1014
import io.flutter.embedding.engine.FlutterEngine
1115
import io.flutter.plugin.common.MethodChannel
@@ -34,6 +38,12 @@ class MainActivity : FlutterActivity() {
3438
ch.setMethodCallHandler { call, result ->
3539
when (call.method) {
3640
"startTimerService" -> {
41+
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU &&
42+
ContextCompat.checkSelfPermission(this, Manifest.permission.POST_NOTIFICATIONS)
43+
!= PackageManager.PERMISSION_GRANTED) {
44+
ActivityCompat.requestPermissions(
45+
this, arrayOf(Manifest.permission.POST_NOTIFICATIONS), 1001)
46+
}
3747
val intent = Intent(this, TimerService::class.java)
3848
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
3949
startForegroundService(intent)

0 commit comments

Comments
 (0)