- import android.app.Activity;
- import android.content.Context;
- import android.content.Intent;
- import android.database.Cursor;
- import android.net.Uri;
- import android.os.Bundle;
- import android.telephony.TelephonyManager;
- import android.widget.TextView;
- public class PhoneTest extends Activity {
- private TextView mTextView;
- protected Cursor mCursor = null;
- private TelephonyManager mTelephonyManager;
- private String mString = "";
- /** Called when the activity is first created. */
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- mTextView = (TextView)findViewById(R.id.text);
- mTextView.setTextSize(20.3f);
- isSimExist();
- if(getSimState() == TelephonyManager.SIM_STATE_READY){
- mString += " 卡存在\n";
- getSimContacts("content://icc/adn"); //一般用这一条,如果这条不行的话可以试试下面的一条。
- getSimContacts("content://sim/adn");//此种读法在我们手机里不能读取,所以,还是用上个uri比较好。
- }
- mTextView.setText(mString);
- }
- private void getSimContacts(String str){
- Intent intent = new Intent();
- intent.setData(Uri.parse(str));
- Uri uri = intent.getData();
- mCursor = getContentResolver().query(uri, null, null, null, null);
- if(mCursor == null){
- mString += "不能从" + str + "读数据\n";
- return ;
- }
- mString += "第一列:" + mCursor.getColumnName(0) + "\n";
- mString += "第二列:" + mCursor.getColumnName(1) + "\n";
- mString += "第三列:" + mCursor.getColumnName(2) + "\n";
- mString += "第四列:" + mCursor.getColumnName(3) + "\n";
- mString += "列数:" + mCursor.getColumnCount() + "\n";
- mString += "行数:" + mCursor.getCount() + "\n";
- if (mCursor != null) {
- while (mCursor.moveToNext()) {
- // 取得联系人名字
- int nameFieldColumnIndex = mCursor.getColumnIndex("name");
- mString += mCursor.getString(nameFieldColumnIndex)+" ";
- // 取得电话号码
- int numberFieldColumnIndex = mCursor
- .getColumnIndex("number");
- mString += mCursor.getString(numberFieldColumnIndex)+" ";
- // 取得邮箱
- int emailsFieldColumnIndex = mCursor
- .getColumnIndex("emails");
- mString += mCursor.getString(emailsFieldColumnIndex)+" ";
- // 取得id
- int idFieldColumnIndex = mCursor
- .getColumnIndex("_id");
- mString += mCursor.getString(idFieldColumnIndex)+"\n";
- }
- }
- mString += mCursor + "\n";
- mCursor.close();
- }
- private int getSimState(){
- return mTelephonyManager.getSimState();
- }
- private void isSimExist(){
- mTelephonyManager = (TelephonyManager) getSystemService(Context.TELEPHONY_SERVICE);
- int simState = mTelephonyManager.getSimState();
- switch (simState) {
- case TelephonyManager.SIM_STATE_ABSENT:
- mString = "无卡";
- // do something
- break;
- case TelephonyManager.SIM_STATE_NETWORK_LOCKED:
- mString = "需要NetworkPIN解锁";
- // do something
- break;
- case TelephonyManager.SIM_STATE_PIN_REQUIRED:
- mString = "需要PIN解锁";
- // do something
- break;
- case TelephonyManager.SIM_STATE_PUK_REQUIRED:
- mString = "需要PUN解锁";
- // do something
- break;
- case TelephonyManager.SIM_STATE_READY:
- mString = "良好";
- // do something
- break;
- case TelephonyManager.SIM_STATE_UNKNOWN:
- mString = "未知状态";
- // do something
- break;
- }
- mTextView.setText(mString);
- }
- }
来源: http://www.phpxs.com/code/1001534/