将照片从相机保存到安卓内部存储
Posted
技术标签:
【中文标题】将照片从相机保存到安卓内部存储【英文标题】:save the photos from camera to android internal storage 【发布时间】:2015-08-20 12:46:17 【问题描述】:我成功保存了安卓相机中的图片 使用以下根路径
Environment.getExternalStorageDirectory()
和
context.getExternalFilesDir(null)
但我无法使用以下根路径保存
context.getFilesDir()
你知道是否可以将android相机拍摄的照片保存到以context.getFilesDir()
为根文件夹的Android内部存储中?
我使用以下代码启动相机:
Intent takePictureIntent = new
Intent(MediaStore.ACTION_IMAGE_CAPTURE);
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(picFile));
startActivityForResult(takePictureIntent, REQUEST_TAKE_PICTURE);
//and this code I used to get the camera output
@Override
public void onActivityResult(int requestCode, int resultCode,
Intent data)
if ((requestCode == REQUEST_TAKE_PICTURE) && (resultCode ==
Activity.RESULT_OK)
)
Toast.makeText(this, "Can get the image.",
Toast.LENGTH_LONG).show();
//Bitmap photo = (Bitmap) data.getExtras().get("data");
// System.out.println("photo "+photo.getWidth());
// final ImageView imageView = (ImageView) findViewById(R.id.imageView1);
// imageView.setImageBitmap(photo);
else if ((requestCode == REQUEST_TAKE_PICTURE) && (resultCode == Activity.RESULT_CANCELED))
Toast.makeText(this, "Cannot get the image.", Toast.LENGTH_LONG).show();
【问题讨论】:
你拍的怎么样?你在用android.hardware.Camera
吗?你在用android.hardware.camera2.CameraManager
吗?你在用ACTION_IMAGE_CAPTURE
吗?你在用别的东西吗?
我在问题描述中添加了我用来从相机拍照的代码。
【参考方案1】:
你不能使用getFilesDir()
,因为你正在启动一个第三方相机应用来拍照,它不能写入你应用的内部存储。
【讨论】:
我可以更新启动摄像头的代码,以便不将摄像头视为第三方应用程序吗? @roshca181:欢迎您使用android.hardware.Camera
或android.hardware.camera2.CameraManager
更直接地与相机硬件接口并自己拍照。这要复杂得多。您可以考虑使用现有代码拍摄照片,首先将图像写入外部存储,然后在拍摄照片时简单地将文件移动到内部存储。以上是关于将照片从相机保存到安卓内部存储的主要内容,如果未能解决你的问题,请参考以下文章
如何将数据保存到三星 S3 或 Sansung Note 2 的内部存储器