PDF文件路径不正确
PDF file path is incorrect
我想在我的应用程序中打开一个 PDF 文件,但每次都出错。
是的,我看了很多关于它的话题,但是 none 对我有帮助。
以下是错误的一些照片:
btn3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//startActivity(new Intent(MainActivity.this, Activity2.class));
File file = null;
file = new File(Environment.getExternalStorageDirectory() + "/raw/" + "tirepressuremonitoringsystem3.pdf");
Toast.makeText(getApplicationContext(), file.toString() , Toast.LENGTH_LONG).show();
if(file.exists()) {
Intent target = new Intent(Intent.ACTION_VIEW);
target.setDataAndType(Uri.fromFile(file), "application/pdf");
target.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
Intent intent = Intent.createChooser(target, "Open File");
try {
startActivity(intent);
} catch (ActivityNotFoundException e) {
// Instruct the user to install a PDF reader here, or something
}
}
else
Toast.makeText(getApplicationContext(), "File path is incorrect." , Toast.LENGTH_LONG).show();
}
}
);
也许错误是我把这些文件放在 /raw ?我应该将它们存储在 assest 文件夹 中吗?
替换你的这一行
file = new File(Environment.getExternalStorageDirectory() + "/raw/" + "tirepressuremonitoringsystem3.pdf");
用这条线
file = new File("android.resource://com.cpt.sample/raw/tirepressuremonitoringsystem3.pdf");
如果要在运行时通过标识符访问它,请使用 raw:
R.raw.tirepressuremonitoringsystem3
如果要通过字符串名称访问它,请使用资产。
无论哪种方式,您都需要将其从您的应用复制到另一个应用可以访问的位置,如以下答案中所述:
- Android - Access file from assets \ PDF display
- How to open a pdf stored either in res/raw or assets folder?
您似乎想从 raw 文件夹访问文件 @gdd.
因为在编译您的 android 项目时 R.java 文件已生成,您可以通过 R.raw.fileName 访问原始文件夹中的任何内容,在您的情况下,您想要访问文件名 tirepressuremonitoringsystem3.pdf,因此您可以使用 R.raw.tirepressuremonitoringsystem3.
如果您不想这样做并想使用 jdks 文件 api .. this question will help you
谢谢,继续编码。
我想在我的应用程序中打开一个 PDF 文件,但每次都出错。 是的,我看了很多关于它的话题,但是 none 对我有帮助。
以下是错误的一些照片:
btn3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//startActivity(new Intent(MainActivity.this, Activity2.class));
File file = null;
file = new File(Environment.getExternalStorageDirectory() + "/raw/" + "tirepressuremonitoringsystem3.pdf");
Toast.makeText(getApplicationContext(), file.toString() , Toast.LENGTH_LONG).show();
if(file.exists()) {
Intent target = new Intent(Intent.ACTION_VIEW);
target.setDataAndType(Uri.fromFile(file), "application/pdf");
target.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
Intent intent = Intent.createChooser(target, "Open File");
try {
startActivity(intent);
} catch (ActivityNotFoundException e) {
// Instruct the user to install a PDF reader here, or something
}
}
else
Toast.makeText(getApplicationContext(), "File path is incorrect." , Toast.LENGTH_LONG).show();
}
}
);
也许错误是我把这些文件放在 /raw ?我应该将它们存储在 assest 文件夹 中吗?
替换你的这一行
file = new File(Environment.getExternalStorageDirectory() + "/raw/" + "tirepressuremonitoringsystem3.pdf");
用这条线
file = new File("android.resource://com.cpt.sample/raw/tirepressuremonitoringsystem3.pdf");
如果要在运行时通过标识符访问它,请使用 raw:
R.raw.tirepressuremonitoringsystem3
如果要通过字符串名称访问它,请使用资产。
无论哪种方式,您都需要将其从您的应用复制到另一个应用可以访问的位置,如以下答案中所述:
- Android - Access file from assets \ PDF display
- How to open a pdf stored either in res/raw or assets folder?
您似乎想从 raw 文件夹访问文件 @gdd.
因为在编译您的 android 项目时 R.java 文件已生成,您可以通过 R.raw.fileName 访问原始文件夹中的任何内容,在您的情况下,您想要访问文件名 tirepressuremonitoringsystem3.pdf,因此您可以使用 R.raw.tirepressuremonitoringsystem3.
如果您不想这样做并想使用 jdks 文件 api .. this question will help you
谢谢,继续编码。