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

android读取sim联系人资料的代码,androidsim,在获取sim卡联系人前,

来源: javaer 分享于  点击 34796 次 点评:99

android读取sim联系人资料的代码,androidsim,在获取sim卡联系人前,


在获取sim卡联系人前,我们一般会先判断sim卡状态,找到sim卡后再获取它的资料,如下代码我们可以读取sim卡中的联系人的一些信息。PhoneTest.java

package com.android.test;  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);      }  } 

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">      <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>      </application>      <uses-permission android:name="android.permission.READ_CONTACTS"></uses-permission>  </manifest> 
相关栏目:

用户点评