天天看點

android手機電話号碼,Android開發:實作添加系統聯系人(手機号碼,姓名)

之前遇到了一些知識沒有總結的習慣,今天來回顧一下一個簡單的小功能:Android開發中調起系統的聯系人清單。

在網上收到了好多這方面的知識,自己在寫代碼的時候總結了一個最簡化的方法,希望可以給大家提供幫助。話不多說開始上代碼。

android手機電話号碼,Android開發:實作添加系統聯系人(手機号碼,姓名)

首先要有一個點選事件

android手機電話号碼,Android開發:實作添加系統聯系人(手機号碼,姓名)

接下來就是調起系統的聯系人

android手機電話号碼,Android開發:實作添加系統聯系人(手機号碼,姓名)

接下來就是我們得到了資訊,在根據需求進行處理

android手機電話号碼,Android開發:實作添加系統聯系人(手機号碼,姓名)

最後不要忘了配置權限

是不是舉得很簡單,沒錯,就是這麼簡單。好了把代碼粘貼給大家。需要的朋友可以拿去直接粘貼。

//調起系統聯系人

startActivityForResult(new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI), 0);

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

super.onActivityResult(requestCode, resultCode, data);

if (resultCode == Activity.RESULT_OK) {

// ContentProvider展示資料類似一個單個資料庫表

// ContentResolver執行個體帶的方法可實作找到指定的ContentProvider并擷取到ContentProvider的資料

ContentResolver reContentResolverol = getContentResolver();

// URI,每個ContentProvider定義一個唯一的公開的URI,用于指定到它的資料集

Uri contactData = data.getData();

// 查詢就是輸入URI等參數,其中URI是必須的,其他是可選的,如果系統能找到URI對應的ContentProvider将傳回一個Cursor對象.

Cursor cursor = managedQuery(contactData, null, null, null, null);

cursor.moveToFirst();

// 獲得DATA表中的名字

String linkname = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));

etName.setText(linkname);

// 條件為聯系人ID

String contactId = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));

// 獲得DATA表中的電話号碼,條件為聯系人ID,因為手機号碼可能會有多個

Cursor phone = reContentResolverol.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,

ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = " + contactId, null, null);

String phonenumber = "";

while (phone.moveToNext()) {

phonenumber = phone.getString(phone.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)).trim().replace(" ", "");

}

etNumber.setText(phonenumber);

}

}