在AndroidManifest.xml文件中增加
<!--允许读取电话状态SIM的权限-->
<uses-permissionandroid: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(softwareversion) for GSM phones.
* Return null if the software versionis 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();
}
android 获取设备信息
最新推荐文章于 2023-02-15 09:49:31 发布