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 3d98201499fc4644acf0c4f336094dfe250788ed..347550766db74f6bae81fe41801c911accedeb57 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 @@ -49,7 +49,23 @@ class NetworkStateProvider @Inject constructor( val request = networkRequestBuilderProvider.get() .addCapability(NET_CAPABILITY_INTERNET) .build() - manager.registerNetworkCallback(request, callback) + + try { + /** + * This may throw java.lang.SecurityException on Samsung devices + * java.lang.SecurityException: + * at android.os.Parcel.createExceptionOrNull (Parcel.java:2385) + * at android.net.ConnectivityManager.registerNetworkCallback (ConnectivityManager.java:4564) + */ + manager.registerNetworkCallback(request, callback) + } catch (e: SecurityException) { + Timber.e(e, "registerNetworkCallback() threw an undocumented SecurityException, Just Samsung Thingsâ„¢ï¸") + State( + activeNetwork = null, + capabilities = null, + linkProperties = null, + ).run { send(this) } + } val fakeConnectionSubscriber = launch { testSettings.fakeMeteredConnection.flow.drop(1)