【问题标题】:Retrieve Contact name from phone number从电话号码中检索联系人姓名
【发布时间】:2013-05-08 18:35:45
【问题描述】:

自过去几天以来,我一直在寻找一种方法来使用我已经存储在变量中的电话号码来检索联系人姓名,不幸的是,到目前为止我发现的所有内容似乎都在使用已弃用的函数/呼叫。

当然,我尝试过自己的方式,但我觉得我的 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的东西,但是即使看完这个我还是不明白:What is 'Context' on Android?

任何帮助将不胜感激, 非常感谢

【问题讨论】:

    标签: android eclipse android-contacts phone-number


    【解决方案1】:

    如果您在活动中使用它,那么使用this 会得到一个上下文。所以基本上在这里,不要打电话给context.getContentResolver(),而是打电话给this.getContentResolver()或者只是getContentResolver()

    Eclipse 抱怨基本上是因为您试图调用一个名为context 的方法,Eclipse 不知道该方法,因为它没有在任何地方声明。如果你之前做过Context context = this; 之类的事情,它会起作用,但这真的没用。

    getContentResolver() 是由Activity 声明和定义的方法,它是您的活动扩展的类,因此您可以这样调用它。

    我希望它有所帮助。至于这个 context 到底是什么,我很抱歉,但我无法帮助你,因为我什至不确定我是否理解正确。

    另外,请注意,我没有检查您发布的代码,我不知道它是否适用于从电话号码中获取联系人姓名。只是想帮助您摆脱 context cannot be resolved 错误。

    【讨论】:

    • 哇,这真的很有帮助,所有这些时间都花在试图理解上,而你让我在 30 秒内理解了。非常感谢 Zabri!
    • 是吗?嗯,很好。 :) 那你会接受答案吗?谢谢。
    猜你喜欢
    • 2011-03-05
    • 1970-01-01
    • 1970-01-01
    • 2018-03-16
    • 2011-08-10
    • 2021-05-14
    • 2015-06-01
    • 1970-01-01
    相关资源
    最近更新 更多