`
心雨心
  • 浏览: 351557 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

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卡提供的移动国家码和移动网络码.56位的十进制数字.
   * 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();
  
}

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics