将照片从相机保存到安卓内部存储

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.Cameraandroid.hardware.camera2.CameraManager 更直接地与相机硬件接口并自己拍照。这要复杂得多。您可以考虑使用现有代码拍摄照片,首先将图像写入外部存储,然后在拍摄照片时简单地将文件移动到内部存储。

以上是关于将照片从相机保存到安卓内部存储的主要内容,如果未能解决你的问题,请参考以下文章

安卓从手机相册获取照片作为头像缓存地址

将位图从片段保存到内部/外部存储[关闭]

如何将数据保存到三星 S3 或 Sansung Note 2 的内部存储器

Javascript,将照片从相机(画布)存储到本地/服务器

将文件下载到内部存储 [重复]

如何将图像从安卓相机上传到网络服务器(不在应用程序中)