Android 从电话号码中检索联系人姓名
从过去几天开始,我一直在到处寻找,想找到一种方法,使用我已经存储在变量中的电话号码检索联系人姓名,不幸的是,迄今为止我发现的所有内容似乎都使用了不推荐的函数/调用 当然,我试着用我自己的方式来做,但我觉得我的Android/JAVA知识还不足以理解这个概念,当我尝试运行任何东西时,会不断出现一些错误或强制关闭 到目前为止,我能找到的最好的东西是这样的:Android 从电话号码中检索联系人姓名,android,eclipse,android-contacts,phone-number,Android,Eclipse,Android Contacts,Phone Number,从过去几天开始,我一直在到处寻找,想找到一种方法,使用我已经存储在变量中的电话号码检索联系人姓名,不幸的是,迄今为止我发现的所有内容似乎都使用了不推荐的函数/调用 当然,我试着用我自己的方式来做,但我觉得我的Android/JAVA知识还不足以理解这个概念,当我尝试运行任何东西时,会不断出现一些错误或强制关闭 到目前为止,我能找到的最好的东西是这样的: public String getContactName(final String phoneNumber) {
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 = context.getContentResolver().query(uri, projection, null, null, null);
String contactName = "";
if (cursor.moveToFirst())
{
contactName = cursor.getString(0);
}
cursor.close();
cursor = null;
return contactName;
}
但通过使用这段代码,Eclipse告诉我:无法解析上下文。
我发现的很多代码和解释都使用了这个上下文,但我还是不明白,即使在读了这篇文章之后:
任何帮助都将不胜感激,
非常感谢如果您在活动中使用此功能,那么使用此可获得上下文。因此,基本上在这里,不要调用
context.getContentResolver()
,而是调用this.getContentResolver()
,或者只调用getContentResolver()
Eclipse抱怨主要是因为您试图调用一个名为context
的方法,而Eclipse不知道这个方法,因为它在任何地方都没有被声明。如果您以前做过类似于Context=this代码>,但那真的没用
getContentResolver()
是由Activity
声明和定义的方法,它是您的活动扩展的类,因此您可以这样调用它
我希望有帮助。至于这个上下文到底是什么,我很抱歉,但我不能帮你,因为我甚至不确定我是否理解正确
另外,请注意,我还没有检查您发布的代码,我不知道从电话号码中获取联系人姓名是否有效。只是想帮你摆脱无法解决的错误。哇,这真的很有帮助,花了这么多时间试图理解,你让我在30秒内就理解了。非常感谢扎布里!是吗?好的,很好请你接受这个答案好吗?非常感谢。