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