我想获取Android中的联系号码,但就我发现的教程而言,它按升序排列数字,而不是按照它们在联系人中显示的顺序...
如何修改代码以按照联系人列表中的确切顺序获取数字?
Cursor cursor = getContentResolver().query(Phone.CONTENT_URI, new String[]{Phone.NUMBER}, null,null, null);
ArrayList <String> nr_formatat = new ArrayList <String> ();
if (cursor != null) {
while (cursor.moveToNext() == true)
nr_formatat.add(cursor.getString( cursor.getColumnIndex(Phone.NUMBER)));
}
答案 0 :(得分:1)
你的方式错了。您需要根据CONTACT_ID查询号码,否则两者之间不会有任何对应关系。看看this tutorial。
答案 1 :(得分:0)
具体取决于您的联系人列表中的联系方式。点击菜单按钮,然后点击“显示选项”。除此之外,您的问题中没有足够的信息来充分回答它。
从我所看到的情况来看,你的方式是错误的。我会查看这个示例应用程序。它以不同于您的方式获取联系人,并允许您根据需要对其进行排序。
答案 2 :(得分:0)
如果符合以下条件, (Anna,0342)ID为1,(Lulu,0311)有ID 2,(John,0088)有ID 3
Cursor cursor = getContentResolver().query(Phone.CONTENT_URI, new String[]{Phone.NUMBER}, null,null, new String[]{Phone.ID});
ArrayList <String> nr_formatat = new ArrayList <String> ();
if (cursor != null) {
while (cursor.moveToNext() == true)
nr_formatat.add(cursor.getString( cursor.getColumnIndex(Phone.NUMBER)));
}
ContentResolver()。query()的最后一个变量接受sortorder。所以,如果您的联系人列表也对ID进行排序,那么您可以在此处输入类似ID的内容。 ConecntResolver().Query() info here.