Windows에서 외부 저장소에 있는 파일에 액세스
Android는 외부 저장소에 있는 파일에 액세스할 수 있는 통합된 방법을 제공하여 앱과 파일 모두에서 파일이 표시되도록 합니다. 시스템 파일 탐색기. 그러나 앱 파일을 외부 저장소에 쓴 후 Windows에 표시되지 않으면 구현에 문제가 있음을 나타낼 수 있습니다.
현재 구현
구현했습니다. 일반적으로 Windows에 표시되는 Environment.DIRECTORY_DOCUMENTS 디렉터리에 파일을 쓰는 중입니다. 그러나 문제는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!