TelephonyManager可以获取手机的相关信息和状态。下面介绍这个类的常用方法:

新建一个项目,修改main布局文件:

 

 
  
  1. XML/HTML代码  
  2.       
  3. <?xml version="1.0" encoding="utf-8"?>        
  4. <LinearLayout xmlns:android="http://schema...android"        
  5.     android:layout_width="fill_parent"        
  6.     android:layout_height="fill_parent"        
  7.     android:orientation="vertical" >        
  8.     <ListView        
  9.         android:id="@+id/listView"        
  10.         android:layout_width="fill_parent"        
  11.         android:layout_height="fill_parent">        
  12.     </ListView>        
  13. </LinearLayout>    

定义一个字符串数组,方便调用。在res目录中的values目录创建一个array.xml文件:

 
  
  1. XML/HTML代码  
  2.       
  3. <?xml version="1.0" encoding="utf-8"?>            
  4. <resources>            
  5.     <string-array name="listItem">                        
  6.         <item>设备编号</item>            
  7.         <item>SIM卡国别</item>            
  8.         <item>SIM卡序列号</item>            
  9.         <item>SIM卡状态</item>            
  10.         <item>软件版本</item>            
  11.         <item>网络运营商代号</item>            
  12.         <item>网络运营商名称</item>            
  13.         <item>手机制式</item>            
  14.         <item>设备当前位置</item>            
  15.     </string-array>            
  16.     <string-array name="simState">                        
  17.         <item>状态未知</item>            
  18.         <item>无SIM卡</item>            
  19.         <item>被PIN加锁</item>            
  20.         <item>被PUK加锁</item>            
  21.         <item>被NetWork PIN加锁</item>            
  22.         <item>已准备好</item>            
  23.     </string-array>            
  24.     <string-array name="phoneType">                        
  25.         <item>未知</item>            
  26.         <item>GSM</item>            
  27.         <item>CDMA</item>            
  28.     </string-array>                
  29. </resources>        

在AndroidManifest.xml配置文件中声明权限:

 

 
  
  1. XML/HTML代码  
  2.       
  3. <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />          
  4. <uses-permission android:name="android.permission.READ_PHONE_STATE" />    

TelephonyManagerActivity类,获取手机的相关信息并添加到ListView中显示:

 

 
  
  1. Java代码  
  2.       
  3. listValues.add(tm.getDeviceId());//获取设备编号          
  4. listValues.add(tm.getSimCountryIso());//获取SIM卡国别          
  5. listValues.add(tm.getSimSerialNumber());//获取SIM卡序列号              
  6. listValues.add(simState[tm.getSimState()]);//获取SIM卡状态          
  7. listValues.add((tm.getDeviceSoftwareVersion() != null ?       
  8.     tm.getDeviceSoftwareVersion():"未知"));//获取软件版本          
  9. listValues.add(tm.getNetworkOperator());//获取网络运营商代号          
  10. listValues.add(tm.getNetworkOperatorName());//获取网络运营商名称          
  11. listValues.add(phoneType[tm.getPhoneType()]);//获取手机制式          
  12. listValues.add(tm.getCellLocation().toString());//获取设备当前位置