• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

android - 如何使下载的图像显示在设备的图库中?

[复制链接]
菜鸟教程小白 发表于 2022-12-13 15:37:50 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我有一个 phonegap 照片库应用程序,可以选择将图像下载到设备。

目前,我可以将图像保存到设备的 SDCard 中,但它们不会显示在设备的照片库/图库应用程序中。

这是我正在使用的代码:

var remoteFile = encodeURI($("#imageView_content").find("img").attr("src"));
var localFileName = remoteFile.substring(remoteFile.lastIndexOf('/') + 1);

var downloadSuccess = function() {
    alert("Download sucessful!\nFile Saved at: " + localFileName);
};
var handleDownloadedFile = function(entry) {
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, downloadSuccess, fail);
};
var startFileTransfer = function(fileEntry) {
    var localPath = fileEntry.fullPath;
    var ft = new FileTransfer();
    ft.download(remoteFile, localPath, handleDownloadedFile, fail);
};
var createLocalFile = function(dir) {
    dir.getFile(localFileName, {
        create : true,
        exclusive : false
    }, startFileTransfer, fail);
};
var createPhotosDir = function(fileSys) {
    fileSys.root.getDirectory("myAppName", {
        create : true,
        exclusive : false
    }, createLocalFile, fail);
};

window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, createPhotosDir, fail);

我正在使用 https://build.phonegap.com构建应用程序

更新:

我正在尝试使用取决于设备的路径,但这似乎不起作用:

  • 在 iOS(模拟器)上,调用失败 - 路径:file:///private/var/root/Media/DCIM/100APPLE/myApp/
  • 在 Android 上,下载成功,但在设备重新启动之前,图片仍然不会显示在图库中 - 路径:dcim/myApp/
  • 我无法在 BlackBerry 上进行测试,但我已将其设置为先尝试 file:///SDCard/BlackBerry/pictures/myApp/,然后再尝试 file:///store/home/user/pictures/myApp/ 失败

这是设备检测代码:

var platform = (device.platform || navigator.userAgent).toLowerCase();
if (platform.match(/iphone/i) || platform.match(/ipad/i) || platform.match(/ios/i)) {
    window.resolveLocalFileSystemURI("file:///private/var/root/Media/DCIM/100APPLE/", createPhotosDir_fromDir, callPhotosDir);
} else if (platform.match(/blackberry/i) || navigator.userAgent.toLowerCase().match(/blackberry/i)) {
    window.resolveLocalFileSystemURI("file:///SDCard/BlackBerry/pictures/", createPhotosDir_BB, callPhotosDir);
} else if (platform.match(/android/i)) {
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, createPhotosDir_Droid, callPhotosDir);
} else {
    callPhotosDir();
}

这里是目录选择函数:

var callPhotosDir = function() {
    window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, createPhotosDir, fail);
};
var createPhotosDir_fromDir = function(dir) {
    dir.getDirectory("myApp", {
        create : true,
        exclusive : false
    }, createLocalFile, callPhotosDir);
};
var createPhotosDir_Droid = function(fileSys) {
    fileSys.root.getDirectory("dcim/myApp", {
        create : true,
        exclusive : false
    }, createLocalFile, callPhotosDir);
};
var createPhotosDir_BB = function(dir) {
    dir.getDirectory("myApp", {
        create : true,
        exclusive : false
    }, createLocalFile, function() {
        window.resolveLocalFileSystemURI("file:///store/home/user/pictures/", createPhotosDir_fromDir, callPhotosDir);
    });
};



Best Answer-推荐答案


将它们保存到 SDCard 上的正确位置。 BlackBerry 设备将 SDCard 安装在/SDCard,因此完整路径为 /SDCard/BlackBerry/pictures/

您还可以在图片目录中创建一个子目录,当从照片库应用程序查看时,该子目录将组织照片。

设备也有内置存储,但容量远小于大多数 SDCard。要将图片保存在那里,请使用路径 /store/home/user/pictures/

关于android - 如何使下载的图像显示在设备的图库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11858949/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap