Android - 未找到内容提供程序文件异常

时间:2011-03-08 09:52:02

标签: java android android-contentprovider

我有一个小内容提供商在我的应用包中使用外部应用程序打开一个简单的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());

但它永远都是假的!

1 个答案:

答案 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)

相关问题