Android获取手机通讯录的信息(姓名和改姓名下的所有手机号)

您所在的位置:网站首页 android获取通讯录 Android获取手机通讯录的信息(姓名和改姓名下的所有手机号)

Android获取手机通讯录的信息(姓名和改姓名下的所有手机号)

2023-09-17 03:18| 来源: 网络整理| 查看: 265

Android获取手机通讯录的信息(姓名和改姓名下的所有手机号 1.实现过程2.实现代码

1.实现过程

1 定义一个专门存储信息的对象类,有姓名,首字母和手机号列表 2 通过获取手机的读写权限,然后来获取手机通讯录信息

2.实现代码

1.对象存储类

import java.util.List; public class ContactsBean { private String fullName; private List phoneList; private String namePrefix; public String getNamePrefix() { return namePrefix; } public void setNamePrefix(String namePrefix) { this.namePrefix = namePrefix; } public String getFullName() { return fullName; } public void setFullName(String fullName) { this.fullName = fullName; } public List getPhoneList() { return phoneList; } public void setPhoneList(List phoneList) { this.phoneList = phoneList; } }

2.获取手机通讯录对象信息实现类

import android.app.Activity; import android.content.Context; import android.database.Cursor; import android.provider.ContactsContract; import com.hjq.permissions.OnPermission; import com.hjq.permissions.Permission; import com.hjq.permissions.XXPermissions; import org.jetbrains.annotations.NotNull; import java.util.ArrayList; import java.util.List; public class ContactUtils { //(实际上就是“sort_key”字段) 出来是首字母 private static final String PHONE_BOOK_LABEL = "phonebook_label"; //需要查询的字段 private static final String[] CONTACTOR_ION = new String[]{ ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER, }; private static List number = new ArrayList(); public static List getAllContacts(Activity context) { if (XXPermissions.isHasPermission(context, Permission.READ_CONTACTS,Permission.WRITE_CONTACTS)) { number = getNumber(context); }else { XXPermissions.with(context) .constantRequest() //可设置被拒绝后继续申请,直到用户授权或者永久拒绝 .permission(Permission.READ_CONTACTS,Permission.WRITE_CONTACTS) //不指定权限则自动获取清单中的危险权限 .request(new OnPermission() { @Override public void hasPermission(List granted, boolean isAll) { number = getNumber(context); } @Override public void noPermission(List denied, boolean quick) { } }); } return number; } @NotNull private static List getNumber(Context context) { List contacts = new ArrayList(); String sortOrder = ContactsContract.CommonDataKinds.Phone.SORT_KEY_PRIMARY; Cursor cursor = context.getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, null, null, null, sortOrder); if (cursor != null) { while (cursor.moveToNext()) { List allNumber =new ArrayList(); ContactsBean info = new ContactsBean(); String id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID)); String name = cursor.getString(cursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME)); String firstChar = cursor.getString(cursor.getColumnIndex(PHONE_BOOK_LABEL)); int numberCount = cursor.getInt(cursor.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)); if (numberCount > 0) { Cursor phoneNumberCursor = context.getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.CONTACT_ID + "=?", new String[]{id}, null); while (phoneNumberCursor.moveToNext()) { String phoneNumber = phoneNumberCursor.getString(phoneNumberCursor.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); if (!allNumber.contains(phoneNumber)) { allNumber.add(phoneNumber); info.setPhoneList(allNumber); } } if (phoneNumberCursor != null) { phoneNumberCursor.close(); } } info.setFullName(name);//添加名字 info.setNamePrefix(firstChar.toLowerCase());//首字母 info.setPhoneList(allNumber);//所有号码 contacts.add(info); } cursor.close(); } return contacts; } }

3.主函数方法调用即可

List list=ContactUtils.getAllContacts(getActivity());


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3