取得SIM卡内的信息

1,主程序:

 

package xom.xia;

import java.util.ArrayList;
import java.util.List;
import android.app.ListActivity;
import android.os.Bundle;
import android.telephony.TelephonyManager;
/**
 * android的API中TelephonyManager的类对象,
 * 提供了几个方法可以快速取得SIM卡的状态及相关信息
 * @author Administrator
 *
 */
public class TelephonyManagerActivity extends ListActivity {
	
	private TelephonyManager telephonyManager;
	private List<String> item = new ArrayList<String>();
	private List<String> value = new ArrayList<String>();
	
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        
        telephonyManager = (TelephonyManager)getSystemService(TELEPHONY_SERVICE);
        
        /**
         * 将取得的信息写入List中
         */
        
        //1,取得SIM卡的状态
        item.add(getResources().getText(R.string.str_sim_state).toString());
        if(telephonyManager.getSimState() == telephonyManager.SIM_STATE_READY){
        	value.add("良好");
        }else if(telephonyManager.getSimState() == telephonyManager.SIM_STATE_ABSENT){
        	value.add("无SIM卡");
        }else{
        	value.add("SIM卡被锁或未知状态");
        }
        
        //2,取得SIM卡号
        item.add(getResources().getText(R.string.str_sim_card_id).toString());
        if(telephonyManager.getSimSerialNumber() != null){
        	value.add(telephonyManager.getSimSerialNumber());
        }else {
        	value.add("无法取得");
        }
        
        //3,取得SIM卡供货商代码
        item.add(getResources().getText(R.string.str_sim_supplier_code).toString());
        if(telephonyManager.getSimOperator().equals("")){
        	value.add("无法取得");
        }else{
        	value.add(telephonyManager.getSimOperator());
        }
        
        //4,取得SIM卡供应商的名称
        item.add(getResources().getText(R.string.str_sim_supplier_name).toString());
        if(telephonyManager.getSimOperatorName().equals("")){
        	value.add("无法取得");
        }else{
        	value.add(telephonyManager.getSimOperatorName());
        }
        
        //5,取得SIM卡国别
        item.add(getResources().getText(R.string.str_sim_area).toString());
        if(telephonyManager.getSimCountryIso().equals("")){
        	value.add("无法取得");
        }else{
        	value.add(telephonyManager.getSimCountryIso());
        }
        
        
        //6,最后使用自定义的容器MyAdapter来将数据传入ListActivity
        setListAdapter(new MyAdapter(this,item,value));
    }
}
2,容器类MyAdapter,
package xom.xia;


import java.util.List;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListAdapter;
import android.widget.TextView;

public class MyAdapter extends BaseAdapter implements ListAdapter {
	
	/* 声明变量 */
	private LayoutInflater layoutInflater;
	private List<String> items;
	private List<String> values;
	
	public MyAdapter(Context context,List<String> items,List<String> values){
		this.layoutInflater = LayoutInflater.from(context);
		this.items = items;
		this.values = values;
	}
	@Override
	public int getCount() {
		// TODO Auto-generated method stub
		return items.size();
	}

	@Override
	public Object getItem(int position) {
		// TODO Auto-generated method stub
		return position;
	}

	@Override
	public long getItemId(int position) {
		// TODO Auto-generated method stub
		return position;
	}

	@Override
	public View getView(int position, View convertView, ViewGroup parent) {
		// TODO Auto-generated method stub
		ViewHolder holder;
		
		if(convertView == null){
		/*
		 * 使用自定义的result作为Layout,
		 */
		
		convertView = layoutInflater.inflate(R.layout.result, null);
		
		/*
		 * 初始化holder的text和icon
		 */
		holder = new ViewHolder();
		holder.text1 = (TextView)convertView.findViewById(R.id.myTextVivew);
		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;
	}
	 private class ViewHolder {
	 
	    /* text1:信息名称
	     * text2:信息内容 */
	    TextView text1;
	    TextView text2;
	  }
}
 

 3,文件权限的配置:<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值