Android判断当前网络是否可用--示例代码(转载)
2013-12-21 15:39
716 查看
在Android平台上开发基于网络的应用,必然需要去判断当前的网络连接情况。下面的代码,作为例子,详细说明了对于当前网络情况的判断。
先看一个自己定义的应用类。
public class NetworkDetector {
public static boolean detect(Activity act) {
ConnectivityManager manager = (ConnectivityManager) act
.getApplicationContext().getSystemService(
Context.CONNECTIVITY_SERVICE);
if (manager == null) {
return false;
}
NetworkInfo networkinfo = manager.getActiveNetworkInfo();
if (networkinfo == null || !networkinfo.isAvailable()) {
return false;
}
return true;
}
}
这个类只有一个静态方法,用来检测当前系统的网络是否可用。如果可用,返回true。
还要进一步说明的是,NetworkInfo类中有一个方法getType(),这个方法可以用来判断当前可用的网络是wifi,还是mobile等等。
再来看使用的例子。
boolean networkState = NetworkDetector.detect(XXXActivity.this);
if (!networkState) {
DialogUtil.openMsgDialog(XXXActivity.this,
android.R.drawable.ic_dialog_info,
“网络不可用,是否现在设置网络?”, android.R.string.ok,
android.R.string.cancel,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
startActivityForResult(new Intent(
ACTION_WIRELESS_SETTINGS), 0);
}
}, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
}).show();
}
其中XXXActivity是我自己的Activity类,DialogUtil是我自己定义的Dialog应用类。这里的代码片段,是在判断没有网络的情况下,弹出dialog,提示用户是否进入系统的网络设置界面。
因为以上代码用到了权限,需要在AndroidManifest文件中加入如下权限代码:
<uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE" />
---------------------------------------------------------------------------
GL(arui319)
http://blog.csdn.net/arui319
<本文可以转载,但是请保留以上作者信息。谢谢。>
---------------------------------------------------------------------------
先看一个自己定义的应用类。
public class NetworkDetector {
public static boolean detect(Activity act) {
ConnectivityManager manager = (ConnectivityManager) act
.getApplicationContext().getSystemService(
Context.CONNECTIVITY_SERVICE);
if (manager == null) {
return false;
}
NetworkInfo networkinfo = manager.getActiveNetworkInfo();
if (networkinfo == null || !networkinfo.isAvailable()) {
return false;
}
return true;
}
}
这个类只有一个静态方法,用来检测当前系统的网络是否可用。如果可用,返回true。
还要进一步说明的是,NetworkInfo类中有一个方法getType(),这个方法可以用来判断当前可用的网络是wifi,还是mobile等等。
再来看使用的例子。
boolean networkState = NetworkDetector.detect(XXXActivity.this);
if (!networkState) {
DialogUtil.openMsgDialog(XXXActivity.this,
android.R.drawable.ic_dialog_info,
“网络不可用,是否现在设置网络?”, android.R.string.ok,
android.R.string.cancel,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
startActivityForResult(new Intent(
ACTION_WIRELESS_SETTINGS), 0);
}
}, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
}).show();
}
其中XXXActivity是我自己的Activity类,DialogUtil是我自己定义的Dialog应用类。这里的代码片段,是在判断没有网络的情况下,弹出dialog,提示用户是否进入系统的网络设置界面。
因为以上代码用到了权限,需要在AndroidManifest文件中加入如下权限代码:
<uses-permission
android:name="android.permission.ACCESS_NETWORK_STATE" />
---------------------------------------------------------------------------
GL(arui319)
http://blog.csdn.net/arui319
<本文可以转载,但是请保留以上作者信息。谢谢。>
---------------------------------------------------------------------------
相关文章推荐
- 让消费者当主导者,换个思维看运营
- Android中发送网络请求,弹出Dialog崩溃问题解决
- 神经网络设计_学习规则总结
- 谈一谈网络编程学习经验(06-08更新)
- [Jweb] httplook (来自360百科)
- [Jweb] httplook (来自360百科)
- Debian/Ubuntu常用的网络配置
- 高性能网络编程5--IO复用与并发编程
- poj1273基础网络流
- Linux 的常用系统及网络命令
- (6) HTTP Status 405 - HTTP method POST is not supported by this URL
- HTTP页面下载(CInternetSession 和 CHttpFile应用)
- TCPDemo
- 为wordpress配置https加密连接构造安全通道
- 网络安装CentOS6.4
- linux 下获取当前网络连接状态的两种方法
- 网络数据包拦截软件介绍
- struts2:JSP页面及Action中获取HTTP参数(parameter)的几种方式
- https网页打不开
- 黑马程序员——网络编程