Android从线程ID获取联系人ID

Android从线程ID获取联系人ID,第1张

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

我正在使用一个简单的短信应用程序,正在使用以下代码在加载线程列表时获取线程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" />

希望我能对您有所帮助!

总结

以上是内存溢出为你收集整理的Android从线程ID获取联系人ID全部内容,希望文章能够帮你解决Android从线程ID获取联系人ID所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1093593.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存