`
心雨心
  • 浏览: 355018 次
  • 性别: 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();
  
}

 

分享到:
评论

相关推荐

    C# 获取IMEI即获取移动设备手机串号手机编码号源代码

    在Android平台上,我们需要使用`TelephonyManager`类来获取IMEI。首先确保在AndroidManifest.xml中添加了必要的权限: ```xml ``` 然后在C#代码中,你可以通过Xamarin.Android的绑定库访问这些API: ```csharp ...

    android获取IMEI号码 手机版本信息

    总结,获取IMEI号码和手机版本信息是Android应用开发中常见的需求,主要通过`TelephonyManager`和`Build`类来实现。同时,对于涉及隐私的数据,如IMEI,需确保遵循相应的权限策略和用户隐私保护规定。TestIMEIpro...

    android平台获取手机IMSI,IMEI ,序列号,和 手机号的方法

    Android 操作系统提供了多种方法来获取手机的 IMSI、IMEI、序列号和手机号,这些信息对于移动应用程序的开发和维护非常重要。本文将详细介绍 Android 平台获取手机 IMSI、IMEI、序列号和手机号的方法。 1. 获取 ...

    获取手机IMEI号、手机型号等

    总结来说,IMEI号和手机型号是识别和区分移动设备的重要标识。IMEI号主要用于设备追踪和管理,而手机型号则反映了设备的品牌和规格。在开发移动应用时,掌握如何获取和利用这些信息对于优化用户体验和服务至关重要。

    获取手机号和IMEI.rar

    在Android系统中,获取设备的IMEI(International Mobile Equipment Identity)和手机号码是常见的操作,尤其对于开发者来说,这些信息在实现特定功能时至关重要。IMEI是设备的唯一标识符,而手机号码则关联到用户的...

    android与PC通过USB通信,获取IMEI号

    2. 编写获取IMEI的代码:在Service中,可以使用`TelephonyManager`类来获取IMEI: ```java TelephonyManager tm = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); String imei = tm.getDeviceId(); `...

    android获取IMEI号

    ### Android获取IMEI号:详解TelephonyManager类与设备识别码 在Android开发中,获取设备的唯一识别码(如IMEI号)是一项常见的需求,主要用于设备标识、数据分析或安全验证等场景。IMEI(International Mobile ...

    不同手机设备 获取IMEI

    随着技术的发展,现代智能手机的操作系统提供了更高级别的API来处理这类信息的获取,例如Android中的`TelephonyManager.getDeviceId()`方法。因此,在实际开发过程中,开发者应根据目标平台选择最合适的方式来获取...

    c#获取mobile手机的IMEI和IMSI

    在Windows Phone平台上,你可以使用DeviceInformation类来获取IMEI。首先,确保你的应用有访问设备标识的权限,然后可以使用以下代码: ```csharp using Windows.Phone.Management.DeviceInfo; //... var device...

    在JNI中得到手机IMEI号

    在移动应用开发过程中,有时我们需要获取Android设备的一些基本信息,例如IMEI(International Mobile Equipment Identity)号,这是一串由15位数字组成的唯一标识符,用于在全球范围内唯一识别每台移动设备。...

    [android平台][获取手机IMSI、IMEI、序列号及手机号的用法]

    在 Android 平台中,获取手机的 IMSI、IMEI、序列号及手机号是非常重要的,以下将详细介绍如何获取这些信息。 1. 获取运营商 SIM 卡 IMSI 号 使用 `android.os.SystemProperties` 类可以获取运营商 SIM 卡的 IMSI ...

    获取Android手机或平板唯一识别号(imei或meid).rar

    在Android中,可以使用TelephonyManager类来访问设备的电话相关信息。以下是如何获取IMEI的示例: ```java import android.content.Context; import android.telephony.TelephonyManager; public class DeviceInfo...

    【Android】获取IMEI码

    在API级别26(Android Oreo)之前,开发者可以简单地通过`TelephonyManager`类的`getDeviceId()`方法来获取IMEI码: ```java // 获取TelephonyManager实例 TelephonyManager tm = (TelephonyManager) ...

    获取手机IMEI号,sim卡的IMSI号C#源码

    总之,通过C#获取IMEI号和IMSI号涉及到对移动设备硬件和网络通信的理解,以及对相应平台API的熟悉。在开发过程中,需要遵守隐私法规,确保用户数据的安全。`MobileCore.cs`和`TapiLib.dll`是实现这些功能的关键组件...

    获取android手机信息

    以上知识点是Android开发中获取手机信息的基础,开发者可以根据需要结合这些API和类来实现相应的功能。在实际应用中,还需要考虑权限管理、用户隐私保护以及性能优化等问题。例如,获取敏感信息时必须确保已获取用户...

    Android 读取IMSI 和IMEI号支持双卡双待

    在Android系统中,IMSI(International Mobile Subscriber Identity)和IMEI(International Mobile Equipment Identity)是两个重要的标识符,用于区分不同的移动设备和用户。本文将深入探讨如何在Android平台上...

    Android获取手机号码和运营商信息的方法

    在Android平台上,获取手机...总的来说,获取Android设备的手机号码和运营商信息需要正确配置权限,并使用`TelephonyManager`类提供的方法。在实际应用中,还需要处理可能出现的异常和空值情况,确保用户体验的流畅性。

    Android代码-SIM卡运营商获取手机号码功能暂时无法实现.zip

    - 使用`TelephonyManager`类:在较旧的Android版本中,可以使用`TelephonyManager`来获取SIM卡运营商信息,但无法直接获取手机号码。 ```java TelephonyManager telephonyManager = (TelephonyManager) context....

Global site tag (gtag.js) - Google Analytics