0

在我的应用程序中,我在应用程序启动之前检查了互联网连接如果连接不可用,那么如果用户单击警报框的“否”按钮,它会显示一个带有“是”和“否”按钮的警报框,然后它会关闭应用程序。

如果用户单击警报框的“是”按钮,则我使用以下代码启动 Activity

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
alertDialogBuilder.setTitle("Info");
alertDialogBuilder.setMessage("Internet connection not available check ur internet connection");
alertDialogBuilder.setPositiveButton("Yes",new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        // TODO Auto-generated method stub
        context.startActivity(new Intent(Settings.ACTION_WIRELESS_SETTINGS));
        dialog.cancel();
    }
});
alertDialogBuilder.setNegativeButton("No", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
        // TODO Auto-generated method stub
        System.exit(0);
        return;
    }
});

如果用户在互联网连接上,我想检查用户是否连接,那么当用户按下后退按钮时它将显示主活动,否则应用程序退出。

4

4 回答 4

2

使用NetworkInfo类检查互联网连接。当用户单击返回按钮时,调用此函数。

public boolean checkInternet(){
 NetworkInfo network = connectionManager.getActiveNetworkInfo();
  if (network == null)
     return false;
  if (!network.isConnected())
     return false;
 return true;
}
于 2013-01-08T09:42:20.600 回答
1

您需要覆盖 onKeyDown 并创建自定义对话框来执行此操作。

[编辑 1]

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {

        // back buton pressed , now you can check connection here

       if(isOnline)
       {
           // go to main activity
       }
       else
       {
          System.exit(0);
       } 

        return true;
    }
    return super.onKeyDown(keyCode, event);
}



public static boolean isOnline(Context context) {
   ConnectivityManager cm = (ConnectivityManager)     
   context.getSystemService(Context.CONNECTIVITY_SERVICE);
   NetworkInfo netInfo = cm.getActiveNetworkInfo();

   if (netInfo != null && netInfo.isConnectedOrConnecting()) {
       return true;
   }

   return false;
}
于 2013-01-08T09:40:37.027 回答
1

您可以使用以下功能检查用户是否在线:

public static boolean isOnline(Context context) {
   ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
   NetworkInfo netInfo = cm.getActiveNetworkInfo();
   if (netInfo != null && netInfo.isConnectedOrConnecting()) {
       return true;
   }
   return false;
}

您还需要将此添加到您的 AndroidManifest.xml

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
于 2013-01-08T09:43:42.177 回答
0

在按钮单击上调用此方法并在清单中添加互联网权限和访问网络状态。

protected boolean checkConnection(Context mContext) {
    final NetworkInfo info = ((ConnectivityManager) mContext.getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
    if (info == null || !info.isConnected()) {
        return false;
    }
    if (info.isRoaming()) {
        return true;
    }
    return true;
}
于 2013-01-08T09:50:08.180 回答