由于要使用的是ListActivity,所以layout中的ListView的id必须指定为“android:list”。
<?xml version="1.0" encoding="utf-8"?> <ListView android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/android:list"> </ListView>
所以在主程序MobilePhoneInfoMain中需要使用getSystemService(TELEPHONY_SERVICE)取得TelephonyManager。
public class MobilePhoneInfoMain extends ListActivity { /** Called when the activity is first created. */ private TelephonyManager telMgr; private List<String> items = new ArrayList<String>(); public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); telMgr = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); //手机号码 items.add("手机号码:" + telMgr.getLine1Number()); //电信网络国别 items.add("电信网络国别:" + telMgr.getNetworkCountryIso()); //电信公司代码 items.add("电信公司代码:" + telMgr.getNetworkOperator()); //电信公司名称 items.add("电信公司名称:" + telMgr.getNetworkOperatorName()); //通信类型 if(telMgr.getPhoneType() == TelephonyManager.PHONE_TYPE_GSM){ items.add("通信类型:GSM"); }else if(telMgr.getPhoneType() == TelephonyManager.PHONE_TYPE_CDMA){ items.add("通信类型:CDMA"); }else{ items.add("通信类型:未知"); } //网络类型 switch(telMgr.getNetworkType()){ case TelephonyManager.NETWORK_TYPE_EDGE: items.add("网络类型:EDGE");break; case TelephonyManager.NETWORK_TYPE_GPRS: items.add("网络类型:GPRS");break; } //是否漫游 if(telMgr.isNetworkRoaming()){ items.add("漫游中"); }else{ items.add("非漫游"); } //手机IMEI items.add("IMEI:" + telMgr.getDeviceSoftwareVersion()); //手机IMSI items.add("IMSI:" + telMgr.getSubscriberId()); //内容解析 ContentResolver cv = getContentResolver(); try { if(android.provider.Settings.System.getInt(cv, android.provider.Settings.System.BLUETOOTH_ON) == 1){ items.add("蓝牙已打开"); }else{ items.add("蓝牙未打开"); } } catch (SettingNotFoundException e) { // TODO Auto-generated catch block e.printStackTrace(); } ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, items); setListAdapter(adapter); } }
当然,能够读取出来的信息还有很多,这里就不一一罗列了。最后,不要忘记在AndroidManifest.xml中需要加入权限:
<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>

