手机是4G手机,4G2g 3g 4g那个信号强可以上网。但是有时候没4G2g 3g 4g那个信号强,只有2G,3G2g 3g 4g那个信号强的

Android Network --判断网络状态(网络的连接,改变,和判断2G/3G/4G)
现在app大多都需要从网络上获得数据。所以访问网络是在所难免。但是再访问网络之前,我们应该先做一下网络的状态判断。其实在访问网络之前我们要做一些状态判断,对应一些状态判断来做处理,并不是直接使用Http访问网络即可。很多人在开发就经常把网络这块直接跳过,直接访问网络,可以一断网,各种体验效果不好,不是说app没法用,只是体验效果差。还有,就是我们可能为用户考虑,因为现在一般连网是wifi和手机流量,都知道后者收费是比较高的。假如我们的app加载的图片或者有大的数据操作,可是用户的本意是要是在流量下的话就不要操作这些很费流量的的操作,这样就必须要我们做一些连网状态的判断。网络是否连接良好,连接的wifi还是流量,断网或者网络改变了的时候怎么做,这都是一些细节,但是要注意处理。
我们在做访问的时候都得进行判断是否连网。判断连网也比较简单,就用到了两个类。ConnectivityManager和NetworkInfo。
只要执行下面的代码就可以了。
ConnectivityManager connMgr = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr
.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
boolean isWifiConn = networkInfo.isConnected();
networkInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
boolean isMobileConn = networkInfo.isConnected();
只要有一个连接就是有网,NetworkInfo就是网络的信息。还有一种更简便的判断是否连网的方法。
ConnectivityManager connMgr = (ConnectivityManager) context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
在一个就是监听网络变化,就是设置一个广播。
注册广播,监听ConnectivityManager.CONNECTIVITY_ACTION这个action
IntentFilter filter = new IntentFilter(
ConnectivityManager.CONNECTIVITY_ACTION);
receiver = new NetworkReceiver();
context.registerReceiver(receiver, filter);
再实现一个广播类就可以了。这样网络一变化,就会受到广播,然后执行对应操作了。
public class NetworkReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
Log.i(&TAG&, &intent============&&&&& + intent.toString());
下面就是来说一下判断手机网络的类型了,2G,3G,4G
关于网络类型,在得到networkInfo = connMgr.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);这个后,确定是手机网络后,通过networkInfo.getSubtype()会得到网络的类型,用networkInfo.getSubtypeName()会得到网络的名字。
我们通过这个networkInfo.getSubtype()得到的类型来判断当前是什么网络。
其实,的Api中已经定义了各种网络状态,不是在ConnectivityManager里面定义的,而是在TelephonyManager里面的定义的。通过不同的api版本的修改,目前增加到了14个状态值:
下面是通过自己查资料,和看别人查资料实验得来的。整理如下:
--------------------Added in API level 1---------------------
public static final int NETWORK_TYPE_UNKNOWN
Network type is unknown
Constant Value: 0 (0x)
(不知道网络类型)
public static final int NETWORK_TYPE_GPRS
Current network is GPRS
Constant Value: 1 (0x)
(2.5G)移动和联通
public static final int NETWORK_TYPE_EDGE
Current network is EDGE
Constant Value: 2 (0x)
(2.75G)2.5G到3G的过渡
移动和联通
public static final int NETWORK_TYPE_UMTS
Current network is UMTS
Constant Value: 3 (0x)
-----------------Added in API level 4---------------------
public static final int NETWORK_TYPE_CDMA
Current network is CDMA: Either IS95A or IS95B
Constant Value: 4 (0x)
public static final int NETWORK_TYPE_EVDO_0
Current network is EVDO revision 0
Constant Value: 5 (0x)
( 3G )电信
public static final int NETWORK_TYPE_EVDO_A
Current network is EVDO revision A
Constant Value: 6 (0x)
(3.5G) 属于3G过渡
public static final int NETWORK_TYPE_1xRTT
Current network is 1xRTT
Constant Value: 7 (0x)
---------------------Added in API level 5--------------------
public static final int NETWORK_TYPE_HSDPA
Current network is HSDPA
Constant Value: 8 (0x)
public static final int NETWORK_TYPE_HSUPA
Current network is HSUPA
Constant Value: 9 (0x)
public static final int NETWORK_TYPE_HSPA
Current network is HSPA
Constant Value: 10 (0x0000000a)
( 3G )联通
--------------------------Added in API level 8-------------------------
public static final int NETWORK_TYPE_IDEN
Current network is iDen
Constant Value: 11 (0x0000000b)
--------------------------Added in API level 9-------------------------
public static final int NETWORK_TYPE_EVDO_B
Current network is EVDO revision B
Constant Value: 12 (0x0000000c)
--------------------------Added in API level 11------------------------
public static final int NETWORK_TYPE_LTE
Current network is LTE
Constant Value: 13 (0x0000000d)
public static final int NETWORK_TYPE_EHRPD
Current network is eHRPD
Constant Value: 14 (0x0000000e)
3G(3G到4G的升级产物)
--------------------------Added in API level 13---------------------------
public static final int NETWORK_TYPE_HSPAP
Current network is HSPA+
Constant Value: 15 (0x0000000f)
所以我们可以networkInfo.getSubtype()得到值和上面的进行对应,就知道目前是几G网络了。由于手里的手机卡有限,所以有些不全,欢迎大家补充,共享。
(window.slotbydup=window.slotbydup || []).push({
id: '2467140',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467141',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467143',
container: s,
size: '1000,90',
display: 'inlay-fix'
(window.slotbydup=window.slotbydup || []).push({
id: '2467148',
container: s,
size: '1000,90',
display: 'inlay-fix'手机是9008V,用了一个月左右,今天突然不显示4g信号了,用不上4g网络,只显示3g和2g信号,_百度知道
手机是9008V,用了一个月左右,今天突然不显示4g信号了,用不上4g网络,只显示3g和2g信号,
/zhidao/wh%3D600%2C800/sign=d2c50e2aa6c27d1ea156/9c16fdfaaf51f3deb27505ea96eef01f3b29797c;后面我补了一张4g卡还是这样://g.com/zhidao/pic/item/9c16fdfaaf51f3deb27505ea96eef01f3b29797c.hiphotos手机是9008V,用不上4g网络://g,只显示3g和2g信号.baidu,怎么办啊.jpg" target="_blank" title="点击查看大图" class="ikqb_img_alink"><img class="ikqb_img" src="http,我把我的4g卡上到别的4g手机上也没有4g信号显示,用不了4g,但是我同事的4g卡上到我手机上却能用4g,别人的可以上到我手机里用,用了一个月左右.hiphotos,连补了3张4g卡.baidu://g.com/zhidao/wh%3D450%2C600/sign=080e926baf6eddc426b2bcff0ceb9acb/9c16fdfaaf51f3deb27505ea96eef01f3b29797c.jpg" esrc="http,只有3g和2g信号,用的卡上到别人的手机和自己的手机都不行,显示也正常,之前都好好的<a href="http.hiphotos,今天突然不显示4g信号了!附上一张现在的截图
提问者采纳
然后拔打10086让客服重置我的号码信号后就好了这个情况我也遇到了。我买了新手机发现上不了4G。营业员帮我查了一下号码信息,换了台手机发现是卡的问题, 开始以为是手机问题。后来在移动营业部咨询准备要换卡(我的本身是4G卡),说我的号码没有4G业务信号。不知道能不能帮到你,换了张卡发现不是手机和卡的问题
提问者评价
太给力了,你的回答完美的解决了我的问题!
为您推荐:
其他1条回答
就不是你手机和卡的问题,你打电话,而是你卡业务的问题这样的话
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁最近移动的网络不稳定,一会4G,一会3G,一会2G,还是我手机的问题啊!
查看: 10408|回复: 10
最近移动的网络不稳定,一会4G,一会3G,一会2G,还是我手机的问题啊!求赐教,手机刚刚保修回来的
不是,应该是网络在调整,我也是这个情况,但是稳一下就回到4G了,也不算太影响
不是,应该是网络在调整,我也是这个情况,但是稳一下就回到4G了,也不算太影响
不是我手机的问题啊
不是我手机的问题啊
应该不是吧。。
应该不是吧。。
手机拿过去保修之后,才出现的问题,原来是充不上电,后来保修之后是上不了网了,有时候能上的
移动网络一向不稳定
我今天也出现了,关闭再打开4G后出现4G图标,但是过了一会又变成3G或者E,我家就住移动大楼附近,信号应该不会差,我也怀疑是手机问题,iPhone5s
移动信号问题,和手机没关系
我的5S这几天也是这情况,应该是网络问题
去年在乡下上班,4G手机4G流量余好多,2G3G流量严重超量,一月扣了60元流量费,操蛋的移动公司
客服:0 广告部:6
QQ:6078942 E-MAIL:
系统支持:
互联网电子公告专项批文号:苏通【号
版权所有:丹阳翼网文化传媒有限公司

我要回帖

更多关于 2g 3g 4g那个信号强 的文章

 

随机推荐