如何找到移动设备连接到互联网

时间:2014-05-26 21:20:43

标签: android

对于我的Android应用程序需要连接互联网来执行一些任务。如果没有互联网就停止了。是否有线路检查互联网连接,那么我可以给用户一条消息,将设备连接到互联网?

2 个答案:

答案 0 :(得分:4)

首先,您需要获得许可才能知道设备是否已连接到网络。这需要在你的清单中,在元素中:

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

然后 ConnectivityManager getActiveNetworkInfo()方法返回一个实例,该实例代表它可以找到的第一个连接的网络接口,如果没有连接,则返回null。检查此方法是否返回null应该足以判断是否有可用的Internet连接。

private boolean isDeviceConnected() {
    ConnectivityManager connectivityManager 
          = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkInfoActive = connectivityManager.getActiveNetworkInfo();
    return networkInfoActive != null && networkInfoActive.isConnected();
}

在此之后,您应该创建一个方法或将以下代码放入onCreate()方法以显示警报。

    if (isDeviceConnected()) {
        // do whatever you want to do
    } else {
        try {
            AlertDialog alertDialog = new AlertDialog.Builder(con).create();

            alertDialog.setTitle("Info");
            alertDialog
                    .setMessage("Internet not available, Cross check your internet connectivity and try again");
            alertDialog.setIcon(R.drawable.alerticon);
            alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    finish();
                }
            });

            alertDialog.show();
        } catch (Exception e) {
            Log.d(Constants.TAG, "Show Dialog: " + e.getMessage());
        }
    }

答案 1 :(得分:0)

您可以尝试以下代码:

ConnectivityManager manager = (ConnectivityManager) context
            .getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo i = manager.getActiveNetworkInfo();

boolean hasConnection = (i != null && i.isConnected() && i.isAvailable());

context应该是有效的Context对象。例如Activity