0
我修改了我以前的代碼 - 這段代碼運行正常。唯一的問題是,它推出後,在第一次點擊它總是顯示輸出爲:第一次點擊給了我一個錯誤的輸出
「網絡不可用」
但在第二次點擊它顯示正確的輸出。
public class MainActivity extends Activity {
boolean pingCheck;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button b1=(Button)findViewById(R.id.button1);
b1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Thread t = new Thread(new Runnable() {
public void run() {
pingCheck = isURLReachable(getApplicationContext());
}
});
t.start();
if(pingCheck)
{
Toast.makeText(MainActivity.this,"Network is available",Toast.LENGTH_LONG).show();
}
else
{
Toast.makeText(MainActivity.this,"Network not available",Toast.LENGTH_LONG).show();
}
}
});
}
static public boolean isURLReachable(Context context) {
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnected()) {
try {
URL url = new URL("http://google.com"); // Change to "http://google.com" for www test.
HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
urlc.setConnectTimeout(1000); // 10 s.
urlc.connect();
if (urlc.getResponseCode() == 200) { // 200 = "OK" code (http connection is fine).
Log.wtf("Connection", "Success !");
return true;
} else {
return false;
}
} catch (MalformedURLException e1) {
return false;
} catch (IOException e) {
return false;
}
}
return false;
}
}
對不起,我沒有得到完全,但謝謝 –
有沒有具體的東西你沒有得到?你現在是否解決了這個問題? – vkislicins
http://stackoverflow.com/q/40583324/7095521 –