5

註冊後,重新啓動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應用程序訪問的文件結構仍然看起來不錯。

問題:這種行爲是一個錯誤還是我實施錯誤?什麼是正確的實施?

我到目前爲止已經試過來解決該問題:

  1. 我目前的解決方法是避免scanFile的目錄。
  2. 我可以將文件重新轉換爲目錄,方法是將其重命名爲不帶MediaScannerConnection#scanFile的Android應用程序。重新啓動後,我可以再次使用Windows資源管理器訪問該目錄。
  3. 用Windows資源管理器重命名實際上是目錄的文件不會恢復它們。即使在重新啓動之後。
  4. 這條線作爲https://stackoverflow.com/a/21918085/433718 建議不刷新USB-MTP觀點,但也沒有 轉換目錄到文件:

    context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, 
          Uri.fromFile(newFile.getParentFile())); 
    
  5. 也許相關:

+2

我結束了創建一個虛擬我想讓每個目錄中的文本文件可見,並在文件上使用scanFile。 –

+0

你有另一個修復程序來顯示從USB MTP份額的文件夾? – reaper

回答

8

我結束了創建每個我想讓可見,並在文件中使用SCANFILE目錄的虛擬文本文件。

1)創建目錄,但不要 「掃描」 目錄

2)將文件複製到目錄

3)運行SCANFILE的文件路徑

MediaScannerConnection.scanFile (_application, new String[] { filePath }, null, null);