0

我有一个带有 onclick 事件的按钮,可以打开另一个类。另一类正在进行网络调用以检索数据,因此如果没有连接,则应用程序强制关闭。

我将如何实现可以检查数据连接的 try catch 或 if 语句,如果没有,则显示一个 toast 说明。如果有则继续上二等舱。

4

6 回答 6

0

只需使用它。

从任何地方调用此代码,它将返回网络的当前状态。

public static boolean isInternetAvailable(Context c)
    {
         ConnectivityManager connectivityManager 
         = (ConnectivityManager) c.getSystemService(Context.CONNECTIVITY_SERVICE);
         NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
         return activeNetworkInfo != null && activeNetworkInfo.getState() == NetworkInfo.State.CONNECTED;
    }

如果已连接,则返回 true,否则返回 false。对其输出采取任何所需的操作。

注意:它是一个静态方法。因此,如果您只想从 Android Activity 类中调用它,请删除 static 关键字。

于 2013-08-07T18:12:23.550 回答
0

试试这个,这会帮助你..

public class CheckNetworkInfo {

    public static boolean haveNetworkConnection(Context context) {

         ConnectivityManager cm = (ConnectivityManager) context
                    .getSystemService(Context.CONNECTIVITY_SERVICE);
            // test for connection
            if (cm.getActiveNetworkInfo() != null
                    && cm.getActiveNetworkInfo().isAvailable()
                    && cm.getActiveNetworkInfo().isConnected()) {
                Log.v("Yeah", "Internet is working");
                // txt_status.setText("Internet is working");
                return true;
            } else {
                // txt_status.setText("Internet Connection Not Present");
                Log.v("Sorry", "Internet Connection Not Present");
                return false;
            }
}

// 在你想检查网络可用性的地方调用上面的类静态方法

class Myactivity extends Activity{

public void onCreate(Bundle savedInstanceState) {

    if(CheckNetworkInfo.haveNetworkConnection(Myactivity.this)){
            startActivity(new Intent(HomePage.this,SearchTerm.class));
        }
        else{
            AlertDialog.Builder a=new AlertDialog.Builder(Myactivity.this);
            a.setTitle("Check Network Connection");
            a.setPositiveButton("OK",new android.content.DialogInterface.OnClickListener() {

                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // TODO Auto-generated method stub
                dialog.dismiss();   
                }
            });
            a.show();
        }
}
}
于 2013-08-07T14:22:43.280 回答
0

我用:

public boolean isOnline() {
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    if (netInfo != null && netInfo.isConnectedOrConnecting()) {
        return true;
    }
    return false;
}
于 2013-08-07T14:18:42.587 回答
0

做这样的事情来检查互联网连接:

static public boolean isInternetActive() 
{
    ConnectivityManager connectivity = (ConnectivityManager) getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);

    NetworkInfo info = (NetworkInfo) connectivity.getActiveNetworkInfo();

    if (info == null || !info.isConnected()) 
    {
        return false;
    }
    if (info.isRoaming()) 
    {
        return false;
    }
    return true;
}
于 2013-08-07T14:18:55.867 回答
0
public boolean isOnline() {
ConnectivityManager cm =
    (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

return cm.getActiveNetworkInfo() != null && 
   cm.getActiveNetworkInfo().isConnectedOrConnecting();
}

您还需要:

 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

在你的 android 清单中。

于 2013-08-07T14:19:27.010 回答
0

此代码检查是否打开或关闭互联网连接代码检查 wifi 和电话网络。

public boolean CheckInternet() 
{
    ConnectivityManager connec = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
 android.net.NetworkInfo wifi = connec.getNetworkInfo(ConnectivityManager.TYPE_WIFI);

    android.net.NetworkInfo mobile = connec.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);

    // Here if condition check for wifi and mobile network is available or not.
    // If anyone of them is available or connected then it will return true, otherwise false;

    if (wifi.isConnected()) {
        return true;
    } else if (mobile.isConnected()) {
        return true;
    }
    return false;
}

清单文件::

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
于 2013-08-07T14:19:40.330 回答