CursorLoader加載本地通訊錄列表,然后用SimpleCursorAdapter顯示在ListView中,示例比較繁瑣Cursor cur = contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null, null, null, null);
if (cur == null || cur.getCount() == 0) {
if (cur != null) {
cur.close();
}
throw new RuntimeException("Permission denied"); // 不同系統(tǒng)行為不一樣,有的是cursor為null,有的是cursor數(shù)據(jù)為空
}
while (cur.moveToNext()) {
String name = cur.getString(
cur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String phone = cur.getString(
cur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
//...
}
cur.close();
Intent實(shí)現(xiàn)對(duì)通訊錄的修改,會(huì)啟動(dòng)系統(tǒng)通訊錄應(yīng)用,在其中讓用戶進(jìn)行確認(rèn)修改,這種方式無(wú)需修改通訊錄權(quán)限:Intent intent = new Intent(Intents.Insert.ACTION);
intent.setType(ContactsContract.RawContacts.CONTENT_TYPE);
intent.putExtra(Intents.Insert.EMAIL, mEmailAddress)
.putExtra(Intents.Insert.EMAIL_TYPE, CommonDataKinds.Email.TYPE_WORK)
.putExtra(Intents.Insert.PHONE, mPhoneNumber)
.putExtra(Intents.Insert.PHONE_TYPE, Phone.TYPE_WORK);
startActivity(intent);
// Sets the special extended data for navigation
editIntent.putExtra("finishActivityOnSaveCompleted", true);
Google提供的授權(quán)API,讓用戶可以使用Google賬戶授權(quán)登錄app,享用Google賬戶關(guān)聯(lián)的優(yōu)勢(shì)。