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 に答える