【问题标题】:how to use phonegap-2.9.0 camera and store in android device?如何使用 phonegap-2.9.0 相机并存储在 android 设备中?
【发布时间】:2013-11-19 07:53:50
【问题描述】:

注意:我是愚蠢的,因为我尝试了很多东西,图片确实保存到我的本地存储中,但我一直在检查我的画廊(一直认为画廊会扫描所有图像)但不知何故它不在我的图库,所以我一直认为图像没有保存

我正在使用 phonegap 2.9.0 并使用相机 API。 phonegap 文档甚至提供了一个完整的 html 示例,您可以将代码复制并粘贴到 www 文件夹中,然后部署和相机完美地工作,只是它不会将拍摄的图像保存到本地/sd 存储中。我想知道如何并且已经尝试了一段时间有人可以帮我吗?

在发布这个问题之前,我做了一些研究。 我确实找到了一个帖子:

Save image in local storage phonegap

但我在那里尝试了代码,但不知何故它对我不起作用。 我还搜索了一些网站和帖子,其中很多只是提到了添加 saveToPhotoAlbum: true ,这在 phonegap 文档中提到,我尝试了它根本不起作用..

我查看了 phonegap 2.9.0 文档,看到了权限,所以我相信我也需要添加这些代码,所以我这样做了...

在我添加的 config.xml 中

<plugin name="Camera" value="org.apache.cordova.CameraLauncher" />

在我添加的 AndroidManifest 中

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

在 index.html 中,我只是使用了完整的例子,其中 phonegap。提供 2.9.0。 我认为必须在这里粘贴它,但我相信这是我需要在代码中添加一些东西的地方..

// A button will call this function
//
function capturePhoto() {
  // Take picture using device camera and retrieve image as base64-encoded string
  navigator.camera.getPicture(onPhotoDataSuccess, onFail,{ quality: 50,
    destinationType: destinationType.DATA_URL, saveToPhotoAlbum: true });
}

我认为通过添加 saveToPhotoAlbum: true 会起作用,但似乎不起作用。

有人可以帮帮我吗?文档看起来很简单,但当无法找出问题所在时会感到沮丧(:

【问题讨论】:

    标签: android cordova camera storage


    【解决方案1】:

    改一下

    destinationType: Camera.DestinationType.DATA_URL
    

    destinationType: Camera.DestinationType.FILE_URI
    

    它会返回你的 imageuri,为了获得确切的位置,你可以在 phonegap 中使用文件系统 api

    window.resolveLocalFileSystemURI(imageURI, resolveOnSuccess, fsFail);
    function resolveOnSuccess(entry) {
    var fileuri = entry.toURL();
    //console.log(fileuri);
    }
    

    【讨论】:

    • 我只更改了destinationType: Camera.DestinationType.FILE_URI,如您所说,但仍然没有任何反应,从其他一些帖子中尝试过。有什么我想念的吗?
    • 好的,我意识到,它确实保存但不在画廊中,我必须进入本地存储并获取它,难怪我尝试了这么长时间,很多帖子说更改为 FILE_URL 会起作用跨度>
    • 没用????你得到 ImageURI 吗?我有相同的代码正在工作....
    • 然后我想到了为什么我在图库中找不到它……这很奇怪!图片的时间戳是 1969 年 12 月 12 日下午 4 点,所以在画廊中,它就像一个旧图像在文件夹的很远很远的地方,不像我打开画廊时它通常是第一个。这就是为什么我一开始就找不到它的原因
    • 嗨,我知道这个帖子是很久以前的事了,但你最后解决了时间戳问题吗?因为我面临同样的问题,它只是将时间设置为 1970/01/01。
    【解决方案2】:

    1.destinationType:Camera.DestinationType.DATA_URL

    DATA_URL 仅在此处返回 base64 字符串图像不存储在相册中;

    2.destinationType:Camera.DestinationType.FILE_URL

    FILE_URL 返回图片网址。这里的图片存储在相册中。

    如果你需要我的意思是base64字符串和存储在相册中的图像。你需要做点什么

    • 从相机成功获取 url 然后在 phonegap 中使用 File API - FileReader (readAsDataURL) 概念

      1. FILE_URL 更适合 android DATA_URL 有时会因内存不足错误导致应用程序崩溃

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-09
      相关资源
      最近更新 更多