android面試之contentProvider擷取連絡人

來源:互聯網
上載者:User

標籤:

1.使用contentprovider尋找連絡人

MainActivity.java

public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);getContacts();}private void getContacts() {// 得到ContentResolver對象   ContentResolver cr = this.getContentResolver();     // 取得電話本中開始一項的游標,主要就是查詢"contacts"表Cursor cursor = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, null);   while (cursor.moveToNext())   {   StringBuilder sbLog = new StringBuilder();    // 取得連絡人名字 (顯示出來的名字),實際內容在 ContactsContract.Contacts中   int nameIndex = cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);      String name = cursor.getString(nameIndex);   sbLog.append("name=" + name + ";");        // 取得連絡人ID    String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));           // 根據連絡人ID查詢對應的電話號碼    Cursor phoneNumbers = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = "              + contactId, null, null);         // 取得電話號碼(可能存在多個號碼)       while (phoneNumbers.moveToNext())       {        String strPhoneNumber = phoneNumbers.getString(phoneNumbers.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));           sbLog.append("Phone=" + strPhoneNumber + ";");    }       phoneNumbers.close();         // 根據連絡人ID查詢對應的email    Cursor emails = cr.query(ContactsContract.CommonDataKinds.Email.CONTENT_URI, null, ContactsContract.CommonDataKinds.Email.CONTACT_ID + " = "              + contactId, null, null);         // 取得email(可能存在多個email)       while (emails.moveToNext())       {        String strEmail = emails.getString(emails.getColumnIndex(ContactsContract.CommonDataKinds.Email.DATA));           sbLog.append("Email=" + strEmail + ";");    }       emails.close();         Log.i("TAG", sbLog.toString());}cursor.close();    }}

 

android面試之contentProvider擷取連絡人

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.