如何从联系中获取手机号码

我的应用程序需要从联系人列表中选择一个联系人,然后只从所选联系人那里获取名称和手机号码以将其存储在应用程序中,我成功获取名称,但我如何validation联系人是否有手机号码(不是一个家)然后得到号码?

如何检查联系人是否有一个或多个手机号码?

在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 0) { seleContact += "," + (MoNo); } else { seleContact += (MoNo); } } pCur.moveToNext(); } pCur.close(); } return seleContact; }