【问题标题】:get all Telegram contacts saved in phone获取保存在手机中的所有 Telegram 联系人
【发布时间】:2016-09-18 08:25:44
【问题描述】:

我正在尝试让所有 Telegram 联系人在我的应用程序中使用,这是我的代码:

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

但它没有给我任何联系!

我的问题是什么?

org.telegram.messenger.account 帐户类型是否为真?或者我在哪里可以找到电报的帐户类型?

感谢您的关注。

【问题讨论】:

    标签: android android-contacts telegram android-contact-mimetype


    【解决方案1】:

    终于找到了,telegram的真实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());
    

    希望能帮助到其他人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-29
      • 1970-01-01
      • 1970-01-01
      • 2011-10-30
      • 2015-01-23
      • 2019-09-10
      相关资源
      最近更新 更多