Skip to content

Commit 4ad1f13

Browse files
authored
prevent connectivity manager crash (#3593)
1 parent 54bc9b1 commit 4ad1f13

File tree

1 file changed

+19
-13
lines changed
  • aws-android-sdk-pinpoint/src/main/java/com/amazonaws/mobileconnectors/pinpoint/internal/event

1 file changed

+19
-13
lines changed

aws-android-sdk-pinpoint/src/main/java/com/amazonaws/mobileconnectors/pinpoint/internal/event/EventRecorder.java

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -691,20 +691,26 @@ void buildEventPayload(AnalyticsEvent internalEvent,
691691
}
692692

693693
private boolean isNetworkAvailable(Context context) {
694-
ConnectivityManager connectivityManager =
695-
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
696-
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
697-
NetworkCapabilities capabilities =
698-
connectivityManager.getNetworkCapabilities(connectivityManager.getActiveNetwork());
699-
if (capabilities != null) {
700-
return capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) ||
701-
capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) ||
702-
capabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET);
694+
// we wrap connectivityManager calls in a try/catch due to Android 11 bug found here:
695+
// https://issuetracker.google.com/issues/175055271?pli=1
696+
try {
697+
ConnectivityManager connectivityManager =
698+
(ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
699+
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
700+
NetworkCapabilities capabilities =
701+
connectivityManager.getNetworkCapabilities(connectivityManager.getActiveNetwork());
702+
if (capabilities != null) {
703+
return capabilities.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) ||
704+
capabilities.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) ||
705+
capabilities.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET);
706+
}
707+
} else {
708+
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
709+
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
703710
}
704-
} else {
705-
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
706-
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
711+
return false;
712+
} catch (Exception e) {
713+
return false;
707714
}
708-
return false;
709715
}
710716
}

0 commit comments

Comments
 (0)