Android 安卓-将从相机中拾取的图像放入照片库

Android 安卓-将从相机中拾取的图像放入照片库,android,image,camera,Android,Image,Camera,我是Android新手。这是我的第一个问题。我正在测试4.4.4,KitKat 我正在我的应用程序中使用Android开发者的“简单拍照”代码。 () 我希望用户拍摄的照片可以在我的应用程序中使用,但也可以在以后的图库中使用 如果我指定 File storageDir = getExternalFilesDir (null); File storageDir = Environment.getExternalStoragePublicDirectory( Enviro

我是Android新手。这是我的第一个问题。我正在测试4.4.4,KitKat

我正在我的应用程序中使用Android开发者的“简单拍照”代码。 () 我希望用户拍摄的照片可以在我的应用程序中使用,但也可以在以后的图库中使用

如果我指定

File storageDir =  getExternalFilesDir (null);
File storageDir = Environment.getExternalStoragePublicDirectory(
            Environment.DIRECTORY_PICTURES);
然后各种相机工作(摄像头、opencamera、DSLR摄像头),但在我离开我的应用程序后,图像不会出现在多媒体资料中

如果我指定

File storageDir =  getExternalFilesDir (null);
File storageDir = Environment.getExternalStoragePublicDirectory(
            Environment.DIRECTORY_PICTURES);
那么行为是一样的,除了一个摄像头应用:DSLR摄像头。照片确实会出现在该应用程序的相机目录中,稍后可以使用gallery查看该目录

我希望我的应用程序具有此行为。我希望用户拍摄的照片显示在一个目录中,以便以后使用gallery应用程序查看。但是,我不想创建重复的图像

我还想稍后将修改后的图像保存到同一目录中

谢谢你的帮助

但在我离开我的应用程序后,图像不会出现在多媒体资料中


最终可能会。Gallery应用程序通常使用
MediaStore
,您的文件最终可能会添加到其中。使用
MediaScannerConnection
scanFile()
加快此过程。

您需要请求媒体扫描仪扫描文件并将其添加到媒体数据库。请使用此代码

 Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
            mediaScanIntent.setData(mMediaUri);
            sendBroadcast(mediaScanIntent);

请参见android开发者网站。此处mMediaUri是您文件的Uri。

不要指定存储目录。摄像头应用程序将存储到…/DCIM/camera。Gallery应用程序和你的应用程序都可以访问该位置。这有效。如果用户拍摄了一张照片,我希望它立即显示在图库中,这样,如果用户决定从图库中拾取它,他们就会在那里找到它。运行mediaScanIntent不会做到这一点。