Android应用开发揭秘里的EX_03_02获取联系人号码的获取方法的修正
直接上源码:
package com.example.contact;import android.app.Activity;import android.content.ContentResolver;import android.database.Cursor;import android.os.Bundle;import android.provider.ContactsContract;import android.provider.ContactsContract.PhoneLookup;import android.util.Log;import android.widget.TextView;public class ReadContack extends Activity { /** Called when the activity is first created. */@Override public void onCreate(Bundle savedInstanceState) { TextView tv = new TextView(this); String string=""; super.onCreate(savedInstanceState); ContentResolver cr = getContentResolver(); Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null); while(cursor.moveToNext()) { int nameFieldColumnIndex = cursor.getColumnIndex(PhoneLookup.DISPLAY_NAME); String contact = cursor.getString(nameFieldColumnIndex); string += contact; string += ":"; //下面为新的获取联系人电话号码方法 //获取联系人的ID号 String contactid = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); Cursor phone = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID+'='+contactid, null, null); //电话号码可以是几组 while(phone.moveToNext()) { String strPhoneNumber = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); string += strPhoneNumber; } string += "\n"; phone.close(); } cursor.close(); tv.setText(string); setContentView(tv); }}