生成未连接或启用Internet的消息

时间:2012-11-22 05:20:11

标签: java android android-layout android-intent

在我的应用程序中,我调用WebServices并获取GPRS值。问题是,当互联网未连接时,我的应用程序会生成“强制关闭”消息。请指导我,如何生成互联网不可用的消息或请连接互联网,它不会生成强制关闭的消息。谢谢你的帮助

请指教我的移动网络。如果它不是ON我的应用程序生成消息,请在移动网络上。怎么可能???

感谢Kittu& ram Kiran帮助:)

4 个答案:

答案 0 :(得分:4)

private boolean haveNetworkConnection() 
{
    boolean haveConnectedWifi = false;
    boolean haveConnectedMobile = false;

    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo[] netInfo = cm.getAllNetworkInfo();
    for (NetworkInfo ni : netInfo) 
    {
        if (ni.getTypeName().equalsIgnoreCase("WIFI"))
            if (ni.isConnected())
                haveConnectedWifi = true;
        if (ni.getTypeName().equalsIgnoreCase("MOBILE"))
            if (ni.isConnected())
                haveConnectedMobile = true;
    }
    return haveConnectedWifi || haveConnectedMobile;

}
每当您尝试调用webservice

时,都会调用此方法
if(haveNetworkConnection())
{
    // call the webservice
}

添加<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 清单中的权限

答案 1 :(得分:0)

你可以这样做:

//check connection
        public boolean isOnline() {
            ConnectivityManager cm =(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
            NetworkInfo netInfo = cm.getActiveNetworkInfo();
            if (netInfo != null && netInfo.isConnectedOrConnecting()) {

                return true;
            }

          //alert box to show internet connection error
            AlertDialog.Builder Internet_Alert = new AlertDialog.Builder(DinnerDenActivity.this);
            // set title
            Internet_Alert.setTitle("Attention!");
            Internet_Alert.setMessage("This application requires internet connectivity, no internet connection detected");
            Internet_Alert.setPositiveButton("Quit", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface arg0, int arg1) 
                {
                    Intent intent = new Intent(Intent.ACTION_MAIN);
                    intent.addCategory(Intent.CATEGORY_HOME);
                    intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                    startActivity(intent);
                    onQuitPressed(); 
                }
            });

            Internet_Alert.create().show();
            return false;
        }

isOnline 检查互联网连接

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

此权限应添加到清单文件中。

答案 2 :(得分:0)

你也可以使用像这样的广播接收器

public class NetworkBroadcastReceiver extends BroadcastReceiver{


    /*
     * (non-Javadoc)
     * 
     * @see android.content.BroadcastReceiver#onReceive(android.content.Context,
     * android.content.Intent)
     */
    @Override
    public void onReceive(Context context, Intent intent) {
        boolean isNetworkDown= intent.getBooleanExtra(ConnectivityManager.EXTRA_NO_CONNECTIVITY, false);
        if(isNetworkDown){
            ApplicationInfo.networkAvailable = false;
        }else{
            ApplicationInfo.networkAvailable = true;
        }
    }

}

在致电您的网络服务之前,您可以检查ApplicationInfo.networkAvailable这样的

if(!ApplicationInfo.networkAvailable){
    //show msg -> no network connectivity
}else{
    //proceed with WS call
}

CONNECTIVITY_ACTION注册您的接收者。这可以在代码和AndroidManifest文件中完成

答案 3 :(得分:0)

在您的应用中关注此 Link for check Internet Connection

在上面的链接中我们使用警报Dailog检查所有类型的互联网连接。 您可以在应用程序中使用它来避免force close您的应用程序。