0

Я пытаюсь получить все контакты Телеграмма использовать в моем приложении, вот мой код:получить все контакты Телеграмма, сохраненные в телефоне

 Cursor c = getContentResolver().query(
      ContactsContract.RawContacts.CONTENT_URI, 
      new String[] { ContactsContract.RawContacts.CONTACT_ID, ContactsContract.RawContacts.DISPLAY_NAME_PRIMARY }, 
      ContactsContract.RawContacts.ACCOUNT_TYPE + "= ?", 
      new String[] { "org.telegram.messenger.account" }, 
      null); 

    ArrayList<String> myTelegramappContacts = new ArrayList<String>(); 
    int contactNameColumn = c.getColumnIndex(ContactsContract.RawContacts.DISPLAY_NAME_PRIMARY); 
    while (c.moveToNext()) 
    { 
     // You can also read RawContacts.CONTACT_ID to read the 
     // ContactsContract.Contacts table or any of the other related ones. 
     myTelegramappContacts.add(c.getString(contactNameColumn)); 
    } 

но он не возвращает меня никаких контактов!

В чем моя проблема?

is org.telegram.messenger.account true для типа учетной записи? Или где я могу найти, что такое тип учетной записи для телеграммы?

Спасибо за внимание.

ответ

1

наконец-то нашли, истинный ACCOUNT_TYPE для телеграммы

org.telegram.messenger 

, а также, может найти все тип учетной записи в телефоне с помощью этого кода:

final Map<String, String> result = new HashMap<>(); 
    final Cursor cursor = getContentResolver() 
      .query(ContactsContract.RawContacts.CONTENT_URI, new String[]{ContactsContract.RawContacts.ACCOUNT_TYPE, ContactsContract.RawContacts.ACCOUNT_NAME}, 
        null, null, 
        null); 
    final int accountNameIdx = cursor.getColumnIndex(ContactsContract.RawContacts.ACCOUNT_NAME); 
    final int accountTypeIdx = cursor.getColumnIndex(ContactsContract.RawContacts.ACCOUNT_TYPE); 
    for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) { 
     result.put(cursor.getString(accountTypeIdx), cursor.getString(accountNameIdx)); 
    } 
    cursor.close(); 
    Log.d("AppLog", "accounts found:"); 
    for (Map.Entry<String, String> account : result.entrySet()) 
     Log.d("AppLog", account.getKey() + ":" + account.getValue()); 

надежда, чтобы помочь кто-ELS.

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