在获取sim卡联系人前,我们一般会先判断sim卡状态,找到sim卡后再获取它的资料,如下代码我们可以读取sim卡中的联系人的一些信息。
复制代码
复制代码
PhoneTest.java
- package com.android.test;
- http://www.kmrlyy.com/gjjb/33581.html
- 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);
- }
- http://www.kmrlyy.com/gongjingxirou/33582.html
- 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
- http://www.kmrlyy.com/gongjingxirou/33583.html
- 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);
- }
- }
main.xml
- <?xml version="1.0" encoding="utf-8"?>
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- >
- <ScrollView android:layout_width="fill_parent"
- android:layout_height="fill_parent">
- <LinearLayout android:orientation="vertical"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent">
- <TextView android:id="@+id/text"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="@string/hello"
- />
- </LinearLayout>
- </ScrollView>
- </LinearLayout>
AndroidManefist.xml
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.android.test"
- android:versionCode="1"
- android:versionName="1.0">
- http://www.kmrlyy.com/gongwaiyun/33585.html
- <application android:icon="@drawable/icon" android:label="@string/app_name">
- <activity android:name=".PhoneTest"
- android:label="@string/app_name">
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>www.kmrlyy.com
- http://www.kmrlyy.com/gongjingyan/33584.html
- </application>
- <uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>
- </manifest>