2

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

它的外观:

// 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.MalformedMimeTypeException. TYPE_DOC恒定的样子"vnd.com.my.package.doc"

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

4

1 回答 1

5

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

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

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

于 2013-08-08T14:30:04.500 回答