我有一些奇怪的事情,在我的应用程序中,我必须将媒体元素存储在受保护的存储中,而不是存储在SD卡上。我已经按照指南创建了一个自定义ContentProvider,它通过openFile命令提供文件。这适用于视频播放,但默认图像预览不起作用。两个地方都使用相同的代码来启动意图。关于发生了什么的任何想法? ContnentProvider
@Override
public ParcelFileDescriptor openFile(Uri uri, String mode)
throws FileNotFoundException {
String requestedFile = uri.getPath();
if (requestedFile.startsWith("//")) {
requestedFile = requestedFile.substring(1);
}
return ParcelFileDescriptor.open(FileTools.getFileFromStorage(requestedFile), ParcelFileDescriptor.MODE_READ_ONLY);
}
图片OnClick意图
File file = new File(message.MediaPath);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(FileTools.getIntentUri(file), "image/jpg");
mContext.startActivity(intent);
我可以单步执行代码并看到它调用我的打开文件并返回,但预览不会显示它。任何建议或者你能说出我错过的东西吗?
布赖恩
编辑:
经过一些检查并重新安装应用程序后,我能够完成上述工作,似乎我尝试的图像都以某种方式损坏了。