我有一个小内容提供商在我的应用包中使用外部应用程序打开一个简单的pdf,但是当open()运行时,parcelfiledescription会给我一个FileNotFoundException
。
我不明白什么是正确的sintax给出包裹描述符的正确文件路径......
public ParcelFileDescriptor openFile(Uri uri, String mode) {
Log.i("info","eseguo providing");
URI uri1 = URI.create("file:///data/data/package.name/assets/prova.pdf");
File file = new File(uri1);
ParcelFileDescriptor parcel = ParcelFileDescriptor.open(file, ParcelFileDescriptor.MODE_READ_WRITE);
return parcel;
}
感谢您的帮助!
我尝试过这个简单的代码:
URI uri1 = URI.create("file:///android_asset/prova.pdf");
File file = new File(uri1);
Log.i("info","file exist: " + file.exists());
但它永远都是假的!
答案 0 :(得分:0)
来自[ParcelFileDescriptor.open方法] [1](大胆强调我的)
FileNotFoundException如果给定文件不存在或无法使用请求的模式打开,则抛出FileNotFoundException。
您是否尝试将MODE
更改为MODE_READ_ONLY
并查看是否有效?
[1]:http://developer.android.com/reference/android/os/ParcelFileDescriptor.html#open(java.io.File,int)