【发布时间】:2013-01-23 20:29:50
【问题描述】:
我正在尝试使用意图在 Android (4.0) 中打开本地文件。以下是执行该操作的代码。只要文件没有特殊空格,就可以正常工作(例如:如果文件是 /data/data/com.xxxx.yyyy/files/Downloads/Documents/ProductFeature.pptx,则它可以正常打开,但如果文件名称是 /data/data/com.xxxx.yyyy/files/Downloads/Documents/Product Feature.pptx (注意名称中的空格),然后失败。Uri.fromFile 正确编码空间,但其他应用程序似乎无法解释它们并似乎无法打开。
Intent intent = new Intent();
intent.setAction(android.content.Intent.ACTION_VIEW);
Uri uri = Uri.fromFile(new File( selectedEntry.get(Defs.PATH_KEY)));
System.out.println("openFileWith: File to open: " + uri);
intent.setDataAndType(uri,type);
startActivity(Intent.createChooser(intent, "Open With ..."));
我也尝试在没有太多帮助的情况下使用“file://”+ 未编码路径。
那么你如何处理这种情况呢?任何帮助表示赞赏
【问题讨论】:
-
尝试“\”而不是“”。不过我不确定,试试看吧
-
尝试用 + 号或 %20 替换空格,或尝试在名称周围添加双引号。
-
@pvn 我试过了,但似乎没有帮助。谢谢你的建议。我以前什至没有尝试过。
-
@SylvainL %20 是在 Uri.fromFile (按照它的编码方式)时生成的,但它不起作用,我会尝试使用“+”号并报告谢谢!
-
如果您尝试使用双引号,请尝试使用以下两个版本:“/data/data/com.xxxx.yyyy/files/Downloads/Documents/ProductFeature.pptx”或/data/data /com.xxxx.yyyy/files/Downloads/Documents/"ProductFeature.pptx"
标签: android