Add support for foreground service permission

This commit is contained in:
Mygod
2023-06-08 19:49:48 -04:00
parent 10565bcba7
commit 26fbbc36e5
2 changed files with 11 additions and 3 deletions

View File

@@ -32,6 +32,7 @@
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE"/> <uses-permission android:name="android.permission.FOREGROUND_SERVICE"/>
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_CONNECTED_DEVICE"/>
<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.LOCAL_MAC_ADDRESS" <uses-permission android:name="android.permission.LOCAL_MAC_ADDRESS"
tools:ignore="ProtectedPermissions" /> tools:ignore="ProtectedPermissions" />
@@ -102,11 +103,13 @@
<service <service
android:name=".LocalOnlyHotspotService" android:name=".LocalOnlyHotspotService"
android:directBootAware="true" android:directBootAware="true"
android:foregroundServiceType="location|connectedDevice"/> android:foregroundServiceType="location|connectedDevice"
tools:ignore="ForegroundServicePermission"/>
<service <service
android:name=".RepeaterService" android:name=".RepeaterService"
android:directBootAware="true" android:directBootAware="true"
android:foregroundServiceType="location|connectedDevice"/> android:foregroundServiceType="location|connectedDevice"
tools:ignore="ForegroundServicePermission"/>
<service <service
android:name=".TetheringService" android:name=".TetheringService"
android:directBootAware="true" android:directBootAware="true"

View File

@@ -3,6 +3,8 @@ package be.mygod.vpnhotspot
import android.app.* import android.app.*
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.pm.ServiceInfo
import android.os.Build
import androidx.core.content.getSystemService import androidx.core.content.getSystemService
import be.mygod.vpnhotspot.App.Companion.app import be.mygod.vpnhotspot.App.Companion.app
import java.util.* import java.util.*
@@ -53,7 +55,10 @@ object ServiceNotification {
synchronized(this) { synchronized(this) {
deviceCountsMap[service] = deviceCounts deviceCountsMap[service] = deviceCounts
if (inactive.isEmpty()) inactiveMap.remove(service) else inactiveMap[service] = inactive if (inactive.isEmpty()) inactiveMap.remove(service) else inactiveMap[service] = inactive
service.startForeground(NOTIFICATION_ID, buildNotification(service)) if (Build.VERSION.SDK_INT >= 33) {
service.startForeground(NOTIFICATION_ID, buildNotification(service),
ServiceInfo.FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE)
} else service.startForeground(NOTIFICATION_ID, buildNotification(service))
} }
} }
fun stopForeground(service: Service) = synchronized(this) { fun stopForeground(service: Service) = synchronized(this) {