我正在尝试开发一款首先检查设备是否已连接到网络的应用。
如果是,则启动某些活动,否则其他活动将开始。
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" />
任何人都可以帮我解决这个问题并指出正确的方向吗?
答案 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 {
}