如何在Android中添加自定义mime类型?

时间:2013-08-08 14:10:34

标签: android android-intent mime-types

我有一项特殊服务来上传文件。上传完成后,我从我的服务发送广播 - 其中包含一个特殊的序列化对象。该对象可以是许多类的实例。 要识别此对象类,我使用自定义意图类型。

外观如何:

// Sending broadcast
Intent intent = new Intent(UploaderService.ACTION_UPLOAD_SUCCESSFULLY);
intent.setType(UploaderService.TYPE_DOC);
intent.putExtra(UploaderService.FIELD_RESULT, object);
context.sendBroadcast(intent);

// Registering receiver
IntentFilter filter = new IntentFilter(UploaderService.ACTION_UPLOAD_SUCCESSFULLY);
filter.addDataType(UploaderService.TYPE_DOC);
registerReceiver(receiver, filter);

在注册接收器期间,我抓住了IntentFilter.MalformedMimeTypeExceptionTYPE_DOC常量看起来像"vnd.com.my.package.doc"

所以,我想,我的mime类型必须在系统中注册。我怎么能在代码中做到这一点?

1 个答案:

答案 0 :(得分:4)

  

所以,我想,我的mime类型必须在系统中注册。

不,您需要使用有效的MIME类型构造。 vnd.com.my.package.doc是一种格式错误的MIME类型。使用application/vnd.com.my.package.doc作为供应商前缀的MIME类型。

请注意,在广播中使用MIME类型是一种非常不寻常的行为。