取得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")
	@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>

下面我们来看看程序运行后的结果:
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值