我正在开发一个小型文件管理器,以便在Android上获得一些东西并且我已经切割/复制/粘贴操作。它似乎工作正常,但我遇到了粘贴事物的问题。在我的应用程序上它显示正常,但为了让其他应用程序识别它,它需要我重新启动手机。例如,如果我将图像从下载文件夹剪切/粘贴到DCIM文件夹,则除非重新启动整个手机,否则图库应用程序不会显示该图像。我正在使用一个逐字节获取数据的算法。它效率极低,但我不完全确定如何实现更快的算法。
感谢。
答案 0 :(得分:3)
实际上你不需要重启我们的手机。复制图像并将其粘贴到其他位置时,新复制的媒体文件不会添加到android
的{{1}}。因此,您应该使用课程MediaScannerConnection
ContentResolver
粘贴文件时,文件是否正确?
根据您的意愿修改,这很好用
Eg:
<强>更新强>
回调应该像
要么你可以在你的类中实现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
}
};
作为回调