آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

چک کردن وضعیت اینترنت(لطفا جواب بدید)

fatemeh  8 سال پیش  7 سال پیش
0 0

سلام

برای چک کردن اینترنت از این کد استفاده می کنم

  private static boolean isNetworkAvailable() {
try {
ConnectivityManager connectivityManager = (ConnectivityManager)
G.context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null;
}
catch (Exception e) {
e.printStackTrace();
}
return false;
}


public static boolean hasActiveInternetConnection() {
if (isNetworkAvailable()) {
try {
HttpURLConnection urlc = (HttpURLConnection) (new URL("https://www.google.com").openConnection());
urlc.setRequestProperty("User-Agent", "Test");
urlc.setRequestProperty("Connection", "close");
// urlc.setConnectTimeout(1500);
// urlc.setConnectTimeout(3000);
urlc.setConnectTimeout(10000);

urlc.connect();

return (urlc.getResponseCode() == 200);
}
catch (IOException e) {
Log.i("log", " checking internet connection");

}
} else {
Log.i("log", "No network available!");

}
return false;
}

بعضی مواقع با اجرای برنامه صفحه گوشی سیاه میشه به نظر شما بهتره چکار کنم؟

و به جای آدرس گوگل از آدرس سایت خودم استفاده میکنم

نحوه استفاده در اکتیویتی هم به این صورته

 if (hasActiveInternetConnection()) {
//
//
}else{
//
}

 برای این سوال 6 پاسخ وجود دارد.
پاسخ به سوال 
احمد  8 سال پیش
+1 0

من از این توابع استفاده کردم

 private void checkconnect() {
		try {
			conMan = (ConnectivityManager) getSystemService(G.CurrentActivity.CONNECTIVITY_SERVICE);
			mobile = conMan.getNetworkInfo(ConnectivityManager.TYPE_MOBILE)
					.getState();
			wifi = conMan.getNetworkInfo(ConnectivityManager.TYPE_WIFI)
					.getState();
			if (mobile == NetworkInfo.State.CONNECTED
					| mobile == NetworkInfo.State.CONNECTING) {
				new HttpAsyncTask().execute();

			} else if (wifi == NetworkInfo.State.CONNECTED
					| wifi == NetworkInfo.State.CONNECTING) {
				new HttpAsyncTask().execute();

			} else {
				G.selectMode = "offline";
				toast.Redtoast(ActivityMain.this, "Wifi or Gprs Disable :-(");
				// Login.this.finish();
			}
		} catch (Exception e) {
		}
	}

 

 

 	private class HttpAsyncTask extends AsyncTask<String, Void, String> {
		@Override
		protected String doInBackground(String... urls) {
			try {
				Boolean b = haveInternet();
				if (b) {
					return "ok";
				} else {
					return "no";
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
			return null;
		}

		@Override
		protected void onPostExecute(String result) {

			if (result == null | result.equals("no") | result.equals("")) {
				toast.Redtoast(ActivityMain.this, pleaseconnect);
				G.selectMode = "offline";
			} else {
				toast.Bluetoast(ActivityMain.this,
						"Internet is Enabled :-) ...");
				G.selectMode = "online";
				nodata();

			}

		}
	}

 

 	public boolean haveInternet() {

		Runtime runtime = Runtime.getRuntime();
		try {

			Process ipProcess = runtime.exec("/system/bin/ping -c 1 8.8.8.8");
			int exitValue = ipProcess.waitFor();
			return (exitValue == 0);

		} catch (IOException e) {
			e.printStackTrace();
		} catch (InterruptedException e) {
			e.printStackTrace();
		}
		return false;
	}
0 0
سلام ، ایمولیتور من به اینترنت وصله ( از طریق wifi ) ، ولی چرا در متد haveInternet مقدار exitValue برابر 2 میشه و در نتیجه خروجی متد ، false میشه ، یعنی اینترنت نداره ! کسی از این کدها استفاده کرده ؟ (7 سال پیش)
پاسخ به سوال 
fatemeh  8 سال پیش
0 0

خانم بهار ممنون

میشه در این خط به جای گوگل برای اطمینان سایت خودمون رو پینگ کنیم

 Process ipProcess = runtime.exec("/system/bin/ping -c 1 8.8.8.8");

پاسخ به سوال 
محسن  8 سال پیش
0 0

من از پینگ گوگل یا سایت دیگه استفاده کردم و متوجه شدم رو بعضی گوشی ها( مثل الکاتل) کار نمیکنه. این که یه  HttpURLConnection هم بزنی به مشکل میخوره بخاطر این که واسه تشخیص نت باید تایم اوت رو بیاری پایین و این باز با اینترنت های سرعت پایین مشکل دار میشه(تو چند جا هم خوندم که httpconnection ایده خوبی واسه این کار نیست)، اخر سر این تیکه کد کارم رو راه انداخت:


public static boolean readNetworkStatus(){
ConnectivityManager connectivity = (ConnectivityManager) G.context.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity != null)
{
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null)
for (int i = 0; i < info.length; i++)
if (info[i].getState() == NetworkInfo.State.CONNECTED)
{
return true;
}

}
return false;
}
پاسخ به سوال 
fatemeh  8 سال پیش
0 0

دوستان من میخوام داده از سمت سرور بگیرم یا بفرستم باید اتصال به اینترنت رو چک کنم

مثلا اگر وای فای وصل باشه ولی اینترنت نداشته باشم اطلاعاتی که از سمت سرور میگیره به صورت کد html هستند به نظر شما بهتره از چه روشی استفاده کنم؟

پاسخ به سوال 
مسعود فرمانی  8 سال پیش
+2 0

به این لینک یه نگاهی بندازید ===> لینک

پاسخ به سوال 
امید  7 سال پیش
0 0

دوستان تمام این روش هارو تست کردم و هیچکدوم درست جواب نمیده!!!

توی تمام این روش ها وصل بودن گوشی به شبکه بررسی میشه و در صورت وصل بودن به wifi و یا gprs/3g حالت شبکه رو وصل نشون میده.

اما اگر به یه wifi وصل باشی که اینترنت نداشته باشه به مشکل میخوری و این حالت رو نشون نمیده.

اگر کسی روشی میشناسه لطفا کمک کنه


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .