如何判断Android是否连接网络?

Java代码:

ConnectivityManager conn = (ConnectivityManager) getSystemService(Activity.CONNECTIVITY_SERVICE);
boolean wifi = conn.getNetworkInfo(ConnectivityManager.TYPE_WIFI).isConnectedOrConnecting();
boolean internet = conn.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).isConnectedOrConnecting();
if (wifi | internet) {
Toast.makeText(getApplicationContext(), "网络已连接", Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getApplicationContext(), "未连接网络。", Toast.LENGTH_LONG).show();
}

AndroidManifest.xml添加权限:

 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

================我是分割线====================

Android判断设备网络连接状态,并判断连接方式

如何判断Android设备网络连接状态,并判断连接方式?

--调用checkNetworkState方法--

    ConnectivityManager manager;
/*检测网络是否连接*/
private boolean checkNetworkState() {
boolean flag = false;
//得到网络连接信息
manager = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
//去进行判断网络是否连接
if (manager.getActiveNetworkInfo() != null) {
flag = manager.getActiveNetworkInfo().isAvailable();
}
if (!flag) {
setNetwork();//设置网络
} else {
isNetworkAvailable();//判断连接方式
}
return flag;
} /* 网络已连接,判断连接方式 */
private void isNetworkAvailable() {
State gprs = manager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState();
State wifi = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState();
if (gprs == State.CONNECTED || gprs == State.CONNECTING) {
Toast.makeText(this, "网络已连接!连接方式:gprs", Toast.LENGTH_SHORT).show();
}
if (wifi == State.CONNECTED || wifi == State.CONNECTING) {
Toast.makeText(this, "网络已连接!连接方式:wifi", Toast.LENGTH_SHORT).show();
// do something: wifi状态下才能做某事
}
} /* 网络未连接,调用设置方法 */
private void setNetwork() {
Toast.makeText(this, "网络未连接。", Toast.LENGTH_SHORT).show();
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setIcon(R.drawable.ic_launcher);
builder.setTitle("网络提示信息");
builder.setMessage("网络不可用,如果继续,请先设置网络!");
builder.setPositiveButton("设置", new OnClickListener() { @Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = null;
/*
* 判断手机系统,如果API>10 就是3.0+ 3.0以上和3.0以上设置不一样, 调用的方法不一样
*/
if (android.os.Build.VERSION.SDK_INT > ) {
intent = new Intent(android.provider.Settings.ACTION_WIFI_SETTINGS);
} else {
intent = new Intent();
ComponentName component = new ComponentName("com.android.settings",
"com.android.settings.WirelessSettings");
intent.setComponent(component);
intent.setAction("android.intent.action.VIEW");
}
startActivity(intent);
}
}); builder.setNegativeButton("取消", new OnClickListener() { @Override
public void onClick(DialogInterface dialog, int which) { }
}); builder.create();
builder.show(); }

最新文章

  1. linux python升级和ipython的安装
  2. 转载:学习Entity Framework 中的Code First
  3. hdu2896 病毒侵袭 ac自动机
  4. css的小问题总结
  5. Diablo3
  6. zsh(yum装包的时候,有时候会不行)
  7. 0(Mark)(随时添加) ubuntu的一些 终端 命令整理
  8. POJ 1401
  9. 对mysql进行分表
  10. avalon - 初步接触
  11. Cognos 11.0快速开发指南 Ⅱ
  12. eclipse乱码解决
  13. 通过ip查询自己电脑的共享文件夹
  14. 在linux系统中实现各项监控的关键技术(2)--内核态与用户态进程之间的通信netlink
  15. java学习-- equals和hashCode的关系
  16. 【HDU5831】Rikka with Parenthesis II(括号)
  17. asyncio queue
  18. Python操作excel的几种方式--xlrd、xlwt、openpyxl
  19. php初级之数组与 类初级
  20. 【代码笔记】iOS-在导航栏中显示等待对话框

热门文章

  1. WijmoJS 中自定义 React 菜单和列表项模板
  2. Oracle系统权限与对象权限
  3. HDU 4123 Bob’s Race 树的直径+ST表
  4. GCD和LCM
  5. zabbix-自定义告警(二)
  6. sp_addlinkedserver 跨服务器连接数据库查询
  7. 【原创】大叔经验分享(56)hue导出行数限制
  8. 输入列号得到excel对应的字母列
  9. js对象的所有方法
  10. centos7初始化bashshell脚本