From 83e5fa8083cab32c1ac7f2d0646c4b1a5cc36556 Mon Sep 17 00:00:00 2001 From: afischerdev Date: Thu, 19 Aug 2021 12:29:49 +0200 Subject: [PATCH] change connection test #321 --- .../btools/routingapp/BRouterActivity.java | 29 ++++++++++++++++--- .../btools/routingapp/DownloadService.java | 2 +- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/brouter-routing-app/src/main/java/btools/routingapp/BRouterActivity.java b/brouter-routing-app/src/main/java/btools/routingapp/BRouterActivity.java index b6dd6ca..238e253 100644 --- a/brouter-routing-app/src/main/java/btools/routingapp/BRouterActivity.java +++ b/brouter-routing-app/src/main/java/btools/routingapp/BRouterActivity.java @@ -16,6 +16,10 @@ import android.content.DialogInterface; import android.content.Intent; import android.content.pm.PackageManager; import android.net.ConnectivityManager; +import android.net.Network; +import android.net.NetworkCapabilities; +import android.net.NetworkInfo; +import android.os.Build; import android.os.Bundle; import android.os.Environment; import android.os.PowerManager; @@ -453,11 +457,28 @@ public class BRouterActivity extends Activity implements OnInitListener, Activit private String maptoolDirCandidate; - public boolean isOnline() + public boolean isOnline(Context context) { - ConnectivityManager cm = (ConnectivityManager) getSystemService( Context.CONNECTIVITY_SERVICE ); + boolean result = false; + ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { + Network nw = connectivityManager.getActiveNetwork(); + if (nw == null) return false; + NetworkCapabilities nwc = connectivityManager.getNetworkCapabilities(nw); + if (nwc == null)return false; + result = nwc.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) | + nwc.hasTransport(NetworkCapabilities.TRANSPORT_CELLULAR) | + nwc.hasTransport(NetworkCapabilities.TRANSPORT_ETHERNET) ; - return cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isConnectedOrConnecting(); + } else { + NetworkInfo ni = connectivityManager.getActiveNetworkInfo(); + if (ni == null) return false; + result = ni.getType() == ConnectivityManager.TYPE_WIFI || + ni.getType() == ConnectivityManager.TYPE_MOBILE || + ni.getType() == ConnectivityManager.TYPE_ETHERNET; + } + + return result; } @SuppressWarnings("deprecation") @@ -466,7 +487,7 @@ public class BRouterActivity extends Activity implements OnInitListener, Activit availableProfiles = items; // if we have internet access, first show the main action dialog - if ( isOnline() ) + if ( isOnline(this) ) { showDialog( DIALOG_MAINACTION_ID ); } diff --git a/brouter-routing-app/src/main/java/btools/routingapp/DownloadService.java b/brouter-routing-app/src/main/java/btools/routingapp/DownloadService.java index b026a20..e00eaf8 100644 --- a/brouter-routing-app/src/main/java/btools/routingapp/DownloadService.java +++ b/brouter-routing-app/src/main/java/btools/routingapp/DownloadService.java @@ -357,7 +357,7 @@ public class DownloadService extends Service implements ProgressListener { } return null; } catch (Exception e) { - e.printStackTrace(); ; + //e.printStackTrace(); ; return e.toString(); } finally { try {