如何在非 activity class 中使用 getContentResolver()?

How to use getContentResolver() inside non activity class?

我正在尝试创建一个方法来检索给定输入字符串的联系人姓名。为此,我必须使用 getContentResolver 方法。要使用上下文,我将上下文作为参数传递。但仍然出现以下错误。

java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.ContentResolver android.content.Context.getContentResolver()' on a null object reference

public class GetContactName {

    public static String getContactName(Context context, String phoneNumber) {
        Uri uri = Uri.withAppendedPath(ContactsContract.PhoneLookup.CONTENT_FILTER_URI, Uri.encode(phoneNumber));

        String[] projection = new String[]{ContactsContract.PhoneLookup.DISPLAY_NAME};

        String contactName = "";
        Cursor cursor = context.getContentResolver().query(uri, projection, null, null, null);

        if (cursor != null) {
            if (cursor.moveToFirst()) {
                contactName = cursor.getString(0);
            }
            cursor.close();
        }

        return contactName;
    }

}

请帮我解决这个问题

调用 getContactName() 时,使用非空属性调用它

getContactName(getActivity(), phoneNumber);

其中 getActivity() 表示您从中调用此方法的 class 的上下文。 您可能传递了一个空引用,而不是传递正确的上下文。

您可以为应用程序创建一个单例 class 它是您可以访问 contentResolver() 的实例