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>