我需要在外部应用程序(如Adobe Reader)中打开位于应用程序内部的一些pdf文件(原始文件夹)
如果文件在SD卡中,我尝试使用这个完美的代码但是,如果我尝试将app(包)目录放在文件行中,则没有任何反应:
public void onClick(View v) {
File file = new File("/sdcard/myfile2.pdf");
if (file.exists()) {
Uri path = Uri.fromFile(file);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(path, "application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
try {
startActivity(intent);
}
catch (ActivityNotFoundException e) {
Toast.makeText(referencias.this,
"No Application Available to View PDF",
Toast.LENGTH_SHORT).show();
}
}
}
我也试试这段代码。 应用程序Adobe Reader打开但我收到无效的访问目录错误:
public void onClick(View v) {
Intent i = new Intent();
i.setAction(Intent.ACTION_VIEW);
i.setDataAndType(Uri.parse("file:///data/app/mypackage/res/raw/myfile.pdf"),
"application/pdf");
try{
startActivity(i);
}
catch (ActivityNotFoundException e) {
Toast.makeText(referencias.this,
"No Application Available to View PDF",
Toast.LENGTH_SHORT).show();
}
最后的解决方案是每次从原始文件夹复制pdf文件到SD卡,如this tutorial。
但是真的很复杂且代码很多。
答案 0 :(得分:1)
如果您使用该应用程序编写了pdf,则应用程序文件权限可能不允许外部可见性。查看:http://developer.android.com/guide/topics/data/data-storage.html#filesInternal
答案 1 :(得分:0)
试试这件事:
File mFile = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS),
"your_file.ext"); // ext meens extension .doc .zip ....
然后将你的数据保存到这个文件,制作一个意图,你做了...但是 使用mFile而不是创建新文件或
File fileForUri=new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS)+"your_file.ext"
试试这个