gpt4 book ai didi

java - 为什么复制/剪切/粘贴文件/文件夹后需要重启?

转载 作者:行者123 更新时间:2023-11-29 05:29:09 25 4
gpt4 key购买 nike

我正在开发一个小型文件管理器来掌握 Android 上的一些东西,并且我有剪切/复制/粘贴操作。它似乎工作正常,但我在粘贴东西时遇到了问题。在我的应用程序上它显示正常,但要被其他应用程序识别,它需要我重新启动手机。例如,如果我将下载文件夹中的图像剪切/粘贴到 DCIM 文件夹,图库应用程序不会显示该图像,除非我重新启动整个手机。我正在使用一种逐字节获取数据的算法。它效率极低,但我不完全确定如何实现更快的算法。

谢谢。

最佳答案

不,实际上您不需要重启我们的手机。当您复制图像并将其粘贴到其他位置时,您新复制的媒体文件不会添加到 androidContentResolver 中。所以你应该使用 MediaScannerConnection 类扫描你的数据

例如:

当您粘贴文件时,您的文件是否正确?

按你的意愿修改,这个工作正常

private void scanImage(File targetLocation) {
// Scans the media to load images
String mimetype = Utility.getMimeType(targetLocation.getAbsolutePath());
if(mimetype.contains("image"))
{
MediaScannerConnection.scanFile(context, new String[] { targetLocation.getPath() }, new String[] { "image/jpeg" }, this);
}
}

更新

回调应该是这样的

要么你可以在你的类中实现OnScanCompletedListener并添加未实现的方法,这样你就可以将this作为回调传递或者你可以使用

OnScanCompletedListener listener = new OnScanCompletedListener() {

@Override
public void onScanCompleted(String path, Uri uri) {
// you will get the callback here

}
};

并将listener作为回调传递

关于java - 为什么复制/剪切/粘贴文件/文件夹后需要重启?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21718384/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com