連接Android 裝置時,您的應用程式需要將檔案儲存在可透過電腦檔案資源管理器存取的位置。但是,您目前使用 Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS) 的實作會導致檔案在 Windows 檔案總管中不可見。
這裡的問題在於 MediaStore。它最初不會檢測到您創建的文件。 Windows 檔案總管和許多裝置上的圖庫應用程式會根據 MediaStore 的索引顯示其內容。
要解決此問題,您需要使用 MediaScannerConnection 類別及其 scanFile() 方法向 MediaStore 通知您新建立的檔案。具體方法如下:
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) }
透過使用MediaScannerConnection 和scanFile(),您可以向MediaStore 通知已儲存的文件,它們將成為在Windows檔案總管和其他依賴MediaStore 資料的應用程式中可見。
以上是如何讓 Android 檔案在 Windows 檔案總管中可見?的詳細內容。更多資訊請關注PHP中文網其他相關文章!