以前に「プライベート」ファイルシステムに保存されたファイルを開くにはどうすればよいですか?ファイルはWebサービスによってダウンロードされており、ローカルfsに保存する必要があります。インテント(Action_View)を介してファイルを開こうとすると、「奇妙な」エラーが発生しました。ファイルはファイルシステムに存在しますが(エミュレーター/エクリプスのファイルエクスプローラーでファイルを確認しました)、起動されたギャラリーアクティビティの呼び出しには表示されません。写真の代わりに、ギャラリーにはコンテンツが含まれていない黒い画面が表示されます(アクションバーを除く)。この方法でpdf/movie / mp3ファイルを開こうとしたときにも同じことが起こります(たとえば、pdfはファイルが破損していることを示しています)。
ところで:ローカルfsに保存されているデータは有効(破損していない)です。デバッガーからファイルをダウンロードし(pullメソッドを使用)、ワークステーションでファイルを開くことができます...
public void onAttachment(Context context, Attachment attachment) {
try {
//Attachment is a structured data object that contains of a byte[], filename and mimetype (like image/jpeg)
FileOutputStream fos = FileOutputStream fos = context.openFileOutput(attachment.getAttachmentFileName(), Context.MODE_PRIVATE);
fos.write(attachment.getBinary());
fos.flush();
fos.close();
File f = context.getFileStreamPath(attachment.getAttachmentFileName());
Uri uri = Uri.fromFile(f);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri,attachment.getAttachmentMimetype());
context.startActivity(intent);
} catch (IOException e) {
e.printStackTrace();
}
}