【问题标题】:Take a picture with camera, but do not save it用相机拍照,但不要保存
【发布时间】:2012-05-17 04:54:23
【问题描述】:

我想制作一个程序来拍摄照片,对其进行地理标记并将其存储在我的服务器上。

1) 有没有办法拍照但不保存?我只想拍照,压缩并发送到我的服务器。我不想将它存储到 SD 卡或内部存储器或任何东西,只是发送它。如果这是不可能的,那么我该如何临时存储并删除它?
2)另外,我如何访问我刚刚拍摄的照片并发送?

【问题讨论】:

    标签: android camera store send


    【解决方案1】:

    对于您的第一个问题,我认为没有办法不在手机上保存图片。它需要保存在某个地方,而另一个选项(应用程序内存)肯定会为 OOM 错误创造很多机会。

    第二个,你可以像这样创建你的相机意图:

    Intent takePictureFromCameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    takePictureFromCameraIntent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(someFilePathString)));
    startActivityForResult(takePictureFromCameraIntent, CAMERA_REQ);
    

    这将导致相机活动拍摄的照片存储在someFilePathString.指定的路径然后,在您的onActivityResult(或任何地方)中,您可以使用:File myFile = new File(someFilePathString)访问您要发送的图像你的服务器。

    【讨论】:

    • 对于 someFilePathString,我应该为路径添加什么?相机图像的有效文件路径是什么?另外,如何获取该目录中图像的名称,以及如何在完成操作后删除图像?似乎没有任何在线或在 andorid 开发页面上的开发指南中关于此
    • developer.android.com/guide/topics/data/data-storage.html 这是一个关于数据存储的链接开发人员指南。您可能需要 SD 卡的文件路径,但您需要先检查是否已安装,否则使用内部存储的路径。 ( Environment.getExternalStorageDirectory().getAbsoluteFilePath() 和 myContext.getFilesDir() )。我相信您可以通过 Google 找到创建有效路径的方法。至于删除,请查看 File 类中的一些方法,例如 delete()。如果您自己尝试并发布代码和更具体的问题,那么提供帮助会容易得多。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-06
    • 1970-01-01
    相关资源
    最近更新 更多