2012-06-26 160 views
2

我有一个应用程序,允许用户使用手机的本机相机拍照,我不想实现相机的所有功能(我不想失去自动对焦,闪光灯或其他一些性质本机摄像头可能有),所以我做这样的判断:避免画廊保存在Android的相机拍摄的照片

File folder = new File(Environment.getExternalStorageDirectory(),"folder"); 
    folder.mkdirs(); 
    File nomedia = new File(folder,".nomedia"); 
    try{ 
     nomedia.createNewFile(); 
    }catch (IOException e){ 
     e.printStackTrace(); 
     Log.e("error", e.getMessage()); 
    } 

    File file = new File(folder,"image.jpeg"); 
    try { 
     file.createNewFile(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } 
    imageUri = Uri.fromFile(file); 
    if(imageUri != null){ 
     Log.i(TAG, "imageUri: " + imageUri.getPath()); 
     imageIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); 
    } 

然后在一个按钮,我有意向的执行:

startActivityForResult(imageIntent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE); 

这很好用,它打开相机,我收到回调时,如果我用手机的文件浏览器查看文件夹,我可以看到图片以及我创建的“.nomedia”文件。

事情是,我不希望相机将这个图像存储在手机的画廊,因为,不知何故这是“神奇”;)添加到Android的画廊,我认为与添加“。 nomedia“文件并在单独的文件夹中创建图片,Gallery不会对其进行扫描。这个想法是,图片只用于应用程序的内部使用。

有没有办法避免这种情况?我真的搜索并尝试许多不同的方式,但我无法解决它。

我希望我的解释清楚。

在此先感谢!

+0

我知道这可能没有帮助。但我前一段时间遇到同样的问题,不得不放弃。如果我没有记错的话,我尝试过的一种方式是将图片移动到应用程序专用存储中,并阻止了图库的显示,但这也阻止了自动缩略图的创建。 –

+0

尝试添加句点'。'到您要存储图片的文件夹的前面。例如,在您的示例中,尝试切换到“.folder”作为您的目录名称。你还测试了什么设备? – FoamyGuy

+0

我累了,但没有帮助@Tim,我使用的是Galaxy S Plus,但我在HTC Wildfire中也遇到了同样的问题。 – Kuu

回答

相关问题