Android在私人模式下将照片保存在磁盘上

时间:2016-06-07 12:24:38

标签: android file local-storage fileoutputstream

我可以使用以下方法将图像保存在磁盘中:

String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();
        String fileName = imageId + ".png";
        String filePath = baseDir + File.separator + fileName;

        File file = new File(filePath);
        if(!file.exists())
        {
            out = new FileOutputStream(baseDir + File.separator + fileName);
            bitmap.compress(Bitmap.CompressFormat.PNG, 100, out);
        }

但是所有保存的图像都可以在手机图库中看到..我怎样才能将它们隐藏起来给用户?我的appliaction有一个私人文件夹吗?

由于

2 个答案:

答案 0 :(得分:1)

public File getAlbumStorageDir(Context context, String albumName) {
    // Get the directory for the app's private pictures directory. 
    File file = new File(context.getExternalFilesDir(
            Environment.DIRECTORY_PICTURES), albumName);
    if (!file.mkdirs()) {
        Log.e(LOG_TAG, "Directory not created");
    }
    return file;
}

我认为这就是你想要的。请阅读https://developer.android.com/training/basics/data-storage/files.html#WriteExternalStorage以获取更多信息。

答案 1 :(得分:0)

使用Context.getFilesDir()而不是Environment.getExternalStorageDirectory()将其保存到内部存储空间。

来自文档:

  

此处保存的文件默认只能由您的应用访问。

检查this link