android 获取手机信息(网络、状态)

核心代码:

Imei = ((TelephonyManager) getSystemService(TELEPHONY_SERVICE))
.getDeviceId();

1.加入权限

在manifest.xml文件中要添加 <uses-permission android:name="android.permission.READ_PHONE_STATE" />

2.代码 

  1. /**   

  2. *   

  3. *

  4. *创建日期 2010-4-29 下午05:02:47   

  5. *   

  6. */    

  7. package net.sunniwell.app;     

  8. import android.app.Activity;     

  9. import android.os.Bundle;     

  10. import android.telephony.CellLocation;     

  11. import android.telephony.PhoneStateListener;     

  12. import android.telephony.TelephonyManager;     

  13. public class TelManager extends Activity {     

  14.     

  15. @Override    

  16. protected void onCreate(Bundle savedInstanceState) {     

  17.   super.onCreate(savedInstanceState);     

  18.   TelephonyManager tm = (TelephonyManager) this.getSystemService(TELEPHONY_SERVICE);     

  19.        

  20.   /*   

  21.    * 电话状态:   

  22.    * 1.tm.CALL_STATE_IDLE=0          无活动   

  23.    * 2.tm.CALL_STATE_RINGING=1  响铃   

  24.    * 3.tm.CALL_STATE_OFFHOOK=2  摘机   

  25.    */    

  26.   tm.getCallState();//int     

  27.        

  28.   /*   

  29.    * 电话方位:   

  30.    *    

  31.    */    

  32.   tm.getCellLocation();//CellLocation     

  33.        

  34.   /*   

  35.    * 唯一的设备ID:   

  36.    * GSM手机的 IMEI 和 CDMA手机的 MEID.    

  37.    * Return null if device ID is not available.   

  38.    */    

  39.   tm.getDeviceId();//String     

  40.        

  41.   /*   

  42.    * 设备的软件版本号:   

  43.    * 例如:the IMEI/SV(software version) for GSM phones.   

  44.    * Return null if the software version is not available.    

  45.    */    

  46.   tm.getDeviceSoftwareVersion();//String     

  47.        

  48.   /*   

  49.    * 手机号:   

  50.    * GSM手机的 MSISDN.   

  51.    * Return null if it is unavailable.    

  52.    */    

  53.   tm.getLine1Number();//String     

  54.        

  55.   /*   

  56.    * 附近的电话的信息:   

  57.    * 类型:List<NeighboringCellInfo>    

  58.    * 需要权限:android.Manifest.permission#ACCESS_COARSE_UPDATES   

  59.    */    

  60.   tm.getNeighboringCellInfo();//List<NeighboringCellInfo>     

  61.        

  62.   /*   

  63.    * 获取ISO标准的国家码,即国际长途区号。   

  64.    * 注意:仅当用户已在网络注册后有效。   

  65.    *       在CDMA网络中结果也许不可靠。   

  66.    */    

  67.   tm.getNetworkCountryIso();//String     

  68.        

  69.   /*   

  70.    * MCC+MNC(mobile country code + mobile network code)   

  71.    * 注意:仅当用户已在网络注册时有效。   

  72.    *    在CDMA网络中结果也许不可靠。   

  73.    */    

  74.   tm.getNetworkOperator();//String     

  75.        

  76.   /*   

  77.    * 按照字母次序的current registered operator(当前已注册的用户)的名字   

  78.    * 注意:仅当用户已在网络注册时有效。   

  79.    *    在CDMA网络中结果也许不可靠。   

  80.    */    

  81.   tm.getNetworkOperatorName();//String     

  82.        

  83.   /*   

  84.    * 当前使用的网络类型:   

  85.    * 例如: NETWORK_TYPE_UNKNOWN  网络类型未知  0   

  86.      NETWORK_TYPE_GPRS     GPRS网络  1   

  87.      NETWORK_TYPE_EDGE     EDGE网络  2   

  88.      NETWORK_TYPE_UMTS     UMTS网络  3   

  89.      NETWORK_TYPE_HSDPA    HSDPA网络  8    

  90.      NETWORK_TYPE_HSUPA    HSUPA网络  9   

  91.      NETWORK_TYPE_HSPA     HSPA网络  10   

  92.      NETWORK_TYPE_CDMA     CDMA网络,IS95A 或 IS95B.  4   

  93.      NETWORK_TYPE_EVDO_0   EVDO网络, revision 0.  5   

  94.      NETWORK_TYPE_EVDO_A   EVDO网络, revision A.  6   

  95.      NETWORK_TYPE_1xRTT    1xRTT网络  7   

  96.    */    

  97.   tm.getNetworkType();//int     

  98.        

  99.   /*   

  100.    * 手机类型:   

  101.    * 例如: PHONE_TYPE_NONE  无信号   

  102.      PHONE_TYPE_GSM   GSM信号   

  103.      PHONE_TYPE_CDMA  CDMA信号   

  104.    */    

  105.   tm.getPhoneType();//int     

  106.        

  107.   /*   

  108.    * Returns the ISO country code equivalent for the SIM provider's country code.   

  109.    * 获取ISO国家码,相当于提供SIM卡的国家码。   

  110.    *    

  111.    */    

  112.   tm.getSimCountryIso();//String     

  113.        

  114.   /*   

  115.    * Returns the MCC+MNC (mobile country code + mobile network code) of the provider of the SIM. 5 or 6 decimal digits.   

  116.    * 获取SIM卡提供的移动国家码和移动网络码.5或6位的十进制数字.   

  117.    * SIM卡的状态必须是 SIM_STATE_READY(使用getSimState()判断).   

  118.    */    

  119.   tm.getSimOperator();//String     

  120.        

  121.   /*   

  122.    * 服务商名称:   

  123.    * 例如:中国移动、联通   

  124.    * SIM卡的状态必须是 SIM_STATE_READY(使用getSimState()判断).   

  125.    */    

  126.   tm.getSimOperatorName();//String     

  127.        

  128.   /*   

  129.    * SIM卡的序列号:   

  130.    * 需要权限:READ_PHONE_STATE   

  131.    */    

  132.   tm.getSimSerialNumber();//String     

  133.        

  134.   /*   

  135.    * SIM的状态信息:   

  136.    *  SIM_STATE_UNKNOWN          未知状态 0   

  137.    SIM_STATE_ABSENT           没插卡 1   

  138.    SIM_STATE_PIN_REQUIRED     锁定状态,需要用户的PIN码解锁 2   

  139.    SIM_STATE_PUK_REQUIRED     锁定状态,需要用户的PUK码解锁 3   

  140.    SIM_STATE_NETWORK_LOCKED   锁定状态,需要网络的PIN码解锁 4   

  141.    SIM_STATE_READY            就绪状态 5   

  142.    */    

  143.   tm.getSimState();//int     

  144.        

  145.   /*   

  146.    * 唯一的用户ID:   

  147.    * 例如:IMSI(国际移动用户识别码) for a GSM phone.   

  148.    * 需要权限:READ_PHONE_STATE   

  149.    */    

  150.   tm.getSubscriberId();//String     

  151.        

  152.   /*   

  153.    * 取得和语音邮件相关的标签,即为识别符   

  154.    * 需要权限:READ_PHONE_STATE   

  155.    */    

  156.   tm.getVoiceMailAlphaTag();//String     

  157.        

  158.   /*   

  159.    * 获取语音邮件号码:   

  160.    * 需要权限:READ_PHONE_STATE   

  161.    */    

  162.   tm.getVoiceMailNumber();//String     

  163.        

  164.   /*   

  165.    * ICC卡是否存在   

  166.    */    

  167.   tm.hasIccCard();//boolean     

  168.        

  169.   /*   

  170.    * 是否漫游:   

  171.    * (在GSM用途下)   

  172.    */    

  173.   tm.isNetworkRoaming();//     

  174.        

  175.        

  176.        

  177. }     

  178.     

  179.     

  180. }