在Android中获取联系人

时间:2011-08-11 19:07:06

标签: android android-contacts

我想获取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)));
    }

3 个答案:

答案 0 :(得分:1)

你的方式错了。您需要根据CONTACT_ID查询号码,否则两者之间不会有任何对应关系。看看this tutorial

答案 1 :(得分:0)

具体取决于您的联系人列表中的联系方式。点击菜单按钮,然后点击“显示选项”。除此之外,您的问题中没有足够的信息来充分回答它。

从我所看到的情况来看,你的方式是错误的。我会查看这个示例应用程序。它以不同于您的方式获取联系人,并允许您根据需要对其进行排序。

http://developer.android.com/resources/samples/BusinessCard/src/com/example/android/businesscard/index.html

答案 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.