從Windows 存取外部儲存上的檔案
Android 提供了一種統一的方式來存取外部儲存上的檔案,使它們在應用程式和應用程式中都可見系統檔案瀏覽器。但是,如果您的應用程式的檔案在將其寫入外部儲存空間後未出現在 Windows 中,則可能表示您的實作有問題。
目前實作
您已實作檔案寫入Environment.DIRECTORY_DOCUMENTS目錄,該目錄通常在Windows中可見。然而,問題在於 MediaStore 的索引。
MediaStore 索引
MediaStore 負責將外部儲存上的檔案索引,並將其呈現在系統檔案總管和圖庫應用程式中。如果新建立的檔案尚未被 MediaStore 發現,則該檔案將不可見。
建議的解決方案
要使應用程式的檔案在 Windows 中可見,您需要使用 MediaScannerConnection 及其 scanFile() 方法向 MediaStore 通知它們。此函數指示 MediaStore 索引指定檔案並相應更新其記錄。
程式碼片段
在Java 中:
public void scanFile(Context ctxt, File f, String mimeType) { MediaScannerConnection.scanFile(ctxt, new String[] {f.getAbsolutePath()}, new String[] {mimeType}, null); }
Kotlin 中:
fun scanFile(ctxt: Context, f: File, mimeType: String) { MediaScannerConnection.scanFile(ctxt, arrayOf(f.getAbsolutePath()), arrayOf(mimeType), null) }
將資料寫入磁碟後會呼叫scanFile(),您將觸發MediaStore 為您的檔案建立索引並使其在Windows和裝置上的檔案總管中可見。
以上是為什麼我的 Android 應用程式的檔案沒有顯示在 Windows 檔案總管中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!