2012-06-15 4 views
0

У меня есть приложение, и я хочу показать, что контакты сортируются по популярности, например, количество раз, которое вызывает этот контакт. Другой вариант: Сортировка кем угодно с изображением. Я хочу, чтобы это было сделано автоматически без выбора пользователя! Буду признателен за любую помощь! Даже на частичный ответ!получить контакты отсортированы по популярности

Спасибо!

+3

Пожалуйста, предоставьте часть своего собственного кода, чтобы мы могли помочь. – mariomario

+0

база данных контактов android имеет столбец как times_contacted, который сохраняет информацию о том, сколько звонков было сделано с конкретным контактом. – Anu

ответ

2

использовать этот запрос

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(); 
    } 
+0

Спасибо Это действительно помогло! И как мне сортировать, у кого есть фотография - то есть: поставить наверху, те, у кого есть фотография – user1458530

0

Если контакт хранится в базе данных, необходимо добавить дополнительный столбец, где вы будете ставить в число раз контакт был призван.

Когда пользователь делает звонок, вам необходимо добавить код, чтобы увеличить значение, сохраненное в «количестве раз, когда контакт был вызван» столбцом на +1.

Когда вы указываете контакты, просто сортируйте их по «количеству раз, когда контакт был вызван».

0

мы имеем выигрыш любой такой столбец, чтобы проверить, есть ли контакт фото или нет ... Б.Т. вы можете принести фотографию контакта для Eact контакта, если он exsists затем поместить его сверху в противном случае нет ..

использовать эту код для получения фотографии: (просто передайте разрешение и идентификатор содержимого каждого контакта)

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);