读书人

获得SIM卡内的信息

发布时间: 2012-08-15 16:57:17 作者: rapoo

取得SIM卡内的信息
/*
* 取得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")@Overridepublic 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 */@Overridepublic int getCount() {return items.size();}@Overridepublic Object getItem(int position) {return items.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic 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>

下面我们来看看程序运行后的结果:
获得SIM卡内的信息

读书人网 >移动开发

热点推荐