java如何获取手机号码_java-如何从联系人获取手机号码

本文介绍了在Android中如何通过ContentProvider获取联系人姓名和电话号码,特别是如何获取联系人的手机号码。首先,通过查询ContactsContract.Contacts.CONTENT_URI获取contact_id,然后查询ContactsContract.CommonDataKinds.Phone.CONTENT_URI以获取具体电话号码。此外,还提供了一个名为getNo的方法,用于根据contact_id获取联系人的手机号码。
摘要由CSDN通过智能技术生成

在android中,联系人姓名和电话号码保存在不同的ContentProvider中,以便从下面的代码中获取contact_id

cur=cr.query(ContactsContract.Contacts.CONTENT_URI, null, ContactsContract.CommonDataKinds.Phone.HAS_PHONE_NUMBER +" > 0", null, null);

cur.moveToFirst();

while(cur.isAfterLast()==false){

// Log.e("Name is:",cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)));

Fid=Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID)));

int id=Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID)));

Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,null, null, null);

pCur.moveToFirst();

while (pCur.isAfterLast()==false) {

int idinner=Integer.parseInt(pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.CONTACT_ID)));

if(idinner==id){

//Add id to Array

}

pCur.moveToNext();

}

cur.moveToNext();

}

而且,除了这个ID,您还可以获得手机号码和其他详细信息

public String getNo(String[] no){

String seleContact="";

// String[] contactNos=new String[no.length];

for(int i=0;i

if(no[i].trim().toString().equalsIgnoreCase("")){

break;

}

int id=Integer.parseInt(no[i]);

//Cursor cur=cr.query(ContactsContract.Contacts.CONTENT_URI, null, ContactsContract.Contacts._ID +" = "+id, null, null);

//cur.moveToFirst();

Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI,null,ContactsContract.CommonDataKinds.Phone.CONTACT_ID+"="+id, null, null);

pCur.moveToFirst();

while(pCur.isAfterLast()==false){

if(Integer.parseInt(pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE)))==(ContactsContract.CommonDataKinds.Phone.TYPE_MOBILE)){

// String uname=cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME)).toString();

String tempMoNo=pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));

Log.e("Activity result selelength is",String.valueOf(seleContact.length()));

String[] temp=tempMoNo.split("-");

String MoNo="";

int le=temp.length;

for(int j=0;j

MoNo +=temp[j];

}

if (seleContact.length() > 0) {

seleContact += "," + (MoNo);

} else {

seleContact += (MoNo);

}

}

pCur.moveToNext();

}

pCur.close();

}

return seleContact;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值