如何在Android 10(Android Q)中隐藏作用域目录的子文件夹?使用媒体商店?
最近由于android 10中应用程序行为的改变,我正在使用media store将位图保存到存储中。 但我有一些图片不希望用户在图库中看到,所以我想使用(点)如何在Android 10(Android Q)中隐藏作用域目录的子文件夹?使用媒体商店?,android,performance,Android,Performance,最近由于android 10中应用程序行为的改变,我正在使用media store将位图保存到存储中。 但我有一些图片不希望用户在图库中看到,所以我想使用(点) 但当我的应用程序存储图像时,它会将(点)替换为(斜杠). 例如 /storage/emulated/0/Pictures/.myFolder/\u 0.png 替换为 /storage/emulated/0/Pictures/\uu.myFolder/\u 0.png 示例代码 private void saveImage(Bitmap
但当我的应用程序存储图像时,它会将(点)替换为(斜杠). 例如
/storage/emulated/0/Pictures/.myFolder/\u 0.png
替换为
/storage/emulated/0/Pictures/\uu.myFolder/\u 0.png
示例代码
private void saveImage(Bitmap bitmap, @NonNull String name) throws IOException {
OutputStream fos;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
ContentResolver resolver = getContentResolver();
ContentValues contentValues = new ContentValues();
contentValues.put(MediaStore.MediaColumns.DISPLAY_NAME, name + ".jpg");
contentValues.put(MediaStore.MediaColumns.MIME_TYPE, "image/jpg");
contentValues.put(MediaStore.MediaColumns.RELATIVE_PATH, Environment.DIRECTORY_PICTURES+"/.myFolder");
Uri imageUri = resolver.insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, contentValues);
fos = resolver.openOutputStream(Objects.requireNonNull(imageUri));
}
bitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
Objects.requireNonNull(fos).close();
}
您最好不要将临时文件存储在媒体存储中,而是存储在getFilesDir()等中。
如何隐藏作用域目录的子文件夹
。您根本没有使用“作用域”目录。@blackapps尝试使用DCIM时遇到“但我有一些临时文件,我不想让用户在gallery中看到”相同错误,请不要将它们放在MediaStore
中。正如blackapps所建议的,使用getFilesDir()
,getCacheDir()
,getExternalFilesDir()
,getExternalCachedir()
,以及上下文
上的类似方法来获取您可以使用的目录。特别是对于描述为“临时文件”的文件,getCacheDir()
似乎是一个不错的选择。“>但当我的应用程序存储图像时,它会将(点)替换为(斜杠)。”同样的问题!您最好不要将临时文件存储在媒体存储中,而是存储在getFilesDir()等中。如何隐藏作用域目录的子文件夹
。您根本没有使用“作用域”目录。@blackapps尝试使用DCIM时遇到“但我有一些临时文件,我不想让用户在gallery中看到”相同错误,请不要将它们放在MediaStore
中。正如blackapps所建议的,使用getFilesDir()
,getCacheDir()
,getExternalFilesDir()
,getExternalCachedir()
,以及上下文
上的类似方法来获取您可以使用的目录。特别是对于描述为“临时文件”的文件,getCacheDir()
似乎是一个不错的选择。“>但当我的应用程序存储图像时,它会将(点)替换为(斜杠)。”同样的问题!