0

インターネットに接続していないときに警告メッセージを表示する必要があります。次のコードを追加しましたが、インターネットに接続していないときに警告ボックスが表示されません。

コードは次のとおりです。

 if (isNetworkAvailable(getApplicationContext()))
 {
       // Do whatever you want to do
 }
 else{

    try {

        AlertDialog.Builder builder = new AlertDialog.Builder(LiveChat.this);

         builder.setTitle("Message");
        builder.setMessage("Do you want to end the chat session?");
        // Add the buttons

        builder.setPositiveButton("Yes",new DialogInterface.OnClickListener() {
                    public void onClick(DialogInterface dialog, int id) {

                        dialog.cancel();
                    }

        });
        AlertDialog alert = builder.create();
        alert.show();

        }
        catch(Exception e)
        {
    System.out.println("alert="+e);
        }
 }

このコードを onCreate に追加しました。

 public boolean isNetworkAvailable(Context context) {

        boolean value = false;
        ConnectivityManager connec = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        if (connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED
                || connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED) {
            value = true;
        }

        // Log.d ("1", Boolean.toString(value) );
        return value;
    }

インターネット接続をオフにするとアラート ボックスが表示されますが、アプリケーションの途中でインターネットが遅くなったり、接続が失われたりして、アラートが表示されません

インターネットが利用可能かどうかを毎秒確認する必要があります。接続がない場合は、アラート ボックスを表示する必要があります。

誰か助けてくれませんか @Thanks

4

5 に答える 5

0
//Method to check Internet Availability with Dialog box
public class CheckingInternet{
public static boolean isInternetAvailable(final Context context) {
//      boolean returnTemp = true;

        ConnectivityManager conManager = (ConnectivityManager) context
                .getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo i = conManager.getActiveNetworkInfo();
        if ((i == null) || (!i.isConnected()) || (!i.isAvailable())) {

        return false;
        }
        return true;
    }   

     public static  void showDialogForInternetConection(Context mContext){

         AlertDialog.Builder netNotAvailable=new AlertDialog.Builder(mContext);
         netNotAvailable.setMessage("Could not find an Internet connection. Please check your settings and try again.");
         netNotAvailable.setTitle("Attention");
         netNotAvailable.setIcon(R.drawable.attention);


         netNotAvailable.setNeutralButton("Ok", new DialogInterface.OnClickListener() {

        //  @Override
            public void onClick(DialogInterface arg0, int arg1) {

            }
        });
         netNotAvailable.show();
     }

//With your Main Activity to show dialog
if(CheckingInternet.isInternetAvailable(mContext)){
//do Something
}
else{
CheckingInternet.showDialogForInternetConection(Context);
}
于 2013-09-06T07:57:31.173 に答える
0

よくわかりませんが、これを UI-Thread で呼び出しますか? そうしないと、問題になる可能性があります。コードを次の場所に入れるだけです。

getActivity().runOnUiThread(
    new Runnable()
    {
        @Override
        public void run()
        {
            //Your code here
        }
    }
)
于 2013-09-06T07:49:23.470 に答える
0

このコードを試して、

Boolean isInternetPresent = false;
    ConnectionDetector cd;
cd = new ConnectionDetector(getApplicationContext());
    isInternetPresent = cd.isConnectingToInternet();

    if (!isInternetPresent) {
        // Internet Connection is not present
        alert.showAlertDialog(LoginActivity.this, "Internet Connection Error",
                "Please connect to working Internet connection", false);
        // stop executing code by return
        return;
    }
于 2013-09-06T07:51:23.920 に答える