diff --git a/client/android/AndroidManifest.xml b/client/android/AndroidManifest.xml index 3276eaa84..c1c40b52a 100644 --- a/client/android/AndroidManifest.xml +++ b/client/android/AndroidManifest.xml @@ -38,6 +38,7 @@ android:theme="@style/NoActionBar" android:fullBackupContent="@xml/backup_content" android:dataExtractionRules="@xml/data_extraction_rules" + android:hasFragileUserData="false" tools:targetApi="s"> = Build.VERSION_CODES.S) { connectivityManager.registerBestMatchingNetworkCallback(networkRequest, networkCallback, handler) } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - try { - connectivityManager.requestNetwork(networkRequest, networkCallback, handler) - } catch (e: SecurityException) { - Log.e(TAG, "Failed to bind network listener: $e") - // Android 11 bug: https://issuetracker.google.com/issues/175055271 - if (e.message?.startsWith("Package android does not belong to") == true) { - delay(1000) + val numberAttempts = 3 + var attemptCount = 0 + while(true) { + try { connectivityManager.requestNetwork(networkRequest, networkCallback, handler) - } else { - throw e + break + } catch (e: SecurityException) { + Log.e(TAG, "Failed to bind network listener: $e") + // Android 11 bug: https://issuetracker.google.com/issues/175055271 + if (e.message?.startsWith("Package android does not belong to") == true) { + if (++attemptCount > numberAttempts) { + throw e + } + delay(1000) + continue + } else { + throw e + } } } } else {