使用TelephonyManager类可以得到很多关于手机的信息

 
  1. import android.app.Activity;  
  2. import android.os.Bundle;  
  3. import android.telephony.CellLocation;  
  4. import android.telephony.PhoneStateListener;  
  5. import android.telephony.TelephonyManager;  
  6. public class TelManager extends Activity {  
  7.  
  8. @Override 
  9. protected void onCreate(Bundle savedInstanceState) {  
  10.   super.onCreate(savedInstanceState);  
  11.   TelephonyManager tm = (TelephonyManager) this.getSystemService(TELEPHONY_SERVICE);  
  12.     
  13.   /*  
  14.    * 电话状态:  
  15.    * 1.tm.CALL_STATE_IDLE=0          无活动  
  16.    * 2.tm.CALL_STATE_RINGING=1  响铃  
  17.    * 3.tm.CALL_STATE_OFFHOOK=2  摘机  
  18.    */ 
  19.   tm.getCallState();//int  
  20.     
  21.   /*  
  22.    * 电话方位:  
  23.    *   
  24.    */ 
  25.   tm.getCellLocation();//CellLocation  
  26.     
  27.   /*  
  28.    * 唯一的设备ID:  
  29.    * GSM手机的 IMEI 和 CDMA手机的 MEID.   
  30.    * Return null if device ID is not available.  
  31.    */ 
  32.   tm.getDeviceId();//String  
  33.     
  34.   /*  
  35.    * 设备的软件版本号:  
  36.    * 例如:the IMEI/SV(software version) for GSM phones.  
  37.    * Return null if the software version is not available.   
  38.    */ 
  39.   tm.getDeviceSoftwareVersion();//String  
  40.     
  41.   /*  
  42.    * 手机号:  
  43.    * GSM手机的 MSISDN.  
  44.    * Return null if it is unavailable.   
  45.    */ 
  46.   tm.getLine1Number();//String  
  47.     
  48.   /*  
  49.    * 附近的电话的信息:  
  50.    * 类型:List<NeighboringCellInfo>   
  51.    * 需要权限:android.Manifest.permission#ACCESS_COARSE_UPDATES  
  52.    */ 
  53.   tm.getNeighboringCellInfo();//List<NeighboringCellInfo>  
  54.     
  55.   /*  
  56.    * 获取ISO标准的国家码,即国际长途区号。  
  57.    * 注意:仅当用户已在网络注册后有效。  
  58.    *       在CDMA网络中结果也许不可靠。  
  59.    */ 
  60.   tm.getNetworkCountryIso();//String  
  61.     
  62.   /*  
  63.    * MCC+MNC(mobile country code + mobile network code)  
  64.    * 注意:仅当用户已在网络注册时有效。  
  65.    *    在CDMA网络中结果也许不可靠。  
  66.    */ 
  67.   tm.getNetworkOperator();//String  
  68.     
  69.   /*  
  70.    * 按照字母次序的current registered operator(当前已注册的用户)的名字  
  71.    * 注意:仅当用户已在网络注册时有效。  
  72.    *    在CDMA网络中结果也许不可靠。  
  73.    */ 
  74.   tm.getNetworkOperatorName();//String  
  75.     
  76.   /*  
  77.    * 当前使用的网络类型:  
  78.    * 例如: NETWORK_TYPE_UNKNOWN  网络类型未知  0  
  79.      NETWORK_TYPE_GPRS     GPRS网络  1  
  80.      NETWORK_TYPE_EDGE     EDGE网络  2  
  81.      NETWORK_TYPE_UMTS     UMTS网络  3  
  82.      NETWORK_TYPE_HSDPA    HSDPA网络  8   
  83.      NETWORK_TYPE_HSUPA    HSUPA网络  9  
  84.      NETWORK_TYPE_HSPA     HSPA网络  10  
  85.      NETWORK_TYPE_CDMA     CDMA网络,IS95A 或 IS95B.  4  
  86.      NETWORK_TYPE_EVDO_0   EVDO网络, revision 0.  5  
  87.      NETWORK_TYPE_EVDO_A   EVDO网络, revision A.  6  
  88.      NETWORK_TYPE_1xRTT    1xRTT网络  7  
  89.    */ 
  90.   tm.getNetworkType();//int  
  91.     
  92.   /*  
  93.    * 手机类型:  
  94.    * 例如: PHONE_TYPE_NONE  无信号  
  95.      PHONE_TYPE_GSM   GSM信号  
  96.      PHONE_TYPE_CDMA  CDMA信号  
  97.    */ 
  98.   tm.getPhoneType();//int  
  99.     
  100.   /*  
  101.    * Returns the ISO country code equivalent for the SIM provider's country code.  
  102.    * 获取ISO国家码,相当于提供SIM卡的国家码。  
  103.    *   
  104.    */ 
  105.   tm.getSimCountryIso();//String  
  106.     
  107.   /*  
  108.    * Returns the MCC+MNC (mobile country code + mobile network code) of the provider of the SIM. 5 or 6 decimal digits.  
  109.    * 获取SIM卡提供的移动国家码和移动网络码.5或6位的十进制数字.  
  110.    * SIM卡的状态必须是 SIM_STATE_READY(使用getSimState()判断).  
  111.    */ 
  112.   tm.getSimOperator();//String  
  113.     
  114.   /*  
  115.    * 服务商名称:  
  116.    * 例如:中国移动、联通  
  117.    * SIM卡的状态必须是 SIM_STATE_READY(使用getSimState()判断).  
  118.    */ 
  119.   tm.getSimOperatorName();//String  
  120.     
  121.   /*  
  122.    * SIM卡的序列号:  
  123.    * 需要权限:READ_PHONE_STATE  
  124.    */ 
  125.   tm.getSimSerialNumber();//String  
  126.     
  127.   /*  
  128.    * SIM的状态信息:  
  129.    *  SIM_STATE_UNKNOWN          未知状态 0  
  130.    SIM_STATE_ABSENT           没插卡 1  
  131.    SIM_STATE_PIN_REQUIRED     锁定状态,需要用户的PIN码解锁 2  
  132.    SIM_STATE_PUK_REQUIRED     锁定状态,需要用户的PUK码解锁 3  
  133.    SIM_STATE_NETWORK_LOCKED   锁定状态,需要网络的PIN码解锁 4  
  134.    SIM_STATE_READY            就绪状态 5  
  135.    */ 
  136.   tm.getSimState();//int  
  137.     
  138.   /*  
  139.    * 唯一的用户ID:  
  140.    * 例如:IMSI(国际移动用户识别码) for a GSM phone.  
  141.    * 需要权限:READ_PHONE_STATE  
  142.    */ 
  143.   tm.getSubscriberId();//String  
  144.     
  145.   /*  
  146.    * 取得和语音邮件相关的标签,即为识别符  
  147.    * 需要权限:READ_PHONE_STATE  
  148.    */ 
  149.   tm.getVoiceMailAlphaTag();//String  
  150.     
  151.   /*  
  152.    * 获取语音邮件号码:  
  153.    * 需要权限:READ_PHONE_STATE  
  154.    */ 
  155.   tm.getVoiceMailNumber();//String  
  156.     
  157.   /*  
  158.    * ICC卡是否存在  
  159.    */ 
  160.   tm.hasIccCard();//boolean  
  161.     
  162.   /*  
  163.    * 是否漫游:  
  164.    * (在GSM用途下)  
  165.    */ 
  166.   tm.isNetworkRoaming();//  
  167.     
  168.     
  169.     
  170. }  
  171.  
  172.  
  173. }  
  174. /**  
  175. *  
  176. *@author dingran  
  177. *创建日期 2010-4-29 下午05:02:47  
  178. *  
  179. */ 
  180. package net.sunniwell.app;  
  181. import android.app.Activity;  
  182. import android.os.Bundle;  
  183. import android.telephony.CellLocation;  
  184. import android.telephony.PhoneStateListener;  
  185. import android.telephony.TelephonyManager;  
  186. public class TelManager extends Activity {  
  187.  
  188. @Override 
  189. protected void onCreate(Bundle savedInstanceState) {  
  190.   super.onCreate(savedInstanceState);  
  191.   TelephonyManager tm = (TelephonyManager) this.getSystemService(TELEPHONY_SERVICE);  
  192.     
  193.   /*  
  194.    * 电话状态:  
  195.    * 1.tm.CALL_STATE_IDLE=0          无活动  
  196.    * 2.tm.CALL_STATE_RINGING=1  响铃  
  197.    * 3.tm.CALL_STATE_OFFHOOK=2  摘机  
  198.    */ 
  199.   tm.getCallState();//int  
  200.     
  201.   /*  
  202.    * 电话方位:  
  203.    *   
  204.    */ 
  205.   tm.getCellLocation();//CellLocation  
  206.     
  207.   /*  
  208.    * 唯一的设备ID:  
  209.    * GSM手机的 IMEI 和 CDMA手机的 MEID.   
  210.    * Return null if device ID is not available.  
  211.    */ 
  212.   tm.getDeviceId();//String  
  213.     
  214.   /*  
  215.    * 设备的软件版本号:  
  216.    * 例如:the IMEI/SV(software version) for GSM phones.  
  217.    * Return null if the software version is not available.   
  218.    */ 
  219.   tm.getDeviceSoftwareVersion();//String  
  220.     
  221.   /*  
  222.    * 手机号:  
  223.    * GSM手机的 MSISDN.  
  224.    * Return null if it is unavailable.   
  225.    */ 
  226.   tm.getLine1Number();//String  
  227.     
  228.   /*  
  229.    * 附近的电话的信息:  
  230.    * 类型:List<NeighboringCellInfo>   
  231.    * 需要权限:android.Manifest.permission#ACCESS_COARSE_UPDATES  
  232.    */ 
  233.   tm.getNeighboringCellInfo();//List<NeighboringCellInfo>  
  234.     
  235.   /*  
  236.    * 获取ISO标准的国家码,即国际长途区号。  
  237.    * 注意:仅当用户已在网络注册后有效。  
  238.    *       在CDMA网络中结果也许不可靠。  
  239.    */ 
  240.   tm.getNetworkCountryIso();//String  
  241.     
  242.   /*  
  243.    * MCC+MNC(mobile country code + mobile network code)  
  244.    * 注意:仅当用户已在网络注册时有效。  
  245.    *    在CDMA网络中结果也许不可靠。  
  246.    */ 
  247.   tm.getNetworkOperator();//String  
  248.     
  249.   /*  
  250.    * 按照字母次序的current registered operator(当前已注册的用户)的名字  
  251.    * 注意:仅当用户已在网络注册时有效。  
  252.    *    在CDMA网络中结果也许不可靠。  
  253.    */ 
  254.   tm.getNetworkOperatorName();//String  
  255.     
  256.   /*  
  257.    * 当前使用的网络类型:  
  258.    * 例如: NETWORK_TYPE_UNKNOWN  网络类型未知  0  
  259.      NETWORK_TYPE_GPRS     GPRS网络  1  
  260.      NETWORK_TYPE_EDGE     EDGE网络  2  
  261.      NETWORK_TYPE_UMTS     UMTS网络  3  
  262.      NETWORK_TYPE_HSDPA    HSDPA网络  8   
  263.      NETWORK_TYPE_HSUPA    HSUPA网络  9  
  264.      NETWORK_TYPE_HSPA     HSPA网络  10  
  265.      NETWORK_TYPE_CDMA     CDMA网络,IS95A 或 IS95B.  4  
  266.      NETWORK_TYPE_EVDO_0   EVDO网络, revision 0.  5  
  267.      NETWORK_TYPE_EVDO_A   EVDO网络, revision A.  6  
  268.      NETWORK_TYPE_1xRTT    1xRTT网络  7  
  269.    */ 
  270.   tm.getNetworkType();//int  
  271.     
  272.   /*  
  273.    * 手机类型:  
  274.    * 例如: PHONE_TYPE_NONE  无信号  
  275.      PHONE_TYPE_GSM   GSM信号  
  276.      PHONE_TYPE_CDMA  CDMA信号  
  277.    */ 
  278.   tm.getPhoneType();//int  
  279.     
  280.   /*  
  281.    * Returns the ISO country code equivalent for the SIM provider's country code.  
  282.    * 获取ISO国家码,相当于提供SIM卡的国家码。  
  283.    *   
  284.    */ 
  285.   tm.getSimCountryIso();//String  
  286.     
  287.   /*  
  288.    * Returns the MCC+MNC (mobile country code + mobile network code) of the provider of the SIM. 5 or 6 decimal digits.  
  289.    * 获取SIM卡提供的移动国家码和移动网络码.5或6位的十进制数字.  
  290.    * SIM卡的状态必须是 SIM_STATE_READY(使用getSimState()判断).  
  291.    */ 
  292.   tm.getSimOperator();//String  
  293.     
  294.   /*  
  295.    * 服务商名称:  
  296.    * 例如:中国移动、联通  
  297.    * SIM卡的状态必须是 SIM_STATE_READY(使用getSimState()判断).  
  298.    */ 
  299.   tm.getSimOperatorName();//String  
  300.     
  301.   /*  
  302.    * SIM卡的序列号:  
  303.    * 需要权限:READ_PHONE_STATE  
  304.    */ 
  305.   tm.getSimSerialNumber();//String  
  306.     
  307.   /*  
  308.    * SIM的状态信息:  
  309.    *  SIM_STATE_UNKNOWN          未知状态 0  
  310.    SIM_STATE_ABSENT           没插卡 1  
  311.    SIM_STATE_PIN_REQUIRED     锁定状态,需要用户的PIN码解锁 2  
  312.    SIM_STATE_PUK_REQUIRED     锁定状态,需要用户的PUK码解锁 3  
  313.    SIM_STATE_NETWORK_LOCKED   锁定状态,需要网络的PIN码解锁 4  
  314.    SIM_STATE_READY            就绪状态 5  
  315.    */ 
  316.   tm.getSimState();//int  
  317.     
  318.   /*  
  319.    * 唯一的用户ID:  
  320.    * 例如:IMSI(国际移动用户识别码) for a GSM phone.  
  321.    * 需要权限:READ_PHONE_STATE  
  322.    */ 
  323.   tm.getSubscriberId();//String  
  324.     
  325.   /*  
  326.    * 取得和语音邮件相关的标签,即为识别符  
  327.    * 需要权限:READ_PHONE_STATE  
  328.    */ 
  329.   tm.getVoiceMailAlphaTag();//String  
  330.     
  331.   /*  
  332.    * 获取语音邮件号码:  
  333.    * 需要权限:READ_PHONE_STATE  
  334.    */ 
  335.   tm.getVoiceMailNumber();//String  
  336.     
  337.   /*  
  338.    * ICC卡是否存在  
  339.    */ 
  340.   tm.hasIccCard();//boolean  
  341.     
  342.   /*  
  343.    * 是否漫游:  
  344.    * (在GSM用途下)  
  345.    */ 
  346.   tm.isNetworkRoaming();//   
  347. }  
  348. }  
  349.