0
我一直在关注来自this网站的教程,以获取Android中联系人的电话号码。无法获取最后联系人的电话号码
我面对的问题是,我似乎无法得到最后一个联系电话号码。 例如,如果我有3个联系人保存,它显示了前2个号码。
我张贴我的代码以及如果它可以帮助任何人。
if(cur.getCount()>0){
while(cur.moveToNext()){
String id=cur.getString(cur.getColumnIndex(ContactsContract.Contacts._ID));
String name=cur.getString(cur.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
if(Integer.parseInt(cur.getString(cur.getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)))>0){
pCur=getContentResolver().
query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone._ID+"=?",
new String[]{id}, null);
while(pCur.moveToNext()){
number.add(pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)));
}
}
pCur.close();
}
}
任何帮助,将不胜感激。 谢谢!
============================
编辑:对于那些有兴趣以下是对工作的代码我:
Cursor phones = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,null,null, null);
while (phones.moveToNext())
{
String name=phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME));
String phoneNumber = phones.getString(phones.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
Log.i("Details", "Name: "+name+" Number: "+phoneNumber);
}
phones.close();
感谢您的建议。这似乎并没有为我工作。我试着用不同的do-while循环,但不幸的是我的app force关闭了。这也是同样的事情。 – Anirudh 2013-03-04 09:50:10
你应该能够获得所有具有上述代码的手机的联系人。 – 2013-03-04 16:29:45
当我使用此代码时,我的应用程序强制关闭。我从其他地方找到了合适的解决方案。无论如何,谢谢你的帮助。 – Anirudh 2013-03-05 05:40:27