gpt4 book ai didi

android - 以编程方式打开pdf文件

转载 作者:太空宇宙 更新时间:2023-11-03 12:00:10 25 4
gpt4 key购买 nike

我正在研究 pdf。我正在尝试使用下面的代码从我的应用程序中打开一个 pdf 文件。但是我打不开。

private void openPdf() {

File file = new File("mnt/sdcard.test.pdf");
Uri path = Uri.fromFile(file);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.setAction(Intent.ACTION_VIEW);
intent.setData(path);
intent.setType("application/pdf");
try {
startActivity(intent);
} catch (ActivityNotFoundException e) {
Toast.makeText(getActivity(), "No application found",
Toast.LENGTH_SHORT).show();
}
}

当我在模拟器中尝试这段代码时,它显示了一个 toast 说“找不到应用程序”(bcoz,模拟器中通常没有安装 pdf 查看应用程序)。当我在设备中测试相同的东西时(特别是在 funbook 选项卡和 sony 选项卡中),它既没有显示 Toast 消息也没有打开 pdf 文件。谁能指出我的代码中的错误。实际上我是第一次使用 pdf。所以我的问题是,

  1. 在设备中它没有显示 toast 消息,这意味着有一个我的手机中安装了 pdf 查看应用程序?对吗?
  2. 如果是,为什么不能使用第三方应用程序打开 pdf。
  3. 如果我想列出我安装的所有 pdf 查看应用程序电话给用户,我应该对此代码进行哪些更改?

最佳答案

我得到了上述问题的解决方案,所以尝试一次;

步骤:-

  1. 在您的应用名称下的 src 中创建 Assets 文件夹。

  2. 在此 Assets 文件夹中保存您的 pdf 文件,例如schedule1.pdf.

  3. 现在开始您的 Activity ,即 MainActivity.java

  4. 在您想要的任何 UI 组件上设置监听器,即(ButtonImageViewImageButton);

    <
  5. 在此监听器中调用一个用户定义的方法,即 openPDFFiles()

openPDFFiles() 方法有以下代码:

private void openPDFFiles() {
AssetManager assetManager = getAssets();

InputStream in = null;
OutputStream out = null;
File file = new File(getFilesDir(), “schedule1.pdf”);//here schedule1.pdf is the pdf file name which is keep in assets folder.
try {
in = assetManager.open(“schedule1.pdf”);
out = openFileOutput(file.getName(), Context.MODE_WORLD_READABLE);

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://” + getFilesDir() + “/schedule1.pdf”), “application/pdf”);

startActivity(intent);
}

private void copyFile(InputStream in, OutputStream out) throws IOException {
byte[] buffer = new byte[1024];
int read;
while ((read = in.read(buffer)) != -1) {
out.write(buffer, 0, read);
}
}

关于android - 以编程方式打开pdf文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11398239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com