【发布时间】:2011-07-17 00:19:17
【问题描述】:
我正在尝试根据联系人电话号码检索联系人姓名。我制作了一个应该在所有 API 版本中都可以使用的功能,因为我无法使其在 1.6 中工作并且我看不到问题,也许有人可以发现它?
请注意,我已经替换了字符串的 API 常量,因此我不存在已弃用的警告问题。
public String getContactName(final String phoneNumber)
{
Uri uri;
String[] projection;
if (Build.VERSION.SDK_INT >= 5)
{
uri = Uri.parse("content://com.android.contacts/phone_lookup");
projection = new String[] { "display_name" };
}
else
{
uri = Uri.parse("content://contacts/phones/filter");
projection = new String[] { "name" };
}
uri = Uri.withAppendedPath(uri, Uri.encode(phoneNumber));
Cursor cursor = this.getContentResolver().query(uri, projection, null, null, null);
String contactName = "";
if (cursor.moveToFirst())
{
contactName = cursor.getString(0);
}
cursor.close();
cursor = null;
return contactName;
}
【问题讨论】:
-
不再支持 1.6! developer.android.com/resources/dashboard/…。它仅占当前用户群的 2.2%,而且这个数字将不断缩小、缩小、缩小。它可能永远不会达到零,但这只是因为技术落后者无论如何都不会听到您的新前沿应用程序!不要浪费你的时间!
-
为了方便他人,我写了一篇文章,其中包含查询姓名,照片,联系人ID等的完整代码,并附有适当的解释。该代码包含在不同答案中找到的 sn-ps,但更有条理和经过测试。链接:hellafun.weebly.com/home/…