当前位置:操作系统 > 安卓/Android >>

Android程序检测网络是否可用

首先在Activity里,定义一个检测网络状态的方法:
 
/**
* 对网络连接状态进行判断
* @return true, 可用; false, 不可用
*/
private boolean isOpenNetwork() {
ConnectivityManager connManager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if (connManager.getActiveNetworkInfo() != null) {
return connManager.getActiveNetworkInfo().isAvailable();
}
 
 
return false;
}
 
 
 
 
 
然后
 
/**
*网络可用就调用下一步需要进行的方法, 网络不可用则需设置
*/
private void initIntener() {
 
 
// 判断网络是否可用
if (isOpenNetwork() == true) {
// 网络可用,则开始加载。
initPross();//这里是我个人程序要进行网络加载的方法,根据自己的程序而定,灵活运用。
} else {
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder.setTitle("没有可用的网络").setMessage("是否对网络进行设置?");
 
 
builder.setPositiveButton("是", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = null;
 
 
try {
String sdkVersion = android.os.Build.VERSION.SDK;
if (Integer.valueOf(sdkVersion) > 10) {
intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS);
} else {
intent = new Intent();
ComponentName comp = new ComponentName("com.android.settings",
"com.android.settings.WirelessSettings");
intent.setComponent(comp);
intent.setAction("android.intent.action.VIEW");
}
MainActivity.this.startActivity(intent);
} catch (Exception e) {
// Log.w(TAG,
// "open network settings failed, please check...");
e.printStackTrace();
}
}
}).setNegativeButton("否", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
//finish();//因为网络不可用的状态,也是不让自己的程序结束运行, 这是根据个人需要设置。
Toast.makeText(MainActivity.this, "网络异常,加载失败!", Toast.LENGTH_SHORT).show();
initAll();//这里是没有网络的时候,又不需要手动设置,则显示出来的一个静态页面,根据个人需要。
}
}).show();
 
 
}
}
 
然后把initIntener();方法在Activity的初始化方法实现就行了,启动Activity首先进行网络检测,再执行其他方法。
 
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);// 去掉标题栏
setContentView(R.layout.main);
 
//检测网络是否可用
initIntener();
 
}
 
最后需要在AndroidManifest.xml里添加相关权限:
 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
 
 
<uses-permission android:name="android.permission.INTERNET" />
 
 
如有不对的地方,请大家多多指教。
 
补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,