MediaScannerConnection.scanFile() 不在 Windows 资源管理器中显示文件,即使文件存在于 phone

MediaScannerConnection.scanFile() doesn't show file in Windows Explorer even though file exists on phone

方法 createNewFile() returns 正确并显示文件在我 phone 上的位置。该文件出现在我的 phone 的文件管理器中,但没有出现在 Explorer 中。

基本上我在 File 对象上调用 createNewFile():

File file = new File(path);
try {
        file.createNewFile());

我写入文件然后调用:

MediaScannerConnection.scanFile(context, new String[]{file.getAbsolutePath()}, null, null);

这应该会在 Windows Explorer 中显示,这在另一个应用程序中发生过,但在这个应用程序中没有,我没有看到任何相关差异。此外,断开和重新连接 USB 电缆或重新启动我的 phone 都不会导致文件显示在资源管理器中。

试试这个:

public static void broadCastToMediaScanner(Context context, File file) {

    Uri contentUri = Uri.fromFile(file);
    Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
    mediaScanIntent.setData(contentUri);
    context.sendBroadcast(mediaScanIntent);
}