انجمن سایت کلیدستان


رتبه موضوع:
  • 1 رای - 5 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل در ایجاد دو چک کننده اتصال به اینترنت (در برنامه نویسی اندروید)

مشکل در ایجاد دو چک کننده اتصال به اینترنت (در برنامه نویسی اندروید)

#1
سلام،
من دوتا دکمه دارم که برای هر دو میخوام وقتی کلیک میشن اول اتصال رو چک کنند. من کد رو به صورت زیر نوشتم ولی یک مشکلی هست ، تا دکمه ای که کد آن بالا تر نوشته شده کلیک نشه ، دکمه ای که کدش پایین تر نوشته شده اجرا نمیشه... آیا کروشه ای مشکل داره؟؟؟؟ لطفاً راهنمایی کنید

کد پی‌اچ‌پی:
public class MainActivity extends Activity {


    @
Override
    
protected void onCreate(Bundle savedInstanceState) {
        
super.onCreate(savedInstanceState);
        
setContentView(R.layout.activity_main);
        
        
       
        
ImageButton b3 = (ImageButtonfindViewById(R.id.imageButton3);
        
b3.setOnClickListener(new OnClickListener() {
                                 
             @
Override
             
public void onClick(View v) {
                 new 
NetCheck().execute();
             }
        });
       
}

public 
void ShowAlertDialog() {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
alertDialog.setTitle(R.string.title);
alertDialog.setMessage(R.string.message);
alertDialog.setIcon(R.drawable.ic_launcher);
// Setting Positive "Yes" Button
alertDialog.setPositiveButton(R.string.yes,
                new 
DialogInterface.OnClickListener() {
            public 
void onClick(DialogInterface dialogint which) {
                
dialog.cancel();
                new 
NetCheck().execute();
            }
        });
// Setting Negative "NO" Button
alertDialog.setNegativeButton(R.string.no,
        new 
DialogInterface.OnClickListener() {
            public 
void onClick(DialogInterface dialogint which) {
                
// Write your code here to invoke NO event
                
dialog.cancel();
            }
        });
// Showing Alert Message
alertDialog.show();
}


/**
* Async Task to check whether internet connection is working.
**/

private class NetCheck extends AsyncTask<String,String,Boolean>
{
   private 
ProgressDialog nDialog;

   @
Override
   
protected void onPreExecute(){
       
super.onPreExecute();
       
nDialog = new ProgressDialog(MainActivity.this);
       
nDialog.setTitle("Checking Network");
       
nDialog.setMessage("Loading..");
       
nDialog.setIndeterminate(false);
       
nDialog.setCancelable(true);

       
nDialog.show();
   }
   
/**
    * Gets current device state and checks for working internet connection by trying Google.
   **/
   
@Override
   
protected Boolean doInBackground(String... args){

       
ConnectivityManager cm = (ConnectivityManagergetSystemService(Context.CONNECTIVITY_SERVICE);
       
NetworkInfo netInfo cm.getActiveNetworkInfo();
       if (
netInfo != null && netInfo.isConnected()) {
           try {
               
URL url = new URL("http://www.google.com");
               
HttpURLConnection urlc = (HttpURLConnectionurl.openConnection();
               
urlc.setConnectTimeout(3000);
               
urlc.connect();
               if (
urlc.getResponseCode() == 200) {
                   return 
true;
               }
           } catch (
MalformedURLException e1) {
               
// TODO Auto-generated catch block
               
e1.printStackTrace();
           } catch (
IOException e) {
               
// TODO Auto-generated catch block
               
e.printStackTrace();
           }
       }
       return 
false;

   }
   @
Override
   
protected void onPostExecute(Boolean th){

       if(
th == true){
           
nDialog.dismiss();
           
Toast.makeText(getApplicationContext(), "Your device is connected to internet !"Toast.LENGTH_SHORT).show();
           
// new GetData().execute();
       
}
       else{
           
nDialog.dismiss();
           
ShowAlertDialog();
       }
   
        
        
        
        
        
ImageButton b1 = (ImageButtonfindViewById(R.id.imageButton1);
        
b1.setOnClickListener(new OnClickListener() {
                                 
             @
Override
             
public void onClick(View v) {
                 new 
NetCheck().execute();
             }
        });
       
}

public 
void ShowAlertDialog() {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
alertDialog.setTitle(R.string.title);
alertDialog.setMessage(R.string.message);
alertDialog.setIcon(R.drawable.ic_launcher);
// Setting Positive "Yes" Button
alertDialog.setPositiveButton(R.string.yes,
                new 
DialogInterface.OnClickListener() {
            public 
void onClick(DialogInterface dialogint which) {
                
dialog.cancel();
                new 
NetCheck().execute();
            }
        });
// Setting Negative "NO" Button
alertDialog.setNegativeButton(R.string.no,
        new 
DialogInterface.OnClickListener() {
            public 
void onClick(DialogInterface dialogint which) {
                
// Write your code here to invoke NO event
                
dialog.cancel();
            }
        });
// Showing Alert Message
alertDialog.show();
}


/**
* Async Task to check whether internet connection is working.
**/

private class NetCheck1 extends AsyncTask<String,String,Boolean>
{
   private 
ProgressDialog nDialog;

   @
Override
   
protected void onPreExecute(){
       
super.onPreExecute();
       
nDialog = new ProgressDialog(MainActivity.this);
       
nDialog.setTitle("Checking Network");
       
nDialog.setMessage("Loading..");
       
nDialog.setIndeterminate(false);
       
nDialog.setCancelable(true);

       
nDialog.show();
   }
   
/**
    * Gets current device state and checks for working internet connection by trying Google.
   **/
   
@Override
   
protected Boolean doInBackground(String... args){

       
ConnectivityManager cm = (ConnectivityManagergetSystemService(Context.CONNECTIVITY_SERVICE);
       
NetworkInfo netInfo cm.getActiveNetworkInfo();
       if (
netInfo != null && netInfo.isConnected()) {
           try {
               
URL url = new URL("http://www.google.com");
               
HttpURLConnection urlc = (HttpURLConnectionurl.openConnection();
               
urlc.setConnectTimeout(3000);
               
urlc.connect();
               if (
urlc.getResponseCode() == 200) {
                   return 
true;
               }
           } catch (
MalformedURLException e1) {
               
// TODO Auto-generated catch block
               
e1.printStackTrace();
           } catch (
IOException e) {
               
// TODO Auto-generated catch block
               
e.printStackTrace();
           }
       }
       return 
false;

   }
   @
Override
   
protected void onPostExecute(Boolean th){

       if(
th == true){
           
nDialog.dismiss();
           
Toast.makeText(getApplicationContext(), "Your device is connected to internet !"Toast.LENGTH_SHORT).show();
           
// new GetData().execute();
       
}
       else{
           
nDialog.dismiss();
           
ShowAlertDialog();
       }
   }     
          
       
         
          
       
       

    public 
boolean onCreateOptionsMenu(Menu menu) {
        
// Inflate the menu; this adds items to the action bar if it is present.
        
getMenuInflater().inflate(R.menu.mainmenu);
        return 
true;
    }
    

پاسخ

مشکل در ایجاد دو چک کننده اتصال به اینترنت (در برنامه نویسی اندروید)

#2
سلام کدتون رو به این شکل تغییر بدید درست میشه
( ولی خودتون هم یه خورده بیشتر تلاش کنید برا کد هاتون  )

کد پی‌اچ‌پی:
public class MainActivity extends Activity {


    @
Override
    
protected void onCreate(Bundle savedInstanceState) {
        
super.onCreate(savedInstanceState);
        
setContentView(R.layout.activity_main);
        
        
       
        
ImageButton b3 = (ImageButtonfindViewById(R.id.imageButton3);
        
b3.setOnClickListener(new OnClickListener() {
                                 
             @
Override
             
public void onClick(View v) {
                 new 
NetCheck().execute();
             }

        });
        
ImageButton b1 = (ImageButtonfindViewById(R.id.imageButton1);
        
b1.setOnClickListener(new OnClickListener() {
                                 
             @
Override
             
public void onClick(View v) {
                 new 
NetCheck().execute();
             }
        });
       
}

public 
void ShowAlertDialog() {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
alertDialog.setTitle(R.string.title);
alertDialog.setMessage(R.string.message);
alertDialog.setIcon(R.drawable.ic_launcher);
// Setting Positive "Yes" Button
alertDialog.setPositiveButton(R.string.yes,
                new 
DialogInterface.OnClickListener() {
            public 
void onClick(DialogInterface dialogint which) {
                
dialog.cancel();
                new 
NetCheck().execute();
            }
        });
// Setting Negative "NO" Button
alertDialog.setNegativeButton(R.string.no,
        new 
DialogInterface.OnClickListener() {
            public 
void onClick(DialogInterface dialogint which) {
                
// Write your code here to invoke NO event
                
dialog.cancel();
            }
        });
// Showing Alert Message
alertDialog.show();
}


/**
* Async Task to check whether internet connection is working.
**/

private class NetCheck extends AsyncTask<String,String,Boolean>
{
   private 
ProgressDialog nDialog;

   @
Override
   
protected void onPreExecute(){
       
super.onPreExecute();
       
nDialog = new ProgressDialog(MainActivity.this);
       
nDialog.setTitle("Checking Network");
       
nDialog.setMessage("Loading..");
       
nDialog.setIndeterminate(false);
       
nDialog.setCancelable(true);

       
nDialog.show();
   }
   
/**
    * Gets current device state and checks for working internet connection by trying Google.
   **/
   
@Override
   
protected Boolean doInBackground(String... args){

       
ConnectivityManager cm = (ConnectivityManagergetSystemService(Context.CONNECTIVITY_SERVICE);
       
NetworkInfo netInfo cm.getActiveNetworkInfo();
       if (
netInfo != null && netInfo.isConnected()) {
           try {
               
URL url = new URL("http://www.google.com");
               
HttpURLConnection urlc = (HttpURLConnectionurl.openConnection();
               
urlc.setConnectTimeout(3000);
               
urlc.connect();
               if (
urlc.getResponseCode() == 200) {
                   return 
true;
               }
           } catch (
MalformedURLException e1) {
               
// TODO Auto-generated catch block
               
e1.printStackTrace();
           } catch (
IOException e) {
               
// TODO Auto-generated catch block
               
e.printStackTrace();
           }
       }
       return 
false;

   }
   @
Override
   
protected void onPostExecute(Boolean th){

       if(
th == true){
           
nDialog.dismiss();
           
Toast.makeText(getApplicationContext(), "Your device is connected to internet !"Toast.LENGTH_SHORT).show();
           
// new GetData().execute();
       
}
       else{
           
nDialog.dismiss();
           
ShowAlertDialog();
       }
   
        
        
        
        
        
ImageButton b1 = (ImageButtonfindViewById(R.id.imageButton1);
        
b1.setOnClickListener(new OnClickListener() {
                                 
             @
Override
             
public void onClick(View v) {
                 new 
NetCheck().execute();
             }
        });
       
}

public 
void ShowAlertDialog() {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
alertDialog.setTitle(R.string.title);
alertDialog.setMessage(R.string.message);
alertDialog.setIcon(R.drawable.ic_launcher);
// Setting Positive "Yes" Button
alertDialog.setPositiveButton(R.string.yes,
                new 
DialogInterface.OnClickListener() {
            public 
void onClick(DialogInterface dialogint which) {
                
dialog.cancel();
                new 
NetCheck().execute();
            }
        });
// Setting Negative "NO" Button
alertDialog.setNegativeButton(R.string.no,
        new 
DialogInterface.OnClickListener() {
            public 
void onClick(DialogInterface dialogint which) {
                
// Write your code here to invoke NO event
                
dialog.cancel();
            }
        });
// Showing Alert Message
alertDialog.show();
}


/**
* Async Task to check whether internet connection is working.
**/

private class NetCheck1 extends AsyncTask<String,String,Boolean>
{
   private 
ProgressDialog nDialog;

   @
Override
   
protected void onPreExecute(){
       
super.onPreExecute();
       
nDialog = new ProgressDialog(MainActivity.this);
       
nDialog.setTitle("Checking Network");
       
nDialog.setMessage("Loading..");
       
nDialog.setIndeterminate(false);
       
nDialog.setCancelable(true);

       
nDialog.show();
   }
   
/**
    * Gets current device state and checks for working internet connection by trying Google.
   **/
   
@Override
   
protected Boolean doInBackground(String... args){

       
ConnectivityManager cm = (ConnectivityManagergetSystemService(Context.CONNECTIVITY_SERVICE);
       
NetworkInfo netInfo cm.getActiveNetworkInfo();
       if (
netInfo != null && netInfo.isConnected()) {
           try {
               
URL url = new URL("http://www.google.com");
               
HttpURLConnection urlc = (HttpURLConnectionurl.openConnection();
               
urlc.setConnectTimeout(3000);
               
urlc.connect();
               if (
urlc.getResponseCode() == 200) {
                   return 
true;
               }
           } catch (
MalformedURLException e1) {
               
// TODO Auto-generated catch block
               
e1.printStackTrace();
           } catch (
IOException e) {
               
// TODO Auto-generated catch block
               
e.printStackTrace();
           }
       }
       return 
false;

   }
   @
Override
   
protected void onPostExecute(Boolean th){

       if(
th == true){
           
nDialog.dismiss();
           
Toast.makeText(getApplicationContext(), "Your device is connected to internet !"Toast.LENGTH_SHORT).show();
           
// new GetData().execute();
       
}
       else{
           
nDialog.dismiss();
           
ShowAlertDialog();
       }
   }     
          
       
         
          
       
       

    public 
boolean onCreateOptionsMenu(Menu menu) {
        
// Inflate the menu; this adds items to the action bar if it is present.
        
getMenuInflater().inflate(R.menu.mainmenu);
        return 
true;
    }
    


موفق باشید
پاسخ
 سپاس شده توسط admin ، kousha.nikkar

مشکل در ایجاد دو چک کننده اتصال به اینترنت (در برنامه نویسی اندروید)

#3
استااااااد مرسیییی ، ولی من خیلی روی این کلنجار رفته بودم اما نمیدونستم که میشه دو دکمه رو نزدیک به همدیگه نوشت و ادامه کد های مشترک رو به هر دو ربط داد... جسارتی خدمتتون نمیکنم هیچ وقت متشکرم
پاسخ
 سپاس شده توسط aliasghar

مشکل در ایجاد دو چک کننده اتصال به اینترنت (در برنامه نویسی اندروید)

#4
ولی این کد مشکل داره
من میخوام هر کدوم از دکمه ها کار مخصوص به خودشون رو انجام بدن، قسمت پایینی کد که برای هر دکمه نوشتید اصلاً اجرا نمیشه ... شما میدونید مشکل چیه؟؟؟؟؟
چه کار کنم آخهههه
البته در نظر داشته باشید که میخوام اول اتصال به اینترنت چک بشه بعد کار خودشون رو انجام بدن.... کارشون هم باز کردن یک اکتیویتی دیگه هست... چرا این قسمت پایینی کد ، به اجرا نمیرسه؟؟؟
 
پاسخ

مشکل در ایجاد دو چک کننده اتصال به اینترنت (در برنامه نویسی اندروید)

#5
بذارید سوال رو اینطوری بپرسم حالا....
فرض کنید حالا با کد زیر که شما گفتید ، یک کار مشترک رو به دو دکمه دادم و به خوبی هم عمل میکنه....

کد پی‌اچ‌پی:
public class MainActivity extends Activity {


    @
Override
    
protected void onCreate(Bundle savedInstanceState) {
        
super.onCreate(savedInstanceState);
        
setContentView(R.layout.activity_main);
        
        
       
        
ImageButton b3 = (ImageButtonfindViewById(R.id.imageButton3);
        
b3.setOnClickListener(new OnClickListener() {
                                 
             @
Override
             
public void onClick(View v) {
                 new 
NetCheck().execute();
             }

        });
        
ImageButton b1 = (ImageButtonfindViewById(R.id.imageButton1);
        
b1.setOnClickListener(new OnClickListener() {
                                 
             @
Override
             
public void onClick(View v) {
                 new 
NetCheck().execute();
             }
        });
       
}

public 
void ShowAlertDialog() {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
alertDialog.setTitle(R.string.title);
alertDialog.setMessage(R.string.message);
alertDialog.setIcon(R.drawable.ic_launcher);
// Setting Positive "Yes" Button
alertDialog.setPositiveButton(R.string.yes,
                new 
DialogInterface.OnClickListener() {
            public 
void onClick(DialogInterface dialogint which) {
                
dialog.cancel();
                new 
NetCheck().execute();
            }
        });
// Setting Negative "NO" Button
alertDialog.setNegativeButton(R.string.no,
        new 
DialogInterface.OnClickListener() {
            public 
void onClick(DialogInterface dialogint which) {
                
// Write your code here to invoke NO event
                
dialog.cancel();
            }
        });
// Showing Alert Message
alertDialog.show();
}


/**
* Async Task to check whether internet connection is working.
**/

private class NetCheck extends AsyncTask<String,String,Boolean>
{
   private 
ProgressDialog nDialog;

   @
Override
   
protected void onPreExecute(){
       
super.onPreExecute();
       
nDialog = new ProgressDialog(MainActivity.this);
       
nDialog.setTitle("Checking Network");
       
nDialog.setMessage("Loading..");
       
nDialog.setIndeterminate(false);
       
nDialog.setCancelable(true);

       
nDialog.show();
   }
   
/**
    * Gets current device state and checks for working internet connection by trying Google.
   **/
   
@Override
   
protected Boolean doInBackground(String... args){

       
ConnectivityManager cm = (ConnectivityManagergetSystemService(Context.CONNECTIVITY_SERVICE);
       
NetworkInfo netInfo cm.getActiveNetworkInfo();
       if (
netInfo != null && netInfo.isConnected()) {
           try {
               
URL url = new URL("http://www.google.com");
               
HttpURLConnection urlc = (HttpURLConnectionurl.openConnection();
               
urlc.setConnectTimeout(3000);
               
urlc.connect();
               if (
urlc.getResponseCode() == 200) {
                   return 
true;
               }
           } catch (
MalformedURLException e1) {
               
// TODO Auto-generated catch block
               
e1.printStackTrace();
           } catch (
IOException e) {
               
// TODO Auto-generated catch block
               
e.printStackTrace();
           }
       }
       return 
false;

   }
   @
Override
   
protected void onPostExecute(Boolean th){

       if(
th == true){
           
nDialog.dismiss();
           
Toast.makeText(getApplicationContext(), "Your device is connected to internet !"Toast.LENGTH_SHORT).show();
           
// new GetData().execute();
       
}
       else{
           
nDialog.dismiss();
           
ShowAlertDialog();
       } 

حالا میخوام بعد از این کار مشترک... هر کدوم از دکمه ها کار مخصوص به خودشون رو انجام بدن.... تمام مشکل من اینجاستتت... اینجا رو باید چجوری معرفی کنم؟؟؟؟؟؟؟
لطفاً راهنمایی کنید...
پاسخ

مشکل در ایجاد دو چک کننده اتصال به اینترنت (در برنامه نویسی اندروید)

#6
سلام کافیه کار مشترکی که میخوای انجام شه داخل دستور if بزارید همون جایی که یه متن نمایش داده میشه همون جا هم دستور رو انجام بده Wink

موفق باشید
پاسخ
 سپاس شده توسط kousha.nikkar

مشکل در ایجاد دو چک کننده اتصال به اینترنت (در برنامه نویسی اندروید)

#7
نه متوجه نشدید، مشکل من کار غیر مشترکشونه...
کار مشترکشون رو که به خوبی انجام میدن ،، بعد از اون میخوام هر کدوم کار غیر مشترکی انجام بدن که نمیشه... سوال من اینه...
پاسخ

مشکل در ایجاد دو چک کننده اتصال به اینترنت (در برنامه نویسی اندروید)

#8
اها خب پس بهتره از روش دوم کلید 287  برای برسی اتصال اینترنت استفاده کنید

به این صورت :

ابتدا یه تابع جدید درست میکنیم مثلا به اسم  isNetworkConnected به این صورت :

کد پی‌اچ‌پی:
private boolean isNetworkConnected() { // check internet connection
ConnectivityManager cm = (ConnectivityManagergetSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ni cm.getActiveNetworkInfo();
if (
ni == null) {
    // There are no active networks.
    return false;
} else
    return true;


حالا اینجا وقتی دکمه رو میزنیم میگیم اگه اینرنت وجود داشت اونکاری که میخوای رو انجام بده وگرنه مثلا توست نمایش بده :

 
کد پی‌اچ‌پی:
        ImageButton b3 = (ImageButton) findViewById(R.id.imageButton3);
        b3.setOnClickListener(new OnClickListener() {
                                 
             
@Override
             public void onClick
(View v) {
             if(
isNetworkConnected()){ // check internet connection
             // your codes
             
}
             else{
               
Toast.makeText(ViewStory.this,"اینترنت خود را برسی کنید ",Toast.LENGTH_LONG).show();
             }


             }
        }); 

دسترسی هم فراموش نشه داخل مانی فست :

کد پی‌اچ‌پی:
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<
uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

موفق باشید
پاسخ
 سپاس شده توسط kousha.nikkar ، admin

مشکل در ایجاد دو چک کننده اتصال به اینترنت (در برنامه نویسی اندروید)

#9
مرسیییییییییییییییییییییییییییییییییییییییییییییی بالاخره شد، تابع رو نمیدونستم دقیقاً چطور باید نوشت و کجا گذاشت که الان یاد گرفتم.
مرسییییییییییییییییییییییییییییییییییییی
پاسخ
 سپاس شده توسط شماره مجازی امارات


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان