android 獲取手機的各種狀態
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>
最後更新:2017-04-02 16:48:19