diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/datadonation/analytics/modules/clientmetadata/ClientMetadataDonor.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/datadonation/analytics/modules/clientmetadata/ClientMetadataDonor.kt
index a20b1f8ed8c1e28d18361e34119bb0c63c77241e..691d3aa1365005cafe1942d1ca872e0c02339c8b 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/datadonation/analytics/modules/clientmetadata/ClientMetadataDonor.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/datadonation/analytics/modules/clientmetadata/ClientMetadataDonor.kt
@@ -5,14 +5,13 @@ import de.rki.coronawarnapp.datadonation.analytics.modules.DonorModule
 import de.rki.coronawarnapp.environment.BuildConfigWrap
 import de.rki.coronawarnapp.nearby.ENFClient
 import de.rki.coronawarnapp.server.protocols.internal.ppdd.PpaData
-import de.rki.coronawarnapp.util.ApiLevel
+import de.rki.coronawarnapp.util.BuildVersionWrap
 import kotlinx.coroutines.flow.first
 import javax.inject.Inject
 import javax.inject.Singleton
 
 @Singleton
 class ClientMetadataDonor @Inject constructor(
-    private val apiLevel: ApiLevel,
     private val appConfigProvider: AppConfigProvider,
     private val enfClient: ENFClient
 ) : DonorModule {
@@ -24,7 +23,7 @@ class ClientMetadataDonor @Inject constructor(
 
         val clientMetadataBuilder = PpaData.PPAClientMetadataAndroid.newBuilder()
             .setCwaVersion(version.toPPASemanticVersion())
-            .setAndroidApiLevel(apiLevel.currentLevel.toLong())
+            .setAndroidApiLevel(BuildVersionWrap.SDK_INT.toLong())
             .setAppConfigETag(config.identifier)
 
         enfClient.getENFClientVersion()?.let {
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/environment/EnvironmentSetup.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/environment/EnvironmentSetup.kt
index 4c72ad4158a2f32c908c91a610a66bbf612978c9..d44e8e88ef378eaae6e78f7c4e73591be7c08e93 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/environment/EnvironmentSetup.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/environment/EnvironmentSetup.kt
@@ -78,6 +78,7 @@ class EnvironmentSetup @Inject constructor(
         }
         set(value) {
             if (CWADebug.buildFlavor == CWADebug.BuildFlavor.DEVICE_FOR_TESTERS) {
+                Timber.i("Changing currentEnvironment to $value")
                 prefs.edit {
                     putString(PKEY_CURRENT_ENVINROMENT, value.rawKey)
                 }
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/presencetracing/common/PresenceTracingNotifications.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/presencetracing/common/PresenceTracingNotifications.kt
index 7fd3c1f255bdec1cec5d065dfe584bae79f4521f..02168291fba66cac033257b02fd37433e3107210 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/presencetracing/common/PresenceTracingNotifications.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/presencetracing/common/PresenceTracingNotifications.kt
@@ -12,8 +12,9 @@ import androidx.navigation.NavDeepLinkBuilder
 import dagger.Reusable
 import de.rki.coronawarnapp.R
 import de.rki.coronawarnapp.ui.main.MainActivity
-import de.rki.coronawarnapp.util.ApiLevel
+import de.rki.coronawarnapp.util.BuildVersionWrap
 import de.rki.coronawarnapp.util.di.AppContext
+import de.rki.coronawarnapp.util.hasAPILevel
 import de.rki.coronawarnapp.util.notifications.setContentTextExpandable
 import timber.log.Timber
 import javax.inject.Inject
@@ -26,7 +27,6 @@ import javax.inject.Inject
 @Reusable
 class PresenceTracingNotifications @Inject constructor(
     @AppContext private val context: Context,
-    private val apiLevel: ApiLevel,
     private val notificationManagerCompat: NotificationManagerCompat,
 ) {
 
@@ -77,7 +77,7 @@ class PresenceTracingNotifications @Inject constructor(
     }
 
     fun sendNotification(notificationId: Int, notification: Notification) {
-        if (apiLevel.hasAPILevel(Build.VERSION_CODES.O) && !isNotificationChannelSetup) {
+        if (BuildVersionWrap.hasAPILevel(Build.VERSION_CODES.O) && !isNotificationChannelSetup) {
             isNotificationChannelSetup = true
             setupChannel()
         }
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/storage/DeviceStorage.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/storage/DeviceStorage.kt
index fb09e91080cd101c2a948bba48d92a4f18c2a963..1110aa183101c3727098a6d0dee183590e556165 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/storage/DeviceStorage.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/storage/DeviceStorage.kt
@@ -7,8 +7,9 @@ import android.os.Build
 import android.os.storage.StorageManager
 import android.text.format.Formatter
 import dagger.Reusable
-import de.rki.coronawarnapp.util.ApiLevel
+import de.rki.coronawarnapp.util.BuildVersionWrap
 import de.rki.coronawarnapp.util.di.AppContext
+import de.rki.coronawarnapp.util.hasAPILevel
 import de.rki.coronawarnapp.util.storage.StatsFsProvider
 import kotlinx.coroutines.Dispatchers
 import kotlinx.coroutines.withContext
@@ -21,7 +22,6 @@ import javax.inject.Inject
 @Reusable
 class DeviceStorage @Inject constructor(
     @AppContext private val context: Context,
-    private val apiLevel: ApiLevel,
     private val statsFsProvider: StatsFsProvider
 ) {
 
@@ -91,7 +91,7 @@ class DeviceStorage @Inject constructor(
     ): CheckResult = withContext(Dispatchers.IO) {
         try {
             Timber.tag(TAG).v("checkSpace(path=%s, requiredBytes=%d)", path, requiredBytes)
-            val result: CheckResult = if (apiLevel.hasAPILevel(Build.VERSION_CODES.O)) {
+            val result: CheckResult = if (BuildVersionWrap.hasAPILevel(Build.VERSION_CODES.O)) {
                 try {
                     requestStorageAPI26Plus(path, requiredBytes)
                 } catch (e: Exception) {
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/ApiLevel.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/ApiLevel.kt
deleted file mode 100644
index 0d7a8afd327eabd799769ebb9a7d97734c37e388..0000000000000000000000000000000000000000
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/ApiLevel.kt
+++ /dev/null
@@ -1,14 +0,0 @@
-package de.rki.coronawarnapp.util
-
-import android.os.Build
-import javax.inject.Inject
-import javax.inject.Singleton
-
-@Singleton
-class ApiLevel constructor(val currentLevel: Int = Build.VERSION.SDK_INT) {
-
-    @Inject
-    constructor() : this(Build.VERSION.SDK_INT)
-
-    fun hasAPILevel(level: Int): Boolean = currentLevel >= level
-}
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/BuildVersionWrap.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/BuildVersionWrap.kt
new file mode 100644
index 0000000000000000000000000000000000000000..c3b8ebca2f23f4fea7cf7bfc6b1fdde2425c3812
--- /dev/null
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/BuildVersionWrap.kt
@@ -0,0 +1,11 @@
+package de.rki.coronawarnapp.util
+
+import android.os.Build
+
+// Can't be const because that prevents them from being mocked in tests
+@Suppress("MayBeConstant")
+object BuildVersionWrap {
+    val SDK_INT = Build.VERSION.SDK_INT
+}
+
+fun BuildVersionWrap.hasAPILevel(level: Int): Boolean = SDK_INT >= level
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/device/BackgroundModeStatus.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/device/BackgroundModeStatus.kt
index c62ac5c9000d95cc91568c395271f6c45ca01c10..7476720ad7d2a703a4d12473c80418a3a3116fa2 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/device/BackgroundModeStatus.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/device/BackgroundModeStatus.kt
@@ -3,9 +3,10 @@ package de.rki.coronawarnapp.util.device
 import android.annotation.TargetApi
 import android.app.ActivityManager
 import android.os.Build
-import de.rki.coronawarnapp.util.ApiLevel
+import de.rki.coronawarnapp.util.BuildVersionWrap
 import de.rki.coronawarnapp.util.coroutine.AppScope
 import de.rki.coronawarnapp.util.flow.shareLatest
+import de.rki.coronawarnapp.util.hasAPILevel
 import kotlinx.coroutines.CancellationException
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.delay
@@ -24,7 +25,6 @@ class BackgroundModeStatus @Inject constructor(
     foregroundState: ForegroundState,
     private val powerManagement: PowerManagement,
     private val activityManager: ActivityManager,
-    private val apiLevel: ApiLevel,
     @AppScope private val appScope: CoroutineScope
 ) {
 
@@ -53,7 +53,7 @@ class BackgroundModeStatus @Inject constructor(
      * Else always return false
      */
     @TargetApi(Build.VERSION_CODES.P)
-    private fun pollIsBackgroundRestricted(): Boolean = if (apiLevel.hasAPILevel(Build.VERSION_CODES.P)) {
+    private fun pollIsBackgroundRestricted(): Boolean = if (BuildVersionWrap.hasAPILevel(Build.VERSION_CODES.P)) {
         activityManager.isBackgroundRestricted
     } else false
 
diff --git a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/network/NetworkStateProvider.kt b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/network/NetworkStateProvider.kt
index 347550766db74f6bae81fe41801c911accedeb57..7f06ba7a369d8cbc9150673110c5004f552c504b 100644
--- a/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/network/NetworkStateProvider.kt
+++ b/Corona-Warn-App/src/main/java/de/rki/coronawarnapp/util/network/NetworkStateProvider.kt
@@ -7,10 +7,13 @@ import android.net.Network
 import android.net.NetworkCapabilities
 import android.net.NetworkCapabilities.NET_CAPABILITY_INTERNET
 import android.net.NetworkCapabilities.NET_CAPABILITY_NOT_METERED
+import android.os.Build
 import de.rki.coronawarnapp.storage.TestSettings
+import de.rki.coronawarnapp.util.BuildVersionWrap
 import de.rki.coronawarnapp.util.coroutine.AppScope
 import de.rki.coronawarnapp.util.di.AppContext
 import de.rki.coronawarnapp.util.flow.shareLatest
+import de.rki.coronawarnapp.util.hasAPILevel
 import kotlinx.coroutines.CoroutineScope
 import kotlinx.coroutines.channels.awaitClose
 import kotlinx.coroutines.flow.Flow
@@ -117,7 +120,14 @@ class NetworkStateProvider @Inject constructor(
         private val isFakeMeteredConnection: Boolean = false
     ) {
         val isMeteredConnection: Boolean
-            get() = isFakeMeteredConnection || !(capabilities?.hasCapability(NET_CAPABILITY_NOT_METERED) ?: false)
+            get() {
+                val unMetered = if (BuildVersionWrap.hasAPILevel(Build.VERSION_CODES.N)) {
+                    capabilities?.hasCapability(NET_CAPABILITY_NOT_METERED) ?: false
+                } else {
+                    capabilities?.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) ?: false
+                }
+                return isFakeMeteredConnection || !unMetered
+            }
     }
 
     companion object {
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/modules/clientmetadata/ClientMetadataDonorTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/modules/clientmetadata/ClientMetadataDonorTest.kt
index d138fd418f6b82c28667e3cde3b2ba9a09871817..22cfd54bed095a93c03bb004ebe335115f2b6848 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/modules/clientmetadata/ClientMetadataDonorTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/datadonation/analytics/modules/clientmetadata/ClientMetadataDonorTest.kt
@@ -6,7 +6,7 @@ import de.rki.coronawarnapp.datadonation.analytics.modules.DonorModule
 import de.rki.coronawarnapp.environment.BuildConfigWrap
 import de.rki.coronawarnapp.nearby.ENFClient
 import de.rki.coronawarnapp.server.protocols.internal.ppdd.PpaData
-import de.rki.coronawarnapp.util.ApiLevel
+import de.rki.coronawarnapp.util.BuildVersionWrap
 import io.kotest.matchers.shouldBe
 import io.mockk.MockKAnnotations
 import io.mockk.coEvery
@@ -21,7 +21,6 @@ import testhelpers.BaseTest
 import testhelpers.coroutines.runBlockingTest2
 
 class ClientMetadataDonorTest : BaseTest() {
-    @MockK lateinit var apiLevel: ApiLevel
     @MockK lateinit var appConfigProvider: AppConfigProvider
     @MockK lateinit var configData: ConfigData
     @MockK lateinit var enfClient: ENFClient
@@ -43,14 +42,14 @@ class ClientMetadataDonorTest : BaseTest() {
         every { BuildConfigWrap.VERSION_MINOR } returns versionMinor
         every { BuildConfigWrap.VERSION_PATCH } returns versionPatch
 
-        every { apiLevel.currentLevel } returns androidVersionCode.toInt()
+        mockkObject(BuildVersionWrap)
+        every { BuildVersionWrap.SDK_INT } returns androidVersionCode.toInt()
         every { configData.identifier } returns eTag
         coEvery { appConfigProvider.currentConfig } returns flowOf(configData)
         coEvery { enfClient.getENFClientVersion() } returns enfVersion
     }
 
     private fun createInstance() = ClientMetadataDonor(
-        apiLevel = apiLevel,
         appConfigProvider = appConfigProvider,
         enfClient = enfClient
     )
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/presencetracing/common/TraceLocationNotificationsTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/presencetracing/common/TraceLocationNotificationsTest.kt
index f87f49945884faad710d647b00742aa3b4dfcd6c..d74619fb9cfc86297f076d9edd8d19e59556c038 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/presencetracing/common/TraceLocationNotificationsTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/presencetracing/common/TraceLocationNotificationsTest.kt
@@ -2,13 +2,14 @@ package de.rki.coronawarnapp.presencetracing.common
 
 import android.content.Context
 import androidx.core.app.NotificationManagerCompat
-import de.rki.coronawarnapp.util.ApiLevel
+import de.rki.coronawarnapp.util.BuildVersionWrap
 import io.mockk.MockKAnnotations
 import io.mockk.Runs
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.just
 import io.mockk.mockk
+import io.mockk.mockkObject
 import io.mockk.verify
 import org.junit.jupiter.api.BeforeEach
 import org.junit.jupiter.api.Test
@@ -17,7 +18,6 @@ import testhelpers.BaseTest
 class TraceLocationNotificationsTest : BaseTest() {
 
     @MockK lateinit var context: Context
-    @MockK lateinit var apiLevel: ApiLevel
     @MockK lateinit var notificationManager: NotificationManagerCompat
 
     @BeforeEach
@@ -29,7 +29,8 @@ class TraceLocationNotificationsTest : BaseTest() {
             every { getString(any()) } returns ""
         }
 
-        every { apiLevel.hasAPILevel(any()) } returns true
+        mockkObject(BuildVersionWrap)
+        every { BuildVersionWrap.SDK_INT } returns 42
 
         notificationManager.apply {
             every { createNotificationChannel(any()) } just Runs
@@ -39,7 +40,6 @@ class TraceLocationNotificationsTest : BaseTest() {
 
     fun createInstance() = PresenceTracingNotifications(
         context = context,
-        apiLevel = apiLevel,
         notificationManagerCompat = notificationManager
     )
 
@@ -55,14 +55,12 @@ class TraceLocationNotificationsTest : BaseTest() {
     }
 
     @Test
-    fun `sending does not setup a notification channel on API levels`() {
-        every { apiLevel.hasAPILevel(any()) } returns true
+    fun `sending does not setup a notification channel on sub API26`() {
+        every { BuildVersionWrap.SDK_INT } returns 21
         val instance = createInstance()
         instance.sendNotification(1, mockk())
 
-        verify {
-            notificationManager.createNotificationChannel(any())
-            notificationManager.notify(1, any())
-        }
+        verify(exactly = 0) { notificationManager.createNotificationChannel(any()) }
+        verify { notificationManager.notify(1, any()) }
     }
 }
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/storage/DeviceStorageTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/storage/DeviceStorageTest.kt
index b1735e823828caa3b082f5b8337ae232f55faa17..8f8a02058820fbebd2a859484fd8b42e0231200d 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/storage/DeviceStorageTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/storage/DeviceStorageTest.kt
@@ -5,7 +5,7 @@ import android.content.Context
 import android.os.Build
 import android.os.StatFs
 import android.os.storage.StorageManager
-import de.rki.coronawarnapp.util.ApiLevel
+import de.rki.coronawarnapp.util.BuildVersionWrap
 import de.rki.coronawarnapp.util.storage.StatsFsProvider
 import io.kotest.assertions.throwables.shouldThrow
 import io.kotest.matchers.shouldBe
@@ -13,6 +13,7 @@ import io.mockk.MockKAnnotations
 import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.mockk
+import io.mockk.mockkObject
 import io.mockk.verify
 import kotlinx.coroutines.runBlocking
 import org.junit.jupiter.api.AfterEach
@@ -28,8 +29,8 @@ class DeviceStorageTest : BaseIOTest() {
     @MockK
     lateinit var context: Context
 
-    private val defaultApiLevel = ApiLevel(Build.VERSION_CODES.O)
-    private val legacyApiLevel = ApiLevel(Build.VERSION_CODES.M)
+    private val defaultApiLevel = Build.VERSION_CODES.O
+    private val legacyApiLevel = Build.VERSION_CODES.M
 
     @MockK
     lateinit var storageManager: StorageManager
@@ -51,6 +52,9 @@ class DeviceStorageTest : BaseIOTest() {
     fun setup() {
         MockKAnnotations.init(this)
 
+        mockkObject(BuildVersionWrap)
+        every { BuildVersionWrap.SDK_INT } returns defaultApiLevel
+
         every { context.filesDir } returns privateDataDir
         every { context.getSystemService(Context.STORAGE_SERVICE) } returns storageManager
         every { context.getSystemService(Context.STORAGE_STATS_SERVICE) } returns storageStatsManager
@@ -73,9 +77,8 @@ class DeviceStorageTest : BaseIOTest() {
         privateDataDir.deleteRecursively()
     }
 
-    private fun buildInstance(level: ApiLevel = defaultApiLevel): DeviceStorage = DeviceStorage(
+    private fun buildInstance(): DeviceStorage = DeviceStorage(
         context = context,
-        apiLevel = level,
         statsFsProvider = statsFsProvider
     )
 
@@ -98,7 +101,8 @@ class DeviceStorageTest : BaseIOTest() {
 
     @Test
     fun `check private storage space, sub API26`() {
-        val deviceStorage = buildInstance(level = legacyApiLevel)
+        every { BuildVersionWrap.SDK_INT } returns legacyApiLevel
+        val deviceStorage = buildInstance()
         runBlocking {
             deviceStorage.checkSpacePrivateStorage() shouldBe DeviceStorage.CheckResult(
                 path = privateDataDir,
@@ -128,7 +132,8 @@ class DeviceStorageTest : BaseIOTest() {
 
     @Test
     fun `request space from private storage successfully, sub API26`() {
-        val deviceStorage = buildInstance(level = legacyApiLevel)
+        every { BuildVersionWrap.SDK_INT } returns legacyApiLevel
+        val deviceStorage = buildInstance()
         runBlocking {
             deviceStorage.checkSpacePrivateStorage(requiredBytes = defaultFreeSpace) shouldBe DeviceStorage.CheckResult(
                 path = privateDataDir,
@@ -176,7 +181,9 @@ class DeviceStorageTest : BaseIOTest() {
 
     @Test
     fun `request space from private storage unsuccessfully, sub API26`() {
-        val deviceStorage = buildInstance(level = legacyApiLevel)
+        every { BuildVersionWrap.SDK_INT } returns legacyApiLevel
+
+        val deviceStorage = buildInstance()
         runBlocking {
             deviceStorage.checkSpacePrivateStorage(requiredBytes = Long.MAX_VALUE) shouldBe DeviceStorage.CheckResult(
                 path = privateDataDir,
@@ -207,9 +214,10 @@ class DeviceStorageTest : BaseIOTest() {
 
     @Test
     fun `check private storage space, sub API26, error case has no fallback`() {
+        every { BuildVersionWrap.SDK_INT } returns legacyApiLevel
         every { statsFsProvider.createStats(privateDataDir) } throws IOException("uh oh")
 
-        val deviceStorage = buildInstance(level = legacyApiLevel)
+        val deviceStorage = buildInstance()
         runBlocking {
             shouldThrow<IOException> { deviceStorage.checkSpacePrivateStorage() }
         }
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/BackgroundModeStatusTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/BackgroundModeStatusTest.kt
index a0d64f4a7483c71ac648fafef76ef664e7fd2eb6..359c7cda55b7b1a767429bce6cd0efed9b04d7ff 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/BackgroundModeStatusTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/BackgroundModeStatusTest.kt
@@ -27,7 +27,6 @@ class BackgroundModeStatusTest : BaseTest() {
     @MockK lateinit var activityManager: ActivityManager
     @MockK lateinit var foregroundState: ForegroundState
     @MockK lateinit var powerManagement: PowerManagement
-    @MockK lateinit var apiLevel: ApiLevel
 
     @BeforeEach
     fun setup() {
@@ -35,7 +34,8 @@ class BackgroundModeStatusTest : BaseTest() {
 
         mockkObject(BuildConfigWrap)
 
-        every { apiLevel.hasAPILevel(any()) } returns true
+        mockkObject(BuildVersionWrap)
+        every { BuildVersionWrap.SDK_INT } returns 42
 
         every { foregroundState.isInForeground } returns flowOf(true)
     }
@@ -44,8 +44,7 @@ class BackgroundModeStatusTest : BaseTest() {
         activityManager = activityManager,
         appScope = scope,
         foregroundState = foregroundState,
-        powerManagement = powerManagement,
-        apiLevel = apiLevel
+        powerManagement = powerManagement
     )
 
     @Test
@@ -153,7 +152,7 @@ class BackgroundModeStatusTest : BaseTest() {
 
         createInstance(scope = this).isBackgroundRestricted.first() shouldBe true
 
-        every { apiLevel.hasAPILevel(any()) } returns false
+        every { BuildVersionWrap.SDK_INT } returns 16
 
         createInstance(scope = this).isBackgroundRestricted.first() shouldBe false
     }
diff --git a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/network/NetworkStateProviderTest.kt b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/network/NetworkStateProviderTest.kt
index 1da581b212d1f112f481e722d4fb442a0caa30bb..6c48eeb1e36f26ec1d433f14793a454ad5382cae 100644
--- a/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/network/NetworkStateProviderTest.kt
+++ b/Corona-Warn-App/src/test/java/de/rki/coronawarnapp/util/network/NetworkStateProviderTest.kt
@@ -7,6 +7,7 @@ import android.net.Network
 import android.net.NetworkCapabilities
 import android.net.NetworkRequest
 import de.rki.coronawarnapp.storage.TestSettings
+import de.rki.coronawarnapp.util.BuildVersionWrap
 import io.kotest.assertions.throwables.shouldNotThrowAny
 import io.kotest.matchers.shouldBe
 import io.mockk.Called
@@ -16,6 +17,7 @@ import io.mockk.every
 import io.mockk.impl.annotations.MockK
 import io.mockk.just
 import io.mockk.mockk
+import io.mockk.mockkObject
 import io.mockk.verify
 import io.mockk.verifySequence
 import kotlinx.coroutines.CoroutineScope
@@ -48,6 +50,9 @@ class NetworkStateProviderTest : BaseTest() {
     fun setup() {
         MockKAnnotations.init(this)
 
+        mockkObject(BuildVersionWrap)
+        every { BuildVersionWrap.SDK_INT } returns 24
+
         every {
             conMan.registerNetworkCallback(
                 any<NetworkRequest>(),
@@ -205,4 +210,31 @@ class NetworkStateProviderTest : BaseTest() {
             linkProperties = null
         ).isMeteredConnection shouldBe true
     }
+
+    @Test
+    fun `Android 6 not metered on wifi`() = runBlockingTest2(ignoreActive = true) {
+        every { BuildVersionWrap.SDK_INT } returns 23
+
+        every { capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) } returns true
+
+        NetworkStateProvider.State(
+            activeNetwork = null,
+            capabilities = capabilities,
+            linkProperties = null
+        ).isMeteredConnection shouldBe false
+
+        every { capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) } returns false
+
+        NetworkStateProvider.State(
+            activeNetwork = null,
+            capabilities = capabilities,
+            linkProperties = null
+        ).isMeteredConnection shouldBe true
+
+        NetworkStateProvider.State(
+            activeNetwork = null,
+            capabilities = null,
+            linkProperties = null
+        ).isMeteredConnection shouldBe true
+    }
 }