0

我的应用程序有问题:在发布新的 Adob​​e Reader DC 之前,我将此代码用于打开的 PDF 文件,这些文件存储在我的项目的“资产”文件夹中

SomeActivity.java

@Ovveride
public boolean onOptionsItemSelected(MenuItem item) {

    int id = item.getItemId();
    AssetManager assetManager = getAssets();
    File fileDir = getFilesDir();
    OutputStream out = null;
    try {

        out = openFileOutput(fileDir.getName(), Context.MODE_WORLD_READABLE);

    } catch (FileNotFoundException e) {

        e.printStackTrace();

    }

    Context ctx = this;

    //noinspection SimplifiableIfStatement
    if (id == R.id.menu_tutorial)

        Utility.loadPDF(assetManager,fileDir,out,ctx,"Tutorial.pdf");


    if (id == R.id.menu_schedule) {

        Utility.loadPDF(assetManager, fileDir, out, ctx, "Lavoro.pdf");

    }

    if (id == R.id.menu_table) {

        Utility.loadPDF(assetManager, fileDir, out, ctx, "Tabella.pdf");

    }

    return super.onOptionsItemSelected(item);

}

实用程序.java

public static void loadPDF (AssetManager assetManager ,File filesDir, OutputStream out, Context ctx, String path ) {

    InputStream in = null;
    File file = new File(filesDir, path);

    try {

        in = assetManager.open(path);

        copyFile(in, out);
        in.close();
        in = null;
        out.flush();
        out.close();
        out = null;

    } catch (Exception e) {

        Log.e("tag", e.getMessage());

    }

    Intent intent = new Intent(Intent.ACTION_VIEW);
    intent.setDataAndType(Uri.parse("file://" + filesDir + "/" + path),"application/pdf");


    ctx.startActivity(intent);

}

这非常有效,我可以通过单击这三个菜单选项之一从我想要的每个活动中打开我的 PDF 文件。

安装新的 Adob​​e Reader DC 后,当我尝试以相同的方式打开相同的文件时,Adobe Reader DC 出现此错误:“无法访问此文件。请检查路径或网络,然后重试。”

我不知道新的 Adob​​e 应用程序是否发生了变化,但我无法再打开我的 PDF 文件了。

4

0 回答 0