在Android上使用没有SD卡的相机

时间:2011-12-04 18:39:56

标签: android android-camera

我只想确认在Android上没有SD卡的情况下无法使用相机?

我触发MediaStore.ACTION_IMAGE_CAPTURE意图使用相机并试图让相机将图像存储在apps数据文件夹中

    ContentValues values = new ContentValues();
    values.put(Media.TITLE, "Image");
    values.put(Images.Media.BUCKET_ID, path.hashCode());
    values.put(Images.Media.BUCKET_DISPLAY_NAME, name);

    values.put(Images.Media.MIME_TYPE, "image/png");
    values.put(Media.DESCRIPTION, "Image capture by camera");
    values.put("_data", Constants.imagePath);

    Uri uri = getContentResolver().insert(
            Media.EXTERNAL_CONTENT_URI, values);
    cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);

    startActivityForResult(cameraIntent, PICTURE_ACTIVITY);

我认为相机无法访问应用数据文件夹

所以没有SD卡就无法使用相机?

3 个答案:

答案 0 :(得分:2)

您还可以使用表面视图上的相机预览来执行图像捕捉。

通过使用此功能,您可以保存以前的图像并进行捕获。您可以传递应用程序的缓存目录getCacheDir()上下文方法。

参考

1)https://github.com/commonsguy/cw-advandroid/tree/master/Camera/Preview/
2)http://android-er.blogspot.in/2010/12/camera-preview-on-surfaceview.html

答案 1 :(得分:0)

如果没有SD卡,相机应用程序将显示:

  

请在使用相机前插入SD卡。

所以不,不可能。

编辑: 检查Camera应用源代码,updateStorageHint(int remaining)表示如果没有SD卡,它将始终显示“无存储”文本(同时检查MenuHelper calculatePicturesRemaining())。

答案 2 :(得分:0)

http://developer.android.com/guide/topics/media/camera.html#saving-media表示可以将图像保存到SD卡以外的位置:

  

媒体文件...... 应该   保存到设备的外部存储目录(SD卡)

(我的重点)

然而,使用内部存储会迅速耗尽通常非常有限的资源,并且意味着这些文件只能通过手机而不是移除的SD卡移植。

我建议为了可靠性和“最佳实践”(我不喜欢的一句话),您可以遵循该指南中的建议。

内置相机应用似乎遵循这些最佳做法,但有可能编写一个没有的应用。