Android获取手机联系人或通讯录的基本信息(如姓名、电话)
生活随笔
收集整理的這篇文章主要介紹了
Android获取手机联系人或通讯录的基本信息(如姓名、电话)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、添加權限
<uses-permission android:name="android.permission.READ_CONTACTS"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />2、安卓6.0以上版本獲取權限
ActivityCompat.requestPermissions(TongxunluActivity.this, new String[]{Manifest.permission.READ_CONTACTS,Manifest.permission.READ_EXTERNAL_STORAGE}, 1);?3、創建工具方法
// 獲得所有的聯系人 Cursor cur = context.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI,null,null,null,ContactsContract.Contacts.DISPLAY_NAME+ " COLLATE LOCALIZED ASC"); // 循環遍歷 if (cur.moveToFirst()) {int idColumn = cur.getColumnIndex(ContactsContract.Contacts._ID);int displayNameColumn = cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME);do {jsonObject = new JSONObject();contactData.put("information" + num, jsonObject);num++;// 獲得聯系人的ID號String contactId = cur.getString(idColumn);// 獲得聯系人姓名String disPlayName = cur.getString(displayNameColumn);// 查看該聯系人有多少個電話號碼。如果沒有這返回值為0int phoneCount = cur.getInt(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER));jsonObject.put("name", disPlayName);4、調用方法即可
@Override public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {switch (requestCode) {case 1:if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {//在這里執行讀取通訊錄方法try {ContactType mobiletype= new ContactType(this);String contactinfo=mobiletype.getInformation();LgqLogutil.e("通訊錄==== "+contactinfo);textView.setText(contactinfo);} catch (JSONException e) {e.printStackTrace();}} else {Toast.makeText(this, "獲取聯系人權限失敗", Toast.LENGTH_SHORT).show();}break;default:} }運行結果是:
?
demo鏈接:https://download.csdn.net/download/meixi_android/11959232
在線bug交流:QQ1085220040?
總結
以上是生活随笔為你收集整理的Android获取手机联系人或通讯录的基本信息(如姓名、电话)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HttpRequest 类
- 下一篇: vmware服务器虚拟机重新安装系统教程