ホームページ >Java >&#&チュートリアル >Android アプリのファイルが Windows ファイル エクスプローラーに表示されないのはなぜですか?
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 中国語 Web サイトの他の関連記事を参照してください。