网络状态的判断
来源:互联网 发布:高洛峰细说php怎么样 编辑:程序博客网 时间:2024/05/17 08:07
网络状态的判断
1.判断当前的手机有没有连接互联网
//1.得到系统服务
ConnectivityManager manager=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
//2.得到网络信息对象
NetworkInfo networkInfo=manager.getActiveNetworkInfo()
//3.进行判断
if(networkInfo!=null && networkInfo.isConnected()){
Log.d("zzz","已连接互联网");
}else{
Log.d("zzz","未连接互联网");
}
注意:此段代码 需要添加权限 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
2.在连接互联网的情况下,判断网络类型
//1.得到网络类型
int type=netWorkInfo.getType()
switch(type){
case ConnectivityManager.TYPE_WIFI:
Log.d("zzz","wifi");---wifi数据
break;
case ConnnectivityManager.TYPE_MOBILE:
Log.d("zzz","mobile");--移动数据
break;
}
3.在连接互联网的情况下,如果是移动数据的话,判断具体是 什么类型的 2G/3G/4G
//得到详细的网络类型 wap 2G/3G/4G网络
public void getDetailMobileNetType(NetworkInfo netInfo){
String strNetworkType="";
//得到整数类型
int subtype = netInfo.getSubtype();
//得到名子
String _strSubTypeName=netInfo.getSubtypeName();
switch(subtype){
case TelephonyManager.NETWORK_TYPE_GPRS://联通2G
case TelephonyManager.NETWORK_TYPE_EDGE://移动2G
case TelephonyManager.NETWORK_TYPE_CDMA://电信2G
case TelephonyManager.NETWORK_TYPE_1xRTT:
case TelephonyManager.NETWORK_TYPE_IDEN: //api<8 : replace by 11
strNetworkType = "2G";
break;
case TelephonyManager.NETWORK_TYPE_UMTS:
case TelephonyManager.NETWORK_TYPE_EVDO_0:
case TelephonyManager.NETWORK_TYPE_EVDO_A:
case TelephonyManager.NETWORK_TYPE_HSDPA:
case TelephonyManager.NETWORK_TYPE_HSUPA:
case TelephonyManager.NETWORK_TYPE_HSPA:
case TelephonyManager.NETWORK_TYPE_EVDO_B: //api<9 : replace by 14
case TelephonyManager.NETWORK_TYPE_EHRPD: //api<11 : replace by 12
case TelephonyManager.NETWORK_TYPE_HSPAP: //api<13 : replace by 15
strNetworkType = "3G";
break;
case TelephonyManager.NETWORK_TYPE_LTE: //api<11 : replace by 13
strNetworkType = "4G";
break;
default:
// http://baike.baidu.com/item/TD-SCDMA 中国移动 联通 电信 三种3G制式
if (_strSubTypeName.equalsIgnoreCase("TD-SCDMA") || _strSubTypeName.equalsIgnoreCase("WCDMA") || _strSubTypeName.equalsIgnoreCase("CDMA2000"))
{
strNetworkType = "3G";
}
else
{
strNetworkType = _strSubTypeName;
}
break;
}
Log.d("zzz", "网络类型是:"+strNetworkType);
}
4.如果手机没有连接互联网,则跳转到设置页面进行网络设置
//弹出对话框
AlertDialog.Builder builder=new Builder(this);
builder.setTitle("网络设置提示");
builder.setMessage("网络连接不可用,是否进行设置?");
builder.setPositiveButton("设置", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//跳转到系统“设置" 网络的界面
Intent intent=new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS);
startActivity(intent);
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//关闭对话框
dialog.dismiss();
}
});
AlertDialog dialog = builder.create();
dialog.show();
阅读全文
0 0
- 网络状态的判断
- 网络状态的判断
- 网络状态的判断
- 网络状态的判断
- 网络状态的判断
- 判断网络的状态
- 网络状态的判断
- 判断网络状态的代码
- 判断Android的网络状态
- 判断网络状态的方法
- 判断当前的网络状态
- 判断当前网络的状态
- Android的网络状态判断
- android判断网络的状态断开与否
- 判断网络的状态断开与否
- 判断Adndroid手机的网络连接状态
- 判断zigbee设备的网络状态
- android判断网络的状态断开与否
- 代理模式
- ext中带单选框的grid在初始化的时候自动选中某些行
- 3秒跳转(第一次显示第二次直接跳转)
- Expecting "jsp:param" standard action with "name" and "value" attributes
- sql语句-按照汉字拼音首字母排序
- 网络状态的判断
- 秋雨萧萧选氿度-共享雨伞出现在南昌街头
- HDFS的快照管理
- java题(1)
- bzoj 1569: [JSOI2008]Blue Mary的职员分配
- TableLayout的使用注意项
- Springcloud源码篇
- devexpress15.2汉化包及教程
- 监狱犯人腕带定位解决方案