2011-07-28 46 views
-1
public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     Intent intentContact = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI); 
     startActivityForResult(intentContact, PICK_CONTACT); 
    } 
    public void onActivityResult(int requestCode, int resultCode, Intent intent) 
    { 

     if (requestCode == PICK_CONTACT) 
     {   

     getContactInfo(intent);   
     System.out.println("HASPHONE NUMBER"+phoneNumber); 
     // Your class variables now have the data, so do something with it. 
     } 
    }//onActivityResult 

    protected void getContactInfo(Intent intent) 
    { 

     Cursor cursor = managedQuery(intent.getData(), null, null, null, null);  
     while (cursor.moveToNext()) 
     {   
      String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); 
      name = cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME)); 

      String hasPhone = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); 

      if (hasPhone.equalsIgnoreCase("1")) 


       hasPhone = "true"; 
      else 
       hasPhone = "false" ; 

      if (Boolean.parseBoolean(hasPhone)) 
      { 
      Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ contactId,null, null); 
      while (phones.moveToNext()) 
      { 

       phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 

      } 
      phones.close(); 
      } 

      // Find Email Addresses 
      Cursor emails = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,null,ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = " + contactId,null, null); 
      while (emails.moveToNext()) 
      { 
      String emailAddress = emails.getString(emails.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)); 
      } 
      emails.close(); 

     Cursor address = getContentResolver().query(
        ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI, 
        null, 
        ContactsContract.CommonDataKinds.StructuredPostal.CONTACT_ID + " = " + contactId, 
        null, null); 
     while (address.moveToNext()) 
     { 
      // These are all private class variables, don't forget to create them. 
      String poBox  = address.getString(address.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POBOX)); 
      String street  = address.getString(address.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.STREET)); 
      String city  = address.getString(address.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.CITY)); 
      String state  = address.getString(address.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.REGION)); 
      String postalCode = address.getString(address.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE)); 
      String country = address.getString(address.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY)); 
String type = address.getString(address.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.TYPE)); 
     } //address.moveToNext() 
     } //while (cursor.moveToNext())   
     cursor.close(); 
    } 
} 

回答

0
protected void getContactInfo(Intent intent) 
    { 

String number[]; 
     Cursor cursor = managedQuery(intent.getData(), null, null, null, null); 
    number=new String[cursor.getCount()]; 
int numCount=0; 

while (cursor.moveToNext()) 
     {   
      String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); 
      name = cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME)); 

      String hasPhone = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); 

      if (hasPhone.equalsIgnoreCase("1")) 


       hasPhone = "true"; 
      else 
       hasPhone = "false" ; 

      if (Boolean.parseBoolean(hasPhone)) 
      { 
      Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID +" = "+ contactId,null, null); 
      while (phones.moveToNext()) 
      { 

       phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); 
       if(phoneNumber.startsWith("011")) number[numCount++]=phoneNumber; 
      } 
      phones.close(); 
      } 

      // Find Email Addresses 
      Cursor emails = getContentResolver().query(ContactsContract.CommonDataKinds.Email.CONTENT_URI,null,ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = " + contactId,null, null); 
      while (emails.moveToNext()) 
      { 
      String emailAddress = emails.getString(emails.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA)); 
      } 
      emails.close(); 

     Cursor address = getContentResolver().query(
        ContactsContract.CommonDataKinds.StructuredPostal.CONTENT_URI, 
        null, 
        ContactsContract.CommonDataKinds.StructuredPostal.CONTACT_ID + " = " + contactId, 
        null, null); 
     while (address.moveToNext()) 
     { 
      // These are all private class variables, don't forget to create them. 
      String poBox  = address.getString(address.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POBOX)); 
      String street  = address.getString(address.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.STREET)); 
      String city  = address.getString(address.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.CITY)); 
      String state  = address.getString(address.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.REGION)); 
      String postalCode = address.getString(address.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.POSTCODE)); 
      String country = address.getString(address.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.COUNTRY)); 
String type = address.getString(address.getColumnIndex(ContactsContract.CommonDataKinds.StructuredPostal.TYPE)); 
     } //address.moveToNext() 
     } //while (cursor.moveToNext())   
     cursor.close(); 
    } 
} 
+0

開始感謝烏拉圭回合的答覆...但它不工作.. – christusvalerian

+0

你現在得到些什麼? – Rasel

+0

那裏是nochange在列表..它顯示電話 – christusvalerian

相關問題