如何识别安卓可用网络中的信号种类??? 系统升级后 完全就变了 气死我了 如图 现在只显

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何识别安卓可用网络中的信号种类??? 系统升级后 完全就变了 气死我了 如图 现在只显相关的知识,希望对你有一定的参考价值。

如何识别安卓可用网络中的信号种类???

系统升级后 完全就变了 气死我了
如图 现在只显示中国联通 这4个字 完全不知道信号种类 以前的话 中国联通4G 中国联通3G 中国联通2G 都一个一个单独显示出来

一、 数据连接状态
获取数据连接状态:int getDataState()
获取数据活动状态:int getDataActivity()
常用的有这几个:
int DATA_ACTIVITY_IN 数据连接状态:活动,正在接受数据
int DATA_ACTIVITY_OUT 数据连接状态:活动,正在发送数据
int DATA_ACTIVITY_INOUT 数据连接状态:活动,正在接受和发送数据
int DATA_ACTIVITY_NONE 数据连接状态:活动,但无数据发送和接受
int DATA_CONNECTED 数据连接状态:已连接
int DATA_CONNECTING 数据连接状态:正在连接
int DATA_DISCONNECTED 数据连接状态:断开
int DATA_SUSPENDED 数据连接状态:暂停
二、 移动网络类型
获取网络类型:int getNetworkType()
常用的有这几个:
int NETWORK_TYPE_CDMA 网络类型为CDMA
int NETWORK_TYPE_EDGE 网络类型为EDGE
int NETWORK_TYPE_EVDO_0 网络类型为EVDO0
int NETWORK_TYPE_EVDO_A 网络类型为EVDOA
int NETWORK_TYPE_GPRS 网络类型为GPRS
int NETWORK_TYPE_HSDPA 网络类型为HSDPA
int NETWORK_TYPE_HSPA 网络类型为HSPA
int NETWORK_TYPE_HSUPA 网络类型为HSUPA
int NETWORK_TYPE_UMTS 网络类型为UMTS
在中国,联通的3G为UMTS或HSDPA,移动和联通的2G为GPRS或EGDE,电信的2G为CDMA,电信的3G为EVDO
三、 手机制式类型
获取手机制式:int getPhoneType()
int PHONE_TYPE_CDMA 手机制式为CDMA,电信
int PHONE_TYPE_GSM 手机制式为GSM,移动和联通
int PHONE_TYPE_NONE 手机制式未知
四、 SIM卡状态
获取SIM卡状态:int getSimState()
int SIM_STATE_ABSENT SIM卡未找到
int SIM_STATE_NETWORK_LOCKED SIM卡网络被锁定,需要Network PIN解锁
int SIM_STATE_PIN_REQUIRED SIM卡PIN被锁定,需要User PIN解锁
int SIM_STATE_PUK_REQUIRED SIM卡PUK被锁定,需要User PUK解锁
int SIM_STATE_READY SIM卡可用
int SIM_STATE_UNKNOWN SIM卡未知
五、其它信息
String getSimCountryIso()
返回SIM卡提供商的国家代码
String getNetworkCountryIso()
返回ISO标准的国家码,即国际长途区号
String getSimOperator()
String getNetworkOperator()
返回MCC+MNC代码 (SIM卡运营商国家代码和运营商网络代码)(IMSI)
String getSimOperatorName()
String getNetworkOperatorName()
返回移动网络运营商的名字(SPN)
String getSubscriberId()
返回IMSI,即国际移动用户识别码
String getDeviceId()
如果是GSM网络,返回IMEI;如果是CDMA网络,返回MEID
String getSimSerialNumber()
返回SIM卡的序列号(IMEI)
String getLine1Number()
返回手机号码,对于GSM网络来说即MSISDN
boolean isNetworkRoaming()
返回手机是否处于漫游状态
****************************************************************************************************************************************************
androidManifest.xml文件中增加
<!--允许读取电话状态SIM的权限-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
代码如下:

private void getSystemPhoneMessage()

TelephonyManager telephonyManager = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
//手机串号:GSM手机的 IMEI 和 CDMA手机的 MEID.
String deviceID = telephonyManager.getDeviceId();
//手机号(有些手机号无法获取,是因为运营商在SIM中没有写入手机号)
String tel = telephonyManager.getLine1Number();
//获取手机SIM卡的序列号
String imei =telephonyManager.getSimSerialNumber();
//获取客户id,在gsm中是imsi号
String imsi =telephonyManager.getSubscriberId();
//电话方位
CellLocation str = telephonyManager.getCellLocation();
//运营商名称,注意:仅当用户已在网络注册时有效,在CDMA网络中结果也许不可靠
String networkoperatorName = telephonyManager.getNetworkOperatorName();
//取得和语音邮件相关的标签,即为识别符
String voiceMail = telephonyManager.getVoiceMailAlphaTag();
//获取语音邮件号码:
String voiceMailNumber = telephonyManager.getVoiceMailNumber();
//获取ISO国家码,相当于提供SIM卡的国家码。
String simCountryIso = telephonyManager.getSimCountryIso();

/**
* 电话状态:
* 1.tm.CALL_STATE_IDLE=0 无活动
* 2.tm.CALL_STATE_RINGING=1 响铃
* 3.tm.CALL_STATE_OFFHOOK=2 摘机
*/
int callState = telephonyManager.getCallState();

