Android程序检测网络是否可用
在做Android应用程序中,连接网络的时候,常常要用到检测网络状态是否可用,在这里分享一个比较好用的方法。
本人参考:http://blog.csdn.net/sunboy_2050/article/details/7896313 在此只作记录,感谢原作者。
首先在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程序检测网络是否可用的更多相关文章
- android 检测网络是否可用
/** * 检测网络是否可用 * * @return */ public boolean isNetworkConnected() { Conne ...
- Android检测网络是否可用并获取网络类型
在类中使用getSystemService的时候需要这样进行使用:1. public class JajaMenu extends Activity { public static JajaMenu ...
- Android判断当前网络是否可用--示例代码
Android判断当前网络是否可用--示例代码 分类: *07 Android 2011-05-24 13:46 7814人阅读 评论(4) 收藏 举报 网络androiddialogmanagern ...
- Android 检查手机网络是否可用
添加网络状态权限 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 代 ...
- Android之检查网络是否可用(跳转网络设置页面)
private boolean NetWorkStatus() { ConnectivityManager cwjManager = (ConnectivityManager) getSystemSe ...
- android——判断当前网络是否可用
http://www.cnblogs.com/codeworker/archive/2012/04/23/2467180.html //判断当前是否有网络连接 private boolean isCo ...
- 判断是否联网_检测网络的类型为3G、2G、wap、wifi
判断是否联网_检测网络的类型为3G.2G.wap.wifi 判断是否联网: /*** * judge Internet is available * * @author wei-spring * @ ...
- UWP 检测网络状态
最近发现Community Toolkit有了网络辅助类,貌似很早就有了... 很不错,还是用.给大家分享一下. 1. 检测网络是否可用 2. 检测网络是否是计费模式? 3. 检测网络接入类型 4. ...
- android 检测网络是否连接,或者GPS是否可用
很多android程序在打开时,检测网络是否连接,或者GPS是否可用: 1.网络是否连接(包括Wifi和移动网络) // 是否有可用网络 private boolean isNetworkConnec ...
随机推荐
- server配置学习 ---- 关闭防火墙
iptables 一种网络防火墙,在LINUX下使用,RedHat9.0版本号以上自带. 它能够实现NAT转换.能够做上网代理. 首先对于server的配置第一步来说就是关闭防火墙.在没有图形化中的l ...
- MySQL 讨厌哪种类型的查询
㈠ 任何查询都讨厌 只要是查询.MySQL都讨厌.执行查询最快的方式就是不去执行 缓存为王.比如Redis或者memcache ㈡ 查 ...
- sqlserver 三种恢复模式
sql server数据库提供了三种恢复模式:完整,简单和大容量日志,这些模式决定了sql server如何使用事务日志,如何选择它要记录的操作,以及是否截断日志.截断事务日志是删除己执行事务并把该日 ...
- c#中的委托使用(方法的调用, 和类的实话)
方法的调用 delegate int test1(int a); class Program { static int num = 10; static void Main(string[] args ...
- [Swust OJ 1026]--Egg pain's hzf
题目链接:http://acm.swust.edu.cn/problem/1026/ Time limit(ms): 3000 Memory limit(kb): 65535 hzf ...
- Oracle自带的exception
存储过程中自带的exception: --查询人员资料历史 BEGIN SELECT * INTO Po_Sac01 FROM Sac01 WHERE Aac001 = Pi_Aac001 ); EX ...
- paip.输入法编程---输入法ATIaN历史记录 c823
paip.输入法编程---输入法ATIaN历史记录 c823 作者Attilax , EMAIL:1466519819@qq.com 来源:attilax的专栏 地址:http://blog.csd ...
- E. Riding in a Lift(Codeforces Round #274)
E. Riding in a Lift time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- ONOS系统架构演进,实现高可用性解决方案
上一篇文章<ONOS高可用性和可扩展性实现初探>讲到了ONOS系统架构在高可用.可扩展方面技术概况,提到了系统在分布式集群中怎样保证数据的一致性.在数据终于一致性方面,ONOS採用了Gos ...
- busybox 致命错误: curses.h:没有那个文件或文件夹
$:~/dd/busybox-1.19.3$ make menuconfig HOSTCC scripts/basic/fixdep HOSTCC scripts/basic/split- ...