public class huoqu extends ListActivity { private TelephonyManager telMgr; private List<String> item = new ArrayList<String>(); private List<String> value = new ArrayList<String>(); @SuppressWarnings("static-access") @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); /* 载入main.xml Layout */ setContentView(R.layout.main); telMgr = (TelephonyManager) getSystemService(TELEPHONY_SERVICE); /* 将取得的信息写入List中 */ /* 取得手机电话号码 */ item.add(getResources().getText(R.string.str_list0).toString()); if (telMgr.getLine1Number() != null) { value.add(telMgr.getLine1Number()); } else { value.add("无法取得"); } /* 取得电信网络国别 */ item.add(getResources().getText(R.string.str_list1).toString()); if (telMgr.getNetworkCountryIso().equals("")) { value.add("无法取得"); } else { value.add("" + telMgr.getNetworkCountryIso()); } /* 取得电信公司代码 */ item.add(getResources().getText(R.string.str_list2).toString()); if (telMgr.getNetworkOperator().equals("")) { value.add("无法取得"); } else { value.add(telMgr.getNetworkOperator()); } /* 取得电信公司名称 */ item.add(getResources().getText(R.string.str_list3).toString()); if (telMgr.getNetworkOperatorName().equals("")) { value.add("无法取得"); } else { value.add(telMgr.getNetworkOperatorName()); } /* 取得行动通信类型 */ item.add(getResources().getText(R.string.str_list4).toString()); if (telMgr.getPhoneType() == telMgr.PHONE_TYPE_GSM) { value.add("GSM"); } else { value.add("未知"); } /* 取得网络类型 */ item.add(getResources().getText(R.string.str_list5).toString()); if (telMgr.getNetworkType() == telMgr.NETWORK_TYPE_EDGE) { value.add("EDGE"); } else if (telMgr.getNetworkType() == telMgr.NETWORK_TYPE_GPRS) { value.add("GPRS"); } else if (telMgr.getNetworkType() == telMgr.NETWORK_TYPE_UMTS) { value.add("UMTS"); } else if (telMgr.getNetworkType() == 4) { value.add("HSDPA"); } else { value.add("未知"); } /* 取得漫游状态 */ item.add(getResources().getText(R.string.str_list6).toString()); if (telMgr.isNetworkRoaming()) { value.add("漫游中"); } else { value.add("无漫游"); } /* 取得手机IMEI */ item.add(getResources().getText(R.string.str_list7).toString()); value.add(telMgr.getDeviceId()); /* 取得IMEI SV */ item.add(getResources().getText(R.string.str_list8).toString()); if (telMgr.getDeviceSoftwareVersion() != null) { value.add(telMgr.getDeviceSoftwareVersion()); } else { value.add("无法取得"); } /* 取得手机IMSI */ item.add(getResources().getText(R.string.str_list9).toString()); if (telMgr.getSubscriberId() != null) { value.add(telMgr.getSubscriberId()); } else { value.add("无法取得"); } /* 取得ContentResolver */ ContentResolver cv = huoqu.this.getContentResolver(); String tmpS = ""; /* 取得蓝牙状态 */ item.add(getResources().getText(R.string.str_list10).toString()); tmpS = android.provider.Settings.System.getString(cv, android.provider.Settings.System.BLUETOOTH_ON); if (tmpS.equals("1")) { value.add("已打开"); } else { value.add("未打开"); } /* 取得WIFI状态 */ item.add(getResources().getText(R.string.str_list11).toString()); tmpS = android.provider.Settings.System.getString(cv, android.provider.Settings.System.WIFI_ON); if (tmpS.equals("1")) { value.add("已打开"); } else { value.add("未打开"); } /* 取得飞行模式是否打开 */ item.add(getResources().getText(R.string.str_list12).toString()); tmpS = android.provider.Settings.System.getString(cv, android.provider.Settings.System.AIRPLANE_MODE_ON); if (tmpS.equals("1")) { value.add("打开中"); } else { value.add("未打开"); } /* 取得数据漫游是否打开 */ item.add(getResources().getText(R.string.str_list13).toString()); tmpS = android.provider.Settings.System.getString(cv, android.provider.Settings.System.DATA_ROAMING); if (tmpS.equals("1")) { value.add("打开中"); } else { value.add("未打开"); } /* 使用自定义的MyAdapter来将数据传入ListActivity */ setListAdapter(new MyAdapter(this, item, value)); } }
/* 自定义的Adapter,继承android.widget.BaseAdapter */ public class MyAdapter extends BaseAdapter { /* 变量声明 */ private LayoutInflater mInflater; private List<String> items; private List<String> values; /* MyAdapter的构造器,传入三个参数 */ public MyAdapter(Context context,List<String> item, List<String> value) { /* 参数初始化 */ mInflater = LayoutInflater.from(context); items = item; values = value; } /* 因继承BaseAdapter,需覆盖以下方法 */ @Override public int getCount() { return items.size(); } @Override public Object getItem(int position) { return items.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position,View convertView,ViewGroup par) { ViewHolder holder; if(convertView == null) { /* 使用自定义的file_row作为Layout */ convertView = mInflater.inflate(R.layout.row_layout,null); /* 初始化holder的text与icon */ holder = new ViewHolder(); holder.text1=(TextView)convertView.findViewById(R.id.myText1); holder.text2=(TextView)convertView.findViewById(R.id.myText2); convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } /* 设置要显示的信息 */ holder.text1.setText(items.get(position).toString()); holder.text2.setText(values.get(position).toString()); return convertView; } /* class ViewHolder */ private class ViewHolder { /* text1:信息名称 * text2:信息内容 */ TextView text1; TextView text2; } }
<!-- 声明READ_PHONE_STATE权限 --> <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>