当前位置: 首页 > 面试题库 >

Android从线程ID获取联系人ID

扶文光
2023-03-14
问题内容

我正在使用一个简单的短信应用程序,正在使用以下代码在加载线程列表时获取线程ID,但是我不知道如何使用线程ID获取联系人ID。我是root用户,并且使用root资源管理器,我可以在数据库中看到一个带有以下各列的联系人表

thread_id | htcthread_id | contact_id

因此,由于我具有线程ID,因此我应该能够获取联系人ID,但我还需要确保该方法在所有设备上均有效。我的应用不是root用户

获取线程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

问题答案:

我恢复所有联系人的解决方案

    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" />

希望我能对您有所帮助!



 类似资料:
  • 问题内容: 我有一个固定的线程池,我可以将任务提交给该线程池(限制为 5个 线程)。如何找出这 5个 线程中的哪一个执行我的任务(例如“第3 个 线程中的第3 个 线程正在执行此任务”)? 问题答案: 使用:

  • 我想从Android的联系簿中获得电话号码。我尝试了许多方法,但我无法获得电话号码。我有联系人姓名和状态,但当我尝试获取电话号码时,它不起作用。我的代码是。

  • 问题内容: 是否可以在一个查询中完成? 据我所知sim联系人的内容uri是 问题答案: 这很容易!:)

  • 本文向大家介绍Android获取手机联系人信息,包括了Android获取手机联系人信息的使用技巧和注意事项,需要的朋友参考一下 Android如何获取手机联系人信息,本文为大家揭晓。 获取手机联系人信息步骤: 1、获取 ContentResolver ContentResolver resolver = getContentResolver(); 2、resolver.query(*)查询信息 查

  • 问题内容: 我想获取联系人姓名,但无法。看完这个答案后,我尝试使用family,给定的和显示的来获取名称,但没有任何效果 / 问题答案: 尝试以下代码以获取特定号码的联系方式 更多详细信息请参见下面的链接https://tausiq.wordpress.com/2012/08/23/android-get-contact- details-id-name-phone-photo/

  • 问题内容: 我正在尝试从通话记录中获取联系人。我可以使用以下代码从主要联​​系人获取联系电话: 它的作用是,当我们单击“联系人”按钮时,它将打开一个包含所有联系人的列表,用户可以选择任何联系人,并且所选联系人将添加到“收件人”字段中。我想做完全相同的事情,但是我不想显示所有联系人,而是只显示最近使用过的那些(呼叫记录)进行选择的联系人。 如果您还可以告诉如何与组一起执行此操作,那也很好。 问题答案