這幾天做個老人桌面,那些系統自帶的通訊錄,通訊錄列表頭像太小了,老人看不清。于是自己寫一個老人專用通訊錄,給聯系人設置大頭貼,還能語言報名,這樣老人就很好找到需要打電話的聯系人!


至于通訊錄獲取頭像,網上有很多方法,但是都太亂了!
簡介代碼
ContentResolver cr = view.getContext().getContentResolver();Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI,Long.parseLong(contact.contact_id));InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(cr, uri);Bitmap photo = BitmapFactory.decodeStream(input);
加載到自己的ImageView
Glide.with(context) .load(Uri.parse(item.photo_uri)) .into(R.id.iv_photo))
怎么獲取通訊錄數據
val uri = ContactsContract.CommonDataKinds.Contactables.CONTENT_URIval PHONE_BOOK_LABEL = "phonebook_label";contactList = ArrayList<ContactBean>()val cursor = contentResolver.query( uri, arrayOf( ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER, ContactsContract.CommonDataKinds.Phone.CONTACT_ID, ContactsContract.CommonDataKinds.Phone.PHOTO_FILE_ID, ContactsContract.CommonDataKinds.Phone.PHOTO_ID, ContactsContract.CommonDataKinds.Phone.PHOTO_THUMBNAIL_URI, ContactsContract.CommonDataKinds.Phone.PHOTO_URI, PHONE_BOOK_LABEL ), null, null, ContactsContract.CommonDataKinds.Phone.SORT_KEY_PRIMARY)if (null != cursor) { while (cursor.moveToNext()) { val firstChar = cursor.getString(cursor.getColumnIndex(PHONE_BOOK_LABEL)) val contact_id = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.CONTACT_ID)) val name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)) val phoneNum = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)) val photo_id = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.PHOTO_ID)) val photo_file_id = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.PHOTO_FILE_ID)) val photo_uri = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.PHOTO_URI)) val photo_thumbnail_uri = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.PHOTO_THUMBNAIL_URI)) val contact = ContactBean( firstChar, contact_id, name, phoneNum, photo_id, photo_file_id, photo_uri, photo_thumbnail_uri ) contactList!!.add(contact) } cursor.close()
自定義的通訊錄實體類:
data class ContactBean( val firstChar: String? = "", val contact_id: String? = "", val name: String? = "", val phoneNum: String? = "", val photo_id: String? = "", val photo_file_id: String? = "", val photo_uri: String? = "", val photo_thumbnail_uri: String? = "") { override fun toString(): String { return "${firstChar},${name},${contact_id},${phoneNum},${photo_id},${photo_file_id},${photo_uri},${photo_thumbnail_uri}n" }}
版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。
發表評論
請登錄后評論...
登錄后才能評論