网络状态的判断
来源:互联网 发布:java数组转成json 编辑:程序博客网 时间:2024/05/16 12:15
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判断网络的状态断开与否
- JackKnife开发专题-方便快捷的IOC框架
- 修改CentOS7的网卡名为eth0
- Redis Cluster迁移目标节点宕机下填坑
- 【数字化】数字化转型成功的企业都发生了什么变化?
- html-webpack-plugin详解
- 网络状态的判断
- Django框架全面讲解 -- Session
- 最小二乘GAN:比常规GAN更稳定,比WGAN收敛更迅速
- 工作中规则感悟
- 头条丨2017年人工智能年报
- Tensorflow(r1.4)API--tf.summary.scalar
- Python虚拟环境virtualenv
- 业界丨美国的人工智能企业在研发哪些有趣的AI产品?
- 现场|除了谷歌AI中国中心成立的重磅消息,谷歌开发者大会现场还有这些