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



我有一个使用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);

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

  • 别忘了调用方法的"super"

  • 不要忘记在每种情况下调用"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;
      }
  }

最新更新