Android获取联系人代码

jopen 10年前

import android.content.ContentResolver;  import android.content.Context;  import android.database.Cursor;  import android.net.Uri;  import android.os.Bundle;  import android.provider.ContactsContract.CommonDataKinds.Phone;  import android.support.v7.app.ActionBarActivity;  import android.util.Log;  import android.view.Menu;  import android.view.MenuItem;     public class MainActivity extends ActionBarActivity {      private static final String tag = MainActivity.class.getSimpleName();         private Context mContext;         @Override      protected void onCreate(Bundle savedInstanceState) {          super.onCreate(savedInstanceState);          setContentView(R.layout.activity_main);             this.mContext = this.getApplicationContext();          test();      }         private void test() {             this.getContacts();          Log.d(tag, "=======================================");          this.GetSimContact("content://icc/adn");          Log.d(tag, "=======================================");          this.GetSimContact("content://sim/adn");      }         private void getContacts() {          ContentResolver resolver = mContext.getContentResolver();          Cursor phoneCursor = resolver.query(Phone.CONTENT_URI, null, null, null, null);          if (phoneCursor != null) {              while (phoneCursor.moveToNext()) {                  int nameIndex = phoneCursor.getColumnIndex(Phone.DISPLAY_NAME); // 获取联系人name                  String name = phoneCursor.getString(nameIndex);                  String phoneNumber = phoneCursor.getString(phoneCursor.getColumnIndex(Phone.NUMBER)); // 获取联系人number                  Log.d(tag, "phoneNumber = "+phoneNumber+", name = "+name);              }              phoneCursor.close();          }      }         private void GetSimContact(String add) {          // 读取SIM卡手机号,有两种可能:content://icc/adn与content://sim/adn          try {              Uri uri = Uri.parse(add);              Cursor mCursor = getContentResolver().query(uri, null, null, null, null);              if (mCursor != null) {                  while (mCursor.moveToNext()) {                      // ContactInfo sci = new ContactInfo();                      // 取得联系人名字                      int nameFieldColumnIndex = mCursor.getColumnIndex("name");                      String contactName = mCursor.getString(nameFieldColumnIndex);                      // 取得电话号码                      int numberFieldColumnIndex = mCursor.getColumnIndex("number");                      String userNumber = mCursor.getString(numberFieldColumnIndex);                      // sci.userNumber = GetNumber(sci.userNumber);                      // sci.isChecked = false;                         Log.d(tag, "userNumber = " + userNumber + ", userName = " + contactName);                     }                  mCursor.close();              }          } catch (Exception e) {              Log.i("eoe", e.toString());          }         }         @Override      public boolean onCreateOptionsMenu(Menu menu) {          // Inflate the menu; this adds items to the action bar if it is present.          getMenuInflater().inflate(R.menu.main, menu);          return true;      }         @Override      public boolean onOptionsItemSelected(MenuItem item) {          // Handle action bar item clicks here. The action bar will          // automatically handle clicks on the Home/Up button, so long          // as you specify a parent activity in AndroidManifest.xml.          int id = item.getItemId();          if (id == R.id.action_settings) {              return true;          }          return super.onOptionsItemSelected(item);      }  }