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

7

请确认一下,在安卓系统上使用相机需要插入SD卡,否则无法使用?

我启动了MediaStore.ACTION_IMAGE_CAPTURE意图来调用相机,并试图让相机将图片存储在应用数据文件夹中。

    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个回答

2

0

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

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

所以不可能。

编辑: 检查相机应用程序源代码,updateStorageHint(int remaining)表明如果没有SD卡,则始终会显示“无存储”文本(还要检查MenuHelper calculatePicturesRemaining())。


0

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

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

(我强调)

然而,使用内部存储会迅速耗尽通常是一个非常有限的资源,并意味着文件只能随手机移动,而不能随移除的SD卡一起使用。

为了可靠性和“最佳实践”的利益(这是我不喜欢的一个词组),我建议您遵循该指南中的建议。

似乎内置相机应用程序遵循这些最佳实践,但编写一个不遵循这些实践的应用程序是可能的。


我想我会让应用程序的这个功能需要SD卡,因为我想几乎每个人都在他们的安卓设备上有一个SD卡。 - user964283
1
并非所有的安卓设备都带有microSD插槽。有些设备有“内部存储”、“内部SD”或其他“USB存储”。这些设备仍然可以保存照片。 - Alex Cohn

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接