註冊後,重新啓動Android設備或後,重命名應用觸發的文件等更改只會出現在USB-MTP界面在MediaScanner他們這樣的新的文件(見Trigger mediascanner on specific path (folder), how to?):MediaScannerConnection#scanFile通過Android 5上的USB-MTP訪問目錄時將目錄轉換爲文件
file.renameTo(newFile);
MediaScannerConnection.scanFile(context,
new String[] { newFile.getAbsolutePath() }, null, null);
USB-MTP用於通過USB訪問一個機器人設備的存儲。例如。與Windows資源管理器。
然而,與索尼XPERIA平板Z(SGP321)的Android 5.0.2下(構建10.6.A.0.454)在newFile
供給將變得4KB一個文件夾。我再也無法使用Windows資源管理器訪問文件夾結構,也無法將文件複製到我的計算機上。即使重新啓動平板電腦!與Android 4.4.4相同的設備不顯示行爲。看起來只有USB-MTP視圖被破壞了。由android應用程序訪問的文件結構仍然看起來不錯。
問題:這種行爲是一個錯誤還是我實施錯誤?什麼是正確的實施?
我到目前爲止已經試過來解決該問題:
- 我目前的解決方法是避免
scanFile
的目錄。 - 我可以將文件重新轉換爲目錄,方法是將其重命名爲不帶
MediaScannerConnection#scanFile
的Android應用程序。重新啓動後,我可以再次使用Windows資源管理器訪問該目錄。 - 用Windows資源管理器重命名實際上是目錄的文件不會恢復它們。即使在重新啓動之後。
這條線作爲https://stackoverflow.com/a/21918085/433718 建議不刷新USB-MTP觀點,但也沒有 轉換目錄到文件:
context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(newFile.getParentFile()));
也許相關:
- https://stackoverflow.com/a/27321544/433718
- 使用內容解析器執行各種文件操作,例如在此答案中刪除文件:Android Deleting Files MediaScannerConnection
我結束了創建一個虛擬我想讓每個目錄中的文本文件可見,並在文件上使用scanFile。 –
你有另一個修復程序來顯示從USB MTP份額的文件夾? – reaper