0

我的 Android 版 PhoneGap-App 中下载的文件有问题。我认为PhoneGap的下载功能实际上运行良好。它从 URL 获取文件并将其存储在 SD 卡上。(代码如下)

那么问题出在哪里?当我将 JPG 或 PNG 下载到下载文件夹时,我希望它可以通过本机图库访问。但是这幅画并没有出现在画廊里。要看到它,我必须重新启动手机,或者我必须使用另一个应用程序,如 Astro。

是否有“Refresh_the_native_Gallerie”-Function 或类似的功能?

非常感谢你。

try {
     var filePath = 'file:///mnt/sdcard/Download/google.png'; // Correct filePath
     var url = "https://www.google.de/images/srpr/logo3w.png"; //Correct URL

     var fileTransfer = new FileTransfer();

     fileTransfer.download(url, filePath, function(entry) {
         console.log("s3_download download complete: " + entry.
         // Do i need a "Refresh_all_other_Apps"-function here?
     }, function(error) {
     // Normally no Error
         console.log("s3_download download error source " + error.source);
         console.log("s3_download download error target " + error.target);
         console.log("s3_download download error code" + error.code);
     });
} catch (e) {
     console.log("downloadTest ERROR: " + e);
}

不能这么快回答我自己的问题,只能编辑我的问题。所以这里是答案:

我写了一个小PhoneGap-Plugin,它实际上只是从zapl调用代码。再次感谢。希望它会帮助有同样问题的人。

你可以在这里找到代码:https ://github.com/philipp-at-greenqloud/pluginRefreshMedia

4

3 回答 3

5

我不知道这是否对您在 PhoneGap / JavaScript 上下文中有所帮助:

您的问题是图库将仅显示在设备媒体数据库中编入索引的文件。仅将文件添加到文件系统不会自动将其添加到该数据库。几乎唯一一次重新扫描/更新该数据库是在您重新启动设备或重新安装 sdcard 时(在它与 PC 共享之后,或者如果您将其弹出并放回原位)。

要将文件添加到数据库中,最简单的方法是将Intent#ACTION_MEDIA_SCANNER_SCAN_FILE发送到 MediaScanner,让它将您的文件添加到数据库中。完成后,文件将显示在图库中。

Java 代码将是

File newImage = new File("/mnt/sdcard/Download/google.png");
Intent scanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
scanIntent.setData(Uri.fromFile(newImage));
sendBroadcast(scanIntent);
于 2012-08-14T15:07:55.213 回答
0

我写了一个小PhoneGap-Plugin,它实际上只是从zapl调用代码。再次感谢。希望它会帮助有同样问题的人。

你可以在这里找到代码:https ://github.com/philipp-at-greenqloud/pluginRefreshMedia

于 2012-08-16T09:47:59.837 回答
0

这是一个非常需要的插件。我一直在尝试解决此问题,并且该插件很有效。我正在考虑自己开发一个,但你做得很好。我的头痛现在正在消退。这对我有用。

于 2012-08-27T12:34:37.283 回答