droid系统中使用TelephonyManager类来获取imei号和其他手机信息

在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();
  
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值