Android内容类型 - vnd.android.cursor.dir是由android定义的一些标准常量吗?

dev*_*vgp 49 android

我对内容类型有非常基本的理解问题.

我通过大量的例子和文字解释了上述术语,但仍然有一些基本的理解问题.有些人可以澄清一下.

在Android记事本例子中,和其他许多人,它被提及vnd.android.cursor.dir /解析为项目的目录清单,并vnd.android.cursor.item /是指特定项目的目录.

这是vnd.android.cursor.dir由android定义的一些标准常量.这是从哪里来的?或者我可以改变它

vn.com.android.myexample.dir /

这是如何解决的,它的目的是什么,为什么不使用完整的CONTENT_URI?

对不起,我完全迷路了,不明白这一点.

Rob*_*Rob 75

文档:https://developer.android.com/guide/topics/providers/content-provider-basics#MIMETypeReference

ContentProvider.getType返回的MIME类型有两个不同的部分:

type/subType
Run Code Online (Sandbox Code Playgroud)

类型部分表示ContentProvider为给定URI返回的众所周知的类型,因为查询方法只能返回类型应始终为的游标:

  • vnd.android.cursor.dir 当你期望Cursor包含0到infinity项时

要么

  • vnd.android.cursor.item 当你希望Cursor包含1项时

subType部分可以是众所周知的子类型,也可以是应用程序的唯一子类型.

因此,在使用ContentProvider时,您可以自定义MIME类型的第二个子类型部分,但不能自定义第一部分.例如,ContentProvider的应用程序的有效MIME类型可能是:

vnd.android.cursor.dir/vnd.myexample.whatever
Run Code Online (Sandbox Code Playgroud)

Intent可以使用从ContentProvider返回的MIME类型来确定要启动哪个活动来处理从给定URI检索的数据.


And*_*rey 5

这是哪里来的?还是可以像vn.com.android.myexample.dir /一样更改它?

不可以,因为“ vnd”在MIME注册树中代表供应商,在这种情况下为android。