为什么使用ContentProvider.getType()来获取MIME类型?

时间:2011-03-18 11:59:41

标签: android mime-types

查看内容提供者,我对getType()方法的典型用法并不十分清楚。 API文档说明了实现此方法

  

这允许[applications]检索MIME   调度时键入URI   意图。

有人能描述使用它的典型情况会特别有用吗?

2 个答案:

答案 0 :(得分:18)

例如,您正在为图片库编写内容提供商。你应该在你的getType()方法中提到你提供图片 - jpg或png。因此,当一个人启动图库时,它将能够显示内容提供商提供的内置图片和图片。

在伪代码中,contentProvider的用户执行以下操作:

List contentProviders = getProviders();
List resultProviders;
final Type type = Type.JPG;
for (ContentProvider provider : contentProviders) {
  if (type == provider.getType()) {
     resultProviders.add(provider);
  }
}

这是伪代码,但我希望你能得到这个想法。

答案 1 :(得分:0)

据我了解,用例可能如下:

App A包含内容提供商。应用B使用该内容提供商从App A中检索所有数据项。然后用户选择其中一个(在应用B中),之后应该启动应用A中的活动以显示/编辑/删除所选数据项。因此,App B然后创建一个intent,并确保App A中的活动处理它,您需要将intent的(mime-)类型设置为uri的mime类型(show / edit / delete活动)在App A中已将此mime类型添加到其intent过滤器中。)