Android判断当前网络是否可用--示例代码
在Android平台上开发基于网络的应用,必然需要去判断当前的网络连接情况。下面的代码,作为例子,详细说明了对于当前网络情况的判断。
首先需要在AndroidManifest文件中加入如下权限代码:
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
先看一个自己定义的应用类:
01.public class NetworkDetector { 02. 03. public static boolean detect(Activity act) { 04. 05. ConnectivityManager manager = (ConnectivityManager) act 06. .getApplicationContext().getSystemService( 07. Context.CONNECTIVITY_SERVICE); 08. 09. if (manager == null) { 10. return false; 11. } 12. 13. NetworkInfo networkinfo = manager.getActiveNetworkInfo(); 14. 15. if (networkinfo == null || !networkinfo.isAvailable()) { 16. return false; 17. } 18. 19. return true; 20. } 21.}
这个类只有一个静态方法,用来检测当前系统的网络是否可用。如果可用,返回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,提示用户是否进入系统的网络设置界面。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
文章为转发,文章来源:
GL(arui319)
http://blog.csdn.net/arui319
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~