SocketTimeoutException هم پیغامش رو نشون میده
بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ
اتصال به اینترنت
مدیریت گفتگو
آخرین تغییر: 9 سال پیش
سلام
من کد زیر رو برای اتصال به اینترنت قرار میدم منتها بعضی وقت ها که اتصال به اینترنت مشکل نداره و وصل هست پیعام coneection error رو میده
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();
}
}
}
پاسخها 1
از طریق وای فای. سوم خطا میده یعنی
IOException
نظرات
نمیدونم !!! برای من همین کدها کار میکنه ، چه با wifi چه با Gprs . بلافاصله پیغام خطا ظاهر میشه یا زمان میبره ؟ یعنی با کلیک روی try again بلافاصله پیغام ظاهر میشه ؟
ریسایکر ویو هستش لیست بی پایان وقتی اسکرول میکنه ایتم ها ی بعدی رو میخواد بگیره پیغام میاد. البته اول نمیاد دو سه بار که انجام میدی دو باره توی فرگمنت میری و اسکرول میکنی این اتفاق میفته .
به صورت دقیق اتفاق نمیفته . ولی فکر کنم وقتی اسکرول تند میشه این اتفاق بیشتر میفته.
خب به خاط اینه که این کدها رو چند بار اجرا میکنه . شما نباید هر دفعه اتصال رو چک کنی . یه طوری الگوریتم رو درست کن که فقط یکبار google رو چک کنه و اگه اتصال با گوگل برقرار بود از اینجا به بعد به سرور خودت وصل بشه و داده ها رو بگیره .
نفهمیدم منظورتون رو دقیقا . یعنی اونجایی که لینک code if connected نوشته تو onPostExecute?
البته فکر کنم ایراد از وای فای باشه که چراغاش هی روشن خاموش میشن اتصال قطع میشه . چون تو شپیور امتحان کردم همین مشکل بود . البته تو دیوار این مشکل بر نخوردم .
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .
ویرایش
پیام
نظرات