2013-05-22 5 views
1

Я работаю над простым sms-приложением, и я использую код ниже, чтобы получить идентификатор потока при загрузке списка моих потоков, но я не могу понять, как получить идентификатор контакта используя идентификатор потока. Я корень и использовать корень исследователь, я вижу, в базе данных есть таблица контактов со следующими столбцамиAndroid получить идентификатор контакта из потока id

thread_id | htcthread_id | contact_id

Так, так как у меня есть идентификатор потока, я должен быть в состоянии получить идентификатор контакта, но я также необходимо убедиться, что это работает на всех устройствах. Мое приложение не искоренять, кстати

код, чтобы получить идентификатор потока

Uri uri = Uri.parse("content://mms-sms/conversations?simple=true"); 
Cursor c = context.getContentResolver().query(uri, null, null, null, "date desc"); 
if (c.getCount() > 0) { 
    while (c.moveToNext()){ 
     //thread id is c.getString(c.getColumnIndexOrThrow("_id")) 
    } 
} 
c.close 
+0

любой успех? !! – Hamidreza

ответ

1

Мое решение восстановить все контакты:

Cursor cursor = null; 
    try { 
     cursor = context.getContentResolver().query(Phone.CONTENT_URI, null, null, null, null); 
     int contactIdIdx = cursor.getColumnIndex(Phone._ID); 
     int nameIdx = cursor.getColumnIndex(Phone.DISPLAY_NAME); 
     int phoneNumberIdx = cursor.getColumnIndex(Phone.NUMBER); 
     int photoIdIdx = cursor.getColumnIndex(Phone.PHOTO_ID); 
     cursor.moveToFirst(); 
     do { 
      String idContact = cursor.getString(contactIdIdx); 
      String name = cursor.getString(nameIdx); 
      String phoneNumber = cursor.getString(phoneNumberIdx); 
      //... 
     } while (cursor.moveToNext()); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } finally { 
     if (cursor != null) { 
      cursor.close(); 
     } 
    } 

Вам нужно это разрешение в манифесте:

<uses-permission android:name="android.permission.READ_CONTACTS" /> 

Надеюсь, я помог вам!

+1

+1 для использования: Phone.CONTENT_URI – cbrulak

+4

хорошо, но как это отвечает на мой вопрос? Я не пытаюсь получить все контакты, я просто хочу, чтобы контактная информация была основана на идентификаторе потока – user577732

+0

Итак, что дальше? Ответ принят как решение? – Sw0ut

Смежные вопросы