Android ContentProvider getType() вызывается, когда и почему


Я помещаю журнал в метод getType (), который никогда не печатается. Я использую пример кода Блокнота. Пожалуйста, объясните 1-ю строку комментария Java doc. Возврат null из getType () также работает нормально. Какова цель метода getType ()?

    /**
 * This is called when a client calls {@link android.content.ContentResolver#getType(Uri)}.
 * Returns the MIME data type of the URI given as a parameter.
 * 
 * @param uri The URI whose MIME type is desired.
 * @return The MIME type of the URI.
 * @throws IllegalArgumentException if the incoming URI pattern is invalid.
 */
@Override
public String getType(Uri uri)
{
    Log.d("Suparna", "******getType()");
    /*switch(uriMatcher.match(uri))
    {
    // ---get all books---
    case BOOK_DETAILS:
        return Book.Book_Details.CONTENT_TYPE;
        // ---get a particular book---
    case BOOK_DETAILS_ID:
        return Book.Book_Details.CONTENT_ITEM_TYPE;
    default:
        throw new IllegalArgumentException("Unsupported URI: " + uri);
    }*/
    return null;
}
2 22

2 ответа:

getType(Uri uri) обычно вызывается только после вызова ContentResolver#getType(Uri uri). Он используется приложениями (либо другими сторонними приложениями, если ваш ContentProvider был экспортирован, либо вашим собственным) для получения типа MIME данного URL-адреса содержимого. Если ваше приложение не связано с типом MIME данных, вполне нормально просто иметь метод return null.

Этот ContentProvider'S getType() метод используется в основном, когда вы позволяете вашему ContentProvider взаимодействовать с другими сторонними приложениями. Этот тип MIME используется системой Android, чтобы найти, какие приложения могут справиться с ним.