我已经编写了内容提供程序,可以在我的应用程序包中使用外部应用程序(Android的标准图像查看器)打开一个png文件。图像存储在资产文件夹中。
我无法理解问题出在哪里,但它对我不起作用。
ContentProvider的openFile:
@Override
public ParcelFileDescriptor openFile(Uri uri, String mode) throws FileNotFoundException {
URI file_uri = URI.create("file:///data/data/com.package/assets/image.png");
File file = new File(file_uri.getPath());
ParcelFileDescriptor parcel = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_ONLY);
return parcel;
}
开始活动:
Uri uri = Uri.parse("file:///android_asset/image.png");
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "image/*");
startActivity(intent);
这种方法是否正确,我的错误在哪里?或者我完全错了?
答案 0 :(得分:3)
新活动无法访问您的内部资产目录。您可以将图像放在SD卡上,也可以使用属于应用程序的ImageView。