欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

android中判断sim卡状态和读取联系人资料的方法,androidsim,在写程序中,有时候可能需

来源: javaer 分享于  点击 30805 次 点评:226

android中判断sim卡状态和读取联系人资料的方法,androidsim,在写程序中,有时候可能需


在写程序中,有时候可能需要获取sim卡中的一些联系人资料。在获取sim卡联系人前,我们一般会先判断sim卡状态,找到sim卡后再获取它的资料,如下代码我们可以读取sim卡中的联系人的一些信息。```javaimport 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. */@Overridepublic 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);  }

}```

相关栏目:

用户点评