2013-02-28 103 views
0

我在我的应用程序中设置了一个文件“导入 - 导出”过程(使用gmail客户端),允许用户在彼此之间甚至设备之间共享kml文件。请阅读用户通过以了解最多的步骤。从保存的电子邮件附件中读取kml文件

文件输出处理:
1)用户将地标添加到地图。
2)用户使用用户定义的名称以kml格式将地标保存在/ sdcard上(比如说“Saved.kml”)。
3)通过gmail附件,用户“输出”Saved.kml。

正在处理的文件:
1)用户将gmail附件保存到设备上的下载文件夹。
2)用户选择“导入KML”并从列表中选择Saved.kml。
3)一切正常完美!地图就像导出/预期一样出现在地图上!

除了一个主要缺陷...这只适用于当您使用相同的设备进口/出口。我有两个设备; Nexus 7和LG Motion,它们都能很好地工作。但我无法在两者之间工作,我开始感到非常沮丧。 这是我曾尝试:

舱单更改:
机器人:sharedUserId = “com.xxx.xxx”
机器人:sharedUserLabel = “@字符串/ sharedUserLabel”

调用Runtime.getRuntime()。 exec(“chmod 444 Saved.kml”); //(需要支持Android级别4)

即使在解析Saved.kml之前尝试了这一点 - importFileIn.renameTo(importFileOut); 和文件被重命名但仍然无法解析。

ADB壳所示: -rw-RW-R--根sdcard_rw 867 2013年2月28日10时39 Saved.kml -rw-RW-R--根sdcard_rw 867 2013年2月28日11: 44已保存Renamed.kml

我用“adb push”,它显示了与推送文件完全相同的userid /权限,仍然不会加载。

我刚刚在发布前的最后一分钟测试时发现了这一点。 在同一台设备上进行测试从未遇到过单一问题......请帮助。

回答

0

对不起人, 通过Stack Overflow提出这个问题,让我输入了我一直在琢磨的一切,并最终让我相信这不是一个文件权限问题。通过使用Log.i,我打印出异常,并发现这实际上是一个“文件未找到”的错误。这当然是一个完全不同的东西!路径错误,问题解决! 感谢您对我的耐心。

+0

更具体的尝试帮助:
Ron 2013-03-02 14:17:35

0

为了更具体地尝试帮助:
我从设备“下载”文件夹中的文件中提取数据。
在Nexus 7上这是:“/ storage/emulated/0/Download”。
在LG Motion上这是:“/ sdcard/Download”。
通过使用“root.getAbsolutePath()+”/ download“我的问题得到解决。

相关问题