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

اتصال به اینترنت

125847  9 سال پیش  9 سال پیش
0 0

سلام 

من کد زیر رو برای اتصال به اینترنت قرار میدم منتها بعضی  وقت ها که اتصال به اینترنت مشکل نداره و وصل هست پیعام 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();
        }
        }
 }
 
0 0
سلام ، از چه طریقی به اینترنت وصله ؟ Wifi یا Gprs ؟ 3 تا connection error داره ، براشون شماره بذار بببین دقیقا وارد کدوم catch میشه . (9 سال پیش)
 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
125847  9 سال پیش
0 0

از طریق وای فای. سوم خطا میده  یعنی 

IOException
0 0
SocketTimeoutException هم پیغامش رو نشون میده (9 سال پیش)
0 0
نمیدونم !!! برای من همین کدها کار میکنه ، چه با wifi چه با Gprs . بلافاصله پیغام خطا ظاهر میشه یا زمان میبره ؟ یعنی با کلیک روی try again بلافاصله پیغام ظاهر میشه ؟ (9 سال پیش)
0 0
ریسایکر ویو هستش لیست بی پایان وقتی اسکرول میکنه ایتم ها ی بعدی رو میخواد بگیره پیغام میاد. البته اول نمیاد دو سه بار که انجام میدی دو باره توی فرگمنت میری و اسکرول میکنی این اتفاق میفته . (9 سال پیش)
0 0
به صورت دقیق اتفاق نمیفته . ولی فکر کنم وقتی اسکرول تند میشه این اتفاق بیشتر میفته. (9 سال پیش)
0 0
خب به خاط اینه که این کدها رو چند بار اجرا میکنه . شما نباید هر دفعه اتصال رو چک کنی . یه طوری الگوریتم رو درست کن که فقط یکبار google رو چک کنه و اگه اتصال با گوگل برقرار بود از اینجا به بعد به سرور خودت وصل بشه و داده ها رو بگیره . (9 سال پیش)
0 0
نفهمیدم منظورتون رو دقیقا . یعنی اونجایی که لینک code if connected نوشته تو onPostExecute? البته فکر کنم ایراد از وای فای باشه که چراغاش هی روشن خاموش میشن اتصال قطع میشه . چون تو شپیور امتحان کردم همین مشکل بود . البته تو دیوار این مشکل بر نخوردم . (9 سال پیش)

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