Android 获取按人气排序的联系人

Android 获取按人气排序的联系人,android,contacts,android-contacts,Android,Contacts,Android Contacts,我有一个应用程序,我想显示联系人是按人气排序的,例如呼叫该联系人的次数。另一种选择:按任何有图片的人排序。我希望它不需要用户的选择自动完成!我将感谢任何帮助!即使是部分回答 谢谢大家! 使用此查询 ContentResolver cr = getContentResolver(); Cursor cur2 = cr.query(ContactsContract.Contacts.CONTENT_URI, null, null, null, "times_contac

我有一个应用程序,我想显示联系人是按人气排序的,例如呼叫该联系人的次数。另一种选择:按任何有图片的人排序。我希望它不需要用户的选择自动完成!我将感谢任何帮助!即使是部分回答

谢谢大家!

使用此查询

   ContentResolver cr = getContentResolver();
  Cursor cur2 = cr.query(ContactsContract.Contacts.CONTENT_URI,
          null, null, null, "times_contacted desc");
  cur2.moveToFirst();

  int name=cur2.getColumnIndex("display_name");
  for(int i=0;i<cur2.getCount();i++){
    Log.v("name",""+cur2.getString(name));
    Log.v("times",""+cur2.getString(0));
    cur2.moveToNext();
  }
ContentResolver cr=getContentResolver();
Cursor cur2=cr.query(Contacts contract.Contacts.CONTENT\u URI,
空,空,空,“times_contacted desc”);
cur2.moveToFirst();
int name=cur2.getColumnIndex(“display_name”);

对于(int i=0;i如果联系人存储在数据库中,则需要添加一个附加列,在该列中输入调用联系人的次数

当用户拨打电话时,您需要添加一些代码,将“呼叫联系人的次数”列中存储的值增加+1


当您列出联系人时,只需按“联系人被呼叫的次数”列对其进行排序。

我们没有任何这样的列来检查联系人是否有照片……bt您可以为eact联系人获取联系人照片(如果有),然后将其放在顶部,否则不会

使用以下代码获取照片:(只需传递内容解析程序和每个联系人的id)


请提供一些您自己的代码,以便我们提供帮助。android联系人数据库中有一个列作为times_contacted,它保存了与特定联系人打过多少次电话的信息。谢谢您,这真的很有帮助!我如何按有图片的人排序-即:放在顶部,有图片的人
public static Bitmap loadContactPhoto(ContentResolver cr, long id) {
    Uri uri = ContentUris.withAppendedId(ContactsContract.Contacts.CONTENT_URI, id);
    InputStream input = ContactsContract.Contacts.openContactPhotoInputStream(cr, uri);
    // InputStream input = ContactsContract.Contacts.Photo
    if (input == null) {
        return null;
    }
    return BitmapFactory.decodeStream(input);