android获取手机通讯录和sim卡通讯录

获取手机通讯录

 

1 权限

 

<uses-permission android:name="android.permission.READ_CONTACTS"/>

注意6.0还需要动态权限 demo会有详细的

 

2.获取手机通讯录

 

// 获取手机联系人
Cursor phoneCursor = resolver.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, PHONES_PROJECTION, null, null, null);
//得到手机号码
String phoneNumber = phoneCursor.getString(PHONES_NUMBER_INDEX);
//得到联系人名称
String contactName = phoneCursor.getString(PHONES_DISPLAY_NAME_INDEX);

//得到联系人ID
Long contactid = phoneCursor.getLong(PHONES_CONTACT_ID_INDEX);

//得到联系人头像ID
Long photoid = phoneCursor.getLong(PHONES_PHOTO_ID_INDEX);

 

 

 

3.获取sim卡通讯录

// 获取Sims卡联系人
Uri uri = Uri.parse("content://icc/adn");
Cursor phoneCursor = resolver.query(uri, PHONES_PROJECTION, null, null,
        null);

 

 

// 得到手机号码
String phoneNumber = phoneCursor.getString(PHONES_NUMBER_INDEX);
// 得到联系人名称
String contactName = phoneCursor
        .getString(PHONES_DISPLAY_NAME_INDEX);
si'm卡没用头像设置一个默认的头像
//Sim卡中没有联系人头像
Bitmap contactPhoto = null;
contactPhoto = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);

 

 

 

4.统一手机号码格式并去除不合格的手机号 

 

phoneNumber = phoneNumber.replaceAll(" ", "");
phoneNumber = phoneNumber.replaceAll("-", "");
phoneNumber = phoneNumber.replaceAll("\\+86", "");
if (phoneNumber.length() != 11)
    continue;
String substring = phoneNumber.substring(0, 1);
if (!substring.equals("1"))

 

点击查看demo

qq互助群:471761982

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大不懂

码字不易,一块也是爱,么么

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值