如何直接从相机应用程序获取捕获的图像并上传到网页

时间:2013-04-08 14:57:34

标签: android html5 file-upload camera

我有一个问题是使用Android相机应用程序保存照片。我使用输入元素制作HTML5文件,如:

<input type="file" accept="image/*;capture=camera" />

这样我就可以拍摄照片,在相机应用程序后显示拍摄的照片,当我点击照片下方的保存按钮时,照片会直接返回到html对象。 当我尝试在webview中打开此页面时,我看到我必须做一些技巧。到现在为止还挺好。我可以打开相机拍摄照片了。 这是我的问题: 如何显示最后一张照片并将其保存到html对象,就像HTML5一样。我找不到显示最后一张照片的方法。 HTML5很容易做到这一点,但我坚持使用原生版本。感谢您的帮助...(顺便说一句,我使用eclipse和galaxy s3来测试本机应用程序。)

以下是我打开相机应用的代码。

活动代码:

Intent i = new Intent(Intent.ACTION_PICK);
i.addCategory(Intent.CATEGORY_DEFAULT);
i.setType("image/*");       

FileUploadTest.this.startActivityForResult(Intent.createChooser(i,"File Chooser"), 
    FILECHOOSER_RESULTCODE);

1 个答案:

答案 0 :(得分:0)

我看到没有人对这个问题感兴趣。无论如何,我找到了解决方案,并希望与感兴趣的人分享。

  • 不要忘记调用方法的“超级”。

  • 不要忘记在每种情况下调用“onReceiveValue”。如果您不打电话,您的应用程序将崩溃

@Override
  protected void onActivityResult(int requestCode, int resultCode,
          Intent intent) {
      try {
          super.onActivityResult(requestCode, resultCode, intent);

          if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK)
              mUploadMessage.onReceiveValue(intent == null ? this.fileUri
                      : intent.getData());
          else
              mUploadMessage.onReceiveValue(null);
      } catch (Exception e) {
          Log.e("Error9", e.getLocalizedMessage());
          mUploadMessage.onReceiveValue(null);
      } finally {
          mUploadMessage = null;
      }
  }