android 不推荐使用“操作媒体扫描器扫描文件:字符串”

axr492tv  于 2023-01-15  发布在  Android
关注(0)|答案(3)|浏览(144)
activity?.sendBroadcast(Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,Uri.fromFile(copyFile)))

我收到警告了
不建议使用动作媒体扫描器扫描文件。
在上述代码中
有简单的替换代码吗?

zyfwsgd6

zyfwsgd61#

操作介质扫描器扫描文件已弃用!
您可以使用以下方法
java

File file = new File(filePath);
MediaScannerConnection.scanFile(context,
                    new String[]{file.toString()},
                    null, null);

Kotlin

val file = File(filePath) 
MediaScannerConnection.scanFile(context, arrayOf(file.toString()),
      null, null)

这将请求媒体扫描程序扫描指定路径中的文件。另外,值得注意的是,在上例中scanFile()方法中的第3个和第4个参数为空。然而,第3个参数可用于可选地指定文件的MIME类型,第4个参数可用于提供侦听器来侦听扫描完成事件。
有关详细信息,请参阅开发人员站点
以下是不建议使用的方法

sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(file)));
zy1mlcev

zy1mlcev2#

如果您使用的是Media Store API,则将其传递给解析器将触发媒体扫描。

val contentValues = ContentValues().apply {
    put(MediaStore.MediaColumns.DISPLAY_NAME, "test.jpg")
    put(MediaStore.MediaColumns.MIME_TYPE, "image/jpg")
    put(MediaStore.MediaColumns.RELATIVE_PATH, Environment.DIRECTORY_PICTURES) // requires API level 29
}

// this also adds it to the gallery
contentResolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues)
yhived7q

yhived7q3#

来自www.example.comhttps://developer.android.com/reference/android/content/Intent.html#ACTION_MEDIA_SCANNER_SCAN_FILE
此常量在API级别29中已弃用。调用者应迁移到直接将项目插入到MediaStore中,在MediaStore中,项目将在每次变化后自动扫描

相关问题