检查设备是否已连接到Web

时间:2012-02-07 13:52:04

标签: android

我正在尝试开发一款首先检查设备是否已连接到网络的应用。

如果是,则启动某些活动,否则其他活动将开始。

ConnectivityManager cm =(ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo ni = cm.getActiveNetworkInfo();
boolean isConnected = ni.isConnected();

if (isConnected) {
    //connected, do something online.
} else {
    //Not connected.  
}

当按下特定按钮时,我已将上述代码编写为事件。但是当我在模拟器上运行并按下该按钮时,我收到一条强制关闭消息。

注意:我已在清单文件中添加了活动,并且还声明了以下用户权限:

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

任何人都可以帮我解决这个问题并指出正确的方向吗?

2 个答案:

答案 0 :(得分:0)

试试这个:

hello.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View paramView) {
        net = isOnline();
        Toast.makeText(SampleActivity.this, "Hello", Toast.LENGTH_LONG).show();
    }
});

private boolean isOnline() {
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo netInfo = cm.getActiveNetworkInfo();
    if (netInfo != null && netInfo.isConnected()) {
        return true;
    } else {
        return false;
    }
}

在清单中添加权限:

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

答案 1 :(得分:0)

connec = (ConnectivityManager) context.getSystemService(context.CONNECTIVITY_SERVICE);

if (connec.getNetworkInfo(0).getState() == State.CONNECTED ||
    connec.getNetworkInfo(1).getState() == State.CONNECTED) {

} else {            

}