我编写了内容提供程序以使用外部应用程序(Android 的标准图像查看器)在我的应用程序包中打开一个 png 文件。图像存储在 Assets 文件夹中。
我不明白哪里出了问题,但它对我不起作用。
打开ContentProvider的文件:
@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;
}
开始 Activity :
Uri uri = Uri.parse("file:///android_asset/image.png");
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(uri, "image/*");
startActivity(intent);
这种方法是否正确,我的错误在哪里?还是我完全错了?
最佳答案
新 Activity 无权访问您的内部 Assets 目录。您可以将图像放在 SD 卡上,也可以使用您自己的应用程序中的 ImageView。
关于java - 使用外部程序从 Assets 中打开图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5315016/