2013-02-28 102 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「我的問題得到解決。

相關問題