1. 程式人生 > >通過 ContentResolver 讀取聯系人信息

通過 ContentResolver 讀取聯系人信息

tac ant cursor istview div ani item getc ext

1、首先動態獲取 讀取聯系人信息權限 <1>配置文件中聲明對應權限
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<2>判斷是否具有對應權限
     if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_CONTACTS) !=
PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this,
arrayOf(Manifest.permission.READ_CONTACTS), 1)
} else {
readContacts() //讀取聯系人信息
}
<3>授權
   override fun onRequestPermissionsResult(requestCode: Int, permissions: Array<out String>, grantResults: IntArray) {
when (requestCode) {
1 ->
if
(grantResults.size > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
readContacts()
} else {
Toast.makeText(this, "You denied the permission", Toast.LENGTH_SHORT).show()
}
}
}

2、創建ListView適配器,聯系人信息集合
  
var adapter: ArrayAdapter<String>? = null
var contactsList = mutableListOf<String>()
   //實例化 適配器
adapter = ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, contactsList)
//listView 設置適配器
lv_contents_view.adapter = adapter
3、讀取聯系人信息
    /**
* 加載聯系人信息
*/
private fun readContacts() {
var cursor: Cursor

//查詢聯系人數據
cursor = contentResolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,
null, null, null, null)
if (cursor != null) {
while (cursor.moveToNext()) {
//獲取聯系人姓名
var displayName = cursor.getString(cursor.getColumnIndex(
ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME))
//獲取聯系人電話
var number = cursor.getString(cursor.getColumnIndex(
ContactsContract.CommonDataKinds.Phone.NUMBER))
// 添加聯系人信息到集合當中
contactsList.add(displayName + "\n" + number)
}
//刷新 ListView
adapter?.notifyDataSetChanged()
}
cursor.close() //關閉 Cursor 對象
}

4、成功顯示數據技術分享
註意:編程所用語言為 Kotlin

null

通過 ContentResolver 讀取聯系人信息