【发布时间】:2018-05-24 18:29:17
【问题描述】:
我的应用程序活动有一段代码,我想在访问 FireBase Auth Login 之前检查已连接的网络是否有活动连接。
我为 networkState 创建了一个类,添加了一个用于检查 networkActiveConnection
的代码块private void networkState() throws IOException {
final ConnectivityManager conMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
assert conMgr != null;
final NetworkInfo activeNetwork = conMgr.getActiveNetworkInfo();
if (activeNetwork != null && activeNetwork.isConnectedOrConnecting()) {
Toast.makeText(getApplicationContext(),"Network connected",Toast.LENGTH_SHORT).show();
//checking active internet service
HttpURLConnection urlc = (HttpURLConnection)(new URL("http://www.google.com").openConnection());
urlc.setRequestProperty("User-Agent", "Test");
urlc.setRequestProperty("Connection", "close");
urlc.setConnectTimeout(10000);
urlc.connect();
if(urlc.getResponseCode() == 200){
Toast.makeText(getApplicationContext(), "Network has active internet", Toast.LENGTH_SHORT).show();
//user login
signInUser();
}else {
Toast.makeText(getApplicationContext(), "No active internet connection", Toast.LENGTH_SHORT).show();
}
//end of checking active internet service
} else {
Toast.makeText(getApplicationContext(),"Network not connected",Toast.LENGTH_SHORT).show();
}
}
应用程序不断崩溃。没有解决方案我无法移动。我错过了哪里?有没有其他方法可以检查连接的网络是否有活动连接?
【问题讨论】:
-
查看这个答案stackoverflow.com/a/40576794/9611523搜索了一个小时发现可以工作
-
我验证了这个答案并修改了我的代码。请修改我的代码
标签: android android-studio networking wifi network-state