java-在Android中打开pdf时出现问题:无效的文件路径
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java-在Android中打开pdf时出现问题:无效的文件路径,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1857字,纯文字阅读大概需要3分钟。
内容图文
我需要从我的Android应用程序打开pdf文件.我将pdf保存在应用程序包文件夹(/data/data/com.app.example/files)中.我已经在Android模拟器中安装了Adobe Reader应用程序.问题是,当我尝试使用Adobe Reader打开pdf文件时,模拟器向我显示了下一条消息:无效的文件路径.
我不知道为什么会这样,但我坚持这一点.该文件已正确保存,因为我可以在计算机上打开它.
这是代码:
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(url);
try {
HttpResponse response = client.execute(request);
request(response, file_name);
File file = new File("data/data/com.app.example/files/"+file_name);
PackageManager packageManager = getPackageManager();
Intent testIntent = new Intent(Intent.ACTION_VIEW);
testIntent.setType("application/pdf");
List list = packageManager.queryIntentActivities(testIntent, PackageManager.MATCH_DEFAULT_ONLY);
if(file.exists())
{
if (list.size() > 0 && file.isFile()) {
Intent intent = new Intent();
intent.setAction(Intent.ACTION_VIEW);
Uri uri = Uri.fromFile(file);
intent.setDataAndType(uri, "application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
}else
{
System.out.println("NO APPs TO OPEN PDFs.");
}
}
else
{
System.out.println("FILE DOES NOT EXIST.");
}
}catch(Exception ex){
System.out.println("Failed!");
ex.printStackTrace();
}
public String request(HttpResponse response, String file){
String result = "";
try{
InputStream in = response.getEntity().getContent();
FileOutputStream f = openFileOutput(file, MODE_WORLD_WRITEABLE);
byte[] buffer = new byte[in.toString().length()];
int len1 = 0;
int counter = 0;
while ((len1 = in.read(buffer)) > 0) {
f.write(buffer, 0, len1);
counter++;
}
f.close();
}
catch(Exception ex){
result = "Error";
}
return result;
}
提前致谢.
问候,哈维.
解决方法:
这是因为PDF文件位于您自己的程序包中,而Adobe Reader试图从您的程序包中访问PDF文件,这是Android应用程序开发所不允许的.
您可以尝试将文件保存在SDCARD上,然后将其打开
内容总结
以上是互联网集市为您收集整理的java-在Android中打开pdf时出现问题:无效的文件路径全部内容,希望文章能够帮你解决java-在Android中打开pdf时出现问题:无效的文件路径所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。