/*
* 取得SIM卡内的信息
* Android API中的TelephonyManager(Android.telephony.TelephonyManager)
* 对象,提供了几个方法可以快速的取得SIM卡的状态以及相关信息。
* 程序中以getSystemService(TELEPHONY_SERVICE)来取得TelephonyManager
* 对象,以TelephonyManager提供的方法来获取SIM卡的状态及相关信息,将
* 获取的信息存入自定义的MyAdapter中,最后以setListAdapter内的信息显示
* 于ListView中。
*/
import 略;
MyAdapter.java代码
main.xml代码
row_layout.xml代码
下面我们来看看程序运行后的结果:
* 取得SIM卡内的信息
* Android API中的TelephonyManager(Android.telephony.TelephonyManager)
* 对象,提供了几个方法可以快速的取得SIM卡的状态以及相关信息。
* 程序中以getSystemService(TELEPHONY_SERVICE)来取得TelephonyManager
* 对象,以TelephonyManager提供的方法来获取SIM卡的状态及相关信息,将
* 获取的信息存入自定义的MyAdapter中,最后以setListAdapter内的信息显示
* 于ListView中。
*/
import 略;
public class Ex05_18Activity extends ListActivity {
private TelephonyManager telMgr;
private List<String> item = new ArrayList<String>();
private List<String> value = new ArrayList<String>();
/** Called when the activity is first created. */
@SuppressWarnings("static-access")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
telMgr = (TelephonyManager) getSystemService(TELEPHONY_SERVICE);
// 将取得的信息写入List中,取得SIM卡状态
item.add(getResources().getText(R.string.str_list0).toString());
if (telMgr.getSimState() == telMgr.SIM_STATE_READY) {
value.add("良好");
} else if (telMgr.getSimState() == telMgr.SIM_STATE_ABSENT) {
value.add("无SIM卡");
} else {
value.add("SIM卡被锁定或未知的的状态!");
}
// 取得SIM卡号
item.add(getResources().getText(R.string.str_list1).toString());
if (telMgr.getSimSerialNumber() != null) {
value.add(telMgr.getSimSerialNumber());
} else {
value.add("无法获取SIM卡号");
}
// 取得卡供货商代码
item.add(getResources().getText(R.string.str_list2).toString());
if (telMgr.getSimOperator().equals("")) {
value.add("无法获取SIM卡供货商代码");
} else {
value.add(telMgr.getSimOperator());
}
// 取得卡供货商名称
item.add(getResources().getText(R.string.str_list3).toString());
if (telMgr.getSimOperator().equals("")) {
value.add("无法获取SIM卡供货商名");
} else {
value.add(telMgr.getSimOperatorName());
}
// 取得卡国别
item.add(getResources().getText(R.string.str_list4).toString());
if (telMgr.getSimCountryIso().equals("")) {
value.add("无法获取SIM卡国别");
} else {
value.add(telMgr.getSimCountryIso());
}
// 使用自定义的MyAdapter来将数据传入ListActivity中
setListAdapter(new MyAdapter(this, item, value));
}
}
MyAdapter.java代码
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,需覆写以下method */
@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 parent) {
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;
}
}
main.xml代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ListView
android:id="@android:id/list"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
row_layout.xml代码
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/myText1"
android:layout_width="wrap_content"
android:layout_height="30px"
android:layout_gravity="center_vertical"
android:layout_weight="1.0"
android:textColor="@drawable/darkgray"
android:textSize="20sp" />
<TextView
android:id="@+id/myText2"
android:layout_width="wrap_content"
android:layout_height="30px"
android:layout_gravity="center_vertical"
android:layout_weight="1.0"
android:textColor="@drawable/white"
android:textSize="14sp" />
</LinearLayout>
下面我们来看看程序运行后的结果:
