بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
بررسی اتصال به اینترنت
سلام دوستان .
یه کدی میخواستم که زمانی که اتصال به اینترنت برقرار نبود پیغام بده . البته کد زیر برای زمانیکه وای فای یا داده خاموش باشند جواب میدن ولی زمانی که اینترنت وجود نداشته باشه مثلا تموم شده باشه و وای فای وصل باشه نشون نمیده .
چه باید کرد؟
ConnectivityManager cm = (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ni = cm.getActiveNetworkInfo();
if (ni == null) {
return false;
} else {
return true;
}
برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال
Reza
9 سال پیش
+2
0
سلام
این کد شما فقط برای اینه که ببینی Wifi یا Gprs روشن هست یا نه . باید زمانی که یکی از اینا روشنه اتصال رو هم چک کرد :
در کلاسی که میخواین اتصال به اینترنت رو چک کنین ، متد check_Network و کلاس NetCheck و فیلد errorMessage رو اضافه کنید :
private String errorMessage;
private void check_Network() {
new NetCheck().execute();
}
private class NetCheck extends AsyncTask<String, String, Boolean> {
@Override
protected Boolean doInBackground(String... args) {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = cm.getActiveNetworkInfo();
if (networkInfo == null) {
errorMessage = "Connect to a Network";
return false;
}
if (networkInfo.isConnected()) {
try {
URL url = new URL("http://www.google.com");
HttpURLConnection urlc = (HttpURLConnection) url.openConnection();
urlc.setConnectTimeout(3000);
urlc.connect();
errorMessage = urlc.getResponseCode() == 200 ? "Successful Connection": "Internet Error";
return urlc.getResponseCode() == 200;
}
catch (SocketTimeoutException e) {
errorMessage = "Connection Error";
return false;
}
catch (MalformedURLException e) {
errorMessage = "Connection Error";
return false;
}
catch (IOException e) {
errorMessage = "Connection Error";
return false;
}
}
errorMessage = "Network Disabled";
return false;
}
//-------------------------------------------------
@Override
protected void onPostExecute(Boolean isConnected) {
if ( !isConnected) { // code if not connected
AlertDialog.Builder builder = new AlertDialog.Builder(G.activity);
builder.setMessage(errorMessage);
builder.setCancelable(false);
builder.setPositiveButton("Try Again", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
check_Network();
}
});
AlertDialog alertDialog = builder.create();
alertDialog.show();
} else { // code if connected
Toast.makeText(G.context, errorMessage, 3000).show();
}
}
}
حالا هر جا خواستی اینترنت رو چک کنی ، کافیه متد check_Network رو صدا بزنی .
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .