For Android 14, added also FOREGROUND_SERVICE_MICROPHONE permission

This commit is contained in:
Juha Heinanen
2023-10-20 10:43:59 +03:00
parent 1a23759689
commit e6130d626b
2 changed files with 16 additions and 4 deletions

View File

@ -7,6 +7,7 @@
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" /> <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_PHONE_CALL" /> <uses-permission android:name="android.permission.FOREGROUND_SERVICE_PHONE_CALL" />
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_MICROPHONE" />
<uses-permission android:name="android.permission.MANAGE_OWN_CALLS" /> <uses-permission android:name="android.permission.MANAGE_OWN_CALLS" />
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.RECORD_AUDIO" />

View File

@ -11,6 +11,7 @@ import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.IntentFilter import android.content.IntentFilter
import android.content.pm.PackageManager import android.content.pm.PackageManager
import android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_MICROPHONE
import android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_PHONE_CALL import android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_PHONE_CALL
import android.database.ContentObserver import android.database.ContentObserver
import android.media.* import android.media.*
@ -1161,10 +1162,20 @@ class BaresipService: Service() {
.setCustomContentView(notificationLayout) .setCustomContentView(notificationLayout)
if (VERSION.SDK_INT >= 31) if (VERSION.SDK_INT >= 31)
snb.foregroundServiceBehavior = Notification.FOREGROUND_SERVICE_DEFAULT snb.foregroundServiceBehavior = Notification.FOREGROUND_SERVICE_DEFAULT
if (VERSION.SDK_INT >= 29) try {
startForeground(STATUS_NOTIFICATION_ID, snb.build(), FOREGROUND_SERVICE_TYPE_PHONE_CALL) if (VERSION.SDK_INT >= 29)
else startForeground(
startForeground(STATUS_NOTIFICATION_ID, snb.build()) STATUS_NOTIFICATION_ID, snb.build(),
if (VERSION.SDK_INT >= 30)
FOREGROUND_SERVICE_TYPE_PHONE_CALL or FOREGROUND_SERVICE_TYPE_MICROPHONE
else
FOREGROUND_SERVICE_TYPE_PHONE_CALL
)
else
startForeground(STATUS_NOTIFICATION_ID, snb.build())
} catch (e: Exception) {
Log.e(TAG, "Failed to start foreground service")
}
} }
private fun updateStatusNotification() { private fun updateStatusNotification() {