24

我在 getType() 方法中添加了一个日志,它永远不会被打印出来。我正在使用记事本示例代码。请解释 Java 文档注释的第一行。从 getType() 返回 null 也可以正常工作。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;
}
4

2 回答 2

37

getType(Uri uri)通常只会在调用ContentResolver#getType(Uri uri). 应用程序(其他第三方应用程序,如果您ContentProvider已导出,或您自己的应用程序)使用它来检索给定内容 URL 的 MIME 类型。如果您的应用程序不关心数据的 MIME 类型,那么只需使用 method 就可以了return null

于 2012-09-09T21:03:59.267 回答
4

ThisContentProvidergetType()方法主要用于当您允许您ContentProvider与其他第三方应用程序交互时。Android 系统使用此 MIME 类型来查找哪些应用程序可以处理它。

于 2016-12-29T17:31:39.293 回答