/**
* 设备的软件版本号:
* 例如:the IMEI/SV(software version) for GSM phones.
* Return null if the software version is not available.
*/
String devicesoftware = telephonyManager.getDeviceSoftwareVersion();

/**
* 获取ISO标准的国家码,即国际长途区号。
* 注意:仅当用户已在网络注册后有效。
* 在CDMA网络中结果也许不可靠。
*/
String networkCountry = telephonyManager.getNetworkCountryIso();

/**
* MCC+MNC(mobile country code + mobile network code)
* 注意:仅当用户已在网络注册时有效。
* 在CDMA网络中结果也许不可靠。
*/
String networkoperator = telephonyManager.getNetworkOperator();

/**
* 当前使用的网络类型:
* 例如: NETWORK_TYPE_UNKNOWN 网络类型未知 0
NETWORK_TYPE_GPRS GPRS网络 1
NETWORK_TYPE_EDGE EDGE网络 2
NETWORK_TYPE_UMTS UMTS网络 3
NETWORK_TYPE_HSDPA HSDPA网络 8
NETWORK_TYPE_HSUPA HSUPA网络 9
NETWORK_TYPE_HSPA HSPA网络 10
NETWORK_TYPE_CDMA CDMA网络,IS95A 或 IS95B. 4
NETWORK_TYPE_EVDO_0 EVDO网络, revision 0. 5
NETWORK_TYPE_EVDO_A EVDO网络, revision A. 6
NETWORK_TYPE_1xRTT 1xRTT网络 7
*/
int netWorkType = telephonyManager.getNetworkType();

/**
* 手机类型:
* 例如: PHONE_TYPE_NONE 无信号
PHONE_TYPE_GSM GSM信号
PHONE_TYPE_CDMA CDMA信号
*/
int phoneType = telephonyManager.getPhoneType();

/**
* 获取SIM卡提供的移动国家码和移动网络码.5或6位的十进制数字.
* SIM卡的状态必须是 SIM_STATE_READY(使用getSimState()判断).
*/
String simOperator = telephonyManager.getSimOperator();

/**
* 服务商名称:
* 例如:中国移动、联通
* SIM卡的状态必须是 SIM_STATE_READY(使用getSimState()判断).
*/
String simOperatorName = telephonyManager.getSimOperatorName();

/**
* SIM的状态信息:
* SIM_STATE_UNKNOWN 未知状态 0
SIM_STATE_ABSENT 没插卡 1
SIM_STATE_PIN_REQUIRED 锁定状态,需要用户的PIN码解锁 2
SIM_STATE_PUK_REQUIRED 锁定状态,需要用户的PUK码解锁 3
SIM_STATE_NETWORK_LOCKED 锁定状态,需要网络的PIN码解锁 4
SIM_STATE_READY 就绪状态 5
*/
int simStat = telephonyManager.getSimState();

/**
* ICC卡是否存在
*/
boolean bl= telephonyManager.hasIccCard();
/**
* 是否漫游:
* (在GSM用途下)
*/
boolean blean = telephonyManager.isNetworkRoaming();
/**
* 附近的电话的信息:
* 类型:List<NeighboringCellInfo>
* 需要权限:android.Manifest.permission#ACCESS_COARSE_UPDATES
*/
List<NeighboringCellInfo> list = telephonyManager.getNeighboringCellInfo();//List<NeighboringCellInfo>
/**
* 获取数据连接状态
*/
int dataActivty = telephonyManager.getDataActivity();
参考技术A 版本信息追答

3G的

追问

我要的是直接在一定界面知道

这个界面

追答

这个界面是原来的?

追问

这个才是原来的

追答

用QQ时别人可以看出来

应该是4G的

追问

我不是要去连接

只想查看附近覆盖的网络类型

追答

如果不行就刷原来的刷机包

不懂。。

追问

就是说

我想直接搜网的时候不连接的情况下识别是234g

现在的情况是就写着中国联通

连上了才知道有什么

假如说

我没4g套餐 现在的情况就是我根本不知道有没覆盖4g 因为不再显示了

只有连接成功才知道

本回答被提问者采纳
参考技术B 以前在左边现在改右边了追答

右边信号的地方不是有吗

追问

什么?

以前是这样

追答

现在是自动的

优先选择好的网络

追问

没看懂我的问题吗

参考技术C 非高级网络。也并不是互联网应该是一般的移动网络追问

有没看懂我佛问题

有没看懂我的问题???

参考技术D 看正上方,写着3G呢追问

我要的是在这个界面里知道

升级鸿蒙系统手机网络信号变差了,这是为什么?

升级鸿蒙系统手机网络信号变差了,这是为什么?

我的手机是 荣耀P20,升级了鸿蒙后,手机信号变差了,哪位大神可以帮我解答一下?

以上是关于如何识别安卓可用网络中的信号种类??? 系统升级后 完全就变了 气死我了 如图 现在只显的主要内容,如果未能解决你的问题,请参考以下文章

oppo手机怎么升级安卓系统?

OBOO鸥柏安卓广告机怎么刷固件升级?

安卓手机怎么提升网速

升级鸿蒙系统手机网络信号变差了,这是为什么?

升级鸿蒙系统手机网络信号变差了,这是为什么?

升级鸿蒙系统手机网络信号变差了,这是为什么?