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);
}
方法 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);
}