Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从电话号码中检索联系人姓名_Android_Eclipse_Android Contacts_Phone Number - Fatal编程技术网

Android 从电话号码中检索联系人姓名

Android 从电话号码中检索联系人姓名,android,eclipse,android-contacts,phone-number,Android,Eclipse,Android Contacts,Phone Number,从过去几天开始,我一直在到处寻找,想找到一种方法,使用我已经存储在变量中的电话号码检索联系人姓名,不幸的是,迄今为止我发现的所有内容似乎都使用了不推荐的函数/调用 当然,我试着用我自己的方式来做,但我觉得我的Android/JAVA知识还不足以理解这个概念,当我尝试运行任何东西时,会不断出现一些错误或强制关闭 到目前为止,我能找到的最好的东西是这样的: public String getContactName(final String phoneNumber) {

从过去几天开始,我一直在到处寻找,想找到一种方法,使用我已经存储在变量中的电话号码检索联系人姓名,不幸的是,迄今为止我发现的所有内容似乎都使用了不推荐的函数/调用

当然,我试着用我自己的方式来做,但我觉得我的Android/JAVA知识还不足以理解这个概念,当我尝试运行任何东西时,会不断出现一些错误或强制关闭

到目前为止,我能找到的最好的东西是这样的:

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秒内就理解了。非常感谢扎布里!是吗?好的,很好请你接受这个答案好吗?非常感谢。