Android避免缓存资源被系统扫描并显示(.nomedia)

news/2025/2/5 14:48:04/

app的一些缓存图片理论上是不让出现在相册的 但是相册会扫描出来他可以进行限制

    File file = new File(filePath + "/.nomedia" );  if (!file.exists()){try {  file.createNewFile();  } catch (Exception e) {  e.printStackTrace();  }} 

创建一个nomedia这样在系统进行扫描的时候就会过滤这些资源 从而一下缓存资源就不会显示在你的相册了

官网对.nomedia的解释是
在媒体扫描程序中隐藏您的文件在您的外部文件目录中包含名为 .nomedia
的空文件(注意文件名中的点前缀)。 这将阻止媒体扫描程序读取您的媒体文件,并通过 MediaStore内容提供程序将其提供给其他应用。 但如果您的文件真正是应用的私有文件,则应该将其保存在应用私有的目录中。

Android默认情况下会将每个多媒体文件的信息保存在一个数据库中(在系统收到某些消息,比如开机、插拔SD卡、设备连接上电脑这种涉及到可能更改文件系统内容的情况下,会触发系统扫描文件系统中的多媒体文件变化情况并同步到媒体数据库中;或者应用发送更新多媒体库广播时,也会触发多媒体数据库的更新),应用在需要读取设备内指定格式的多媒体文件信息时,可以直接读取这个数据库,相比于文件全盘检索效率会高很多。

但是,有时候我们并不希望某些多媒体文件被媒体库扫描到,比如:

应用的音效不希望被音乐播放器扫描到;

有些游戏的介绍视频不希望被视频播放器扫描到;

应用缓存的图片不希望被相册扫描到;

这种情况可以在不希望被保存到多媒体数据库中的文件夹下新建一个隐藏文件,文件名为”.nomedia”即可。官网并没有明确介绍.nomedia文件的使用,但可以通过搜索关键词,在Storage Options的页面中找到对.nomedia文件的解释,我的理解是有.nomedia文件的文件夹下的多媒体文件信息不会保存到多媒体数据库中,在系统更新媒体数据库时会视这个文件夹不见:

这条我是一个搬运工 因为以前我也不知道

原创博文1
原创博文2


http://www.ppmy.cn/news/779313.html

相关文章

Android nomedia问题分析

迁移本人cnblog文章: 一、问题起源 最近有同事反馈试用的机器出现问题,图库的照片全部消失,新下载的第三方应用图片,也无法显示。针对该问题,当时以为是媒体库scan过程和数据库存在异常,查了半天无任何结论。内部讨论…

android media的文件类型,NOMEDIA 文件扩展名: 它是什么以及如何打开它?

NOMEDIA 文件疑难解答 打开 NOMEDIA 文件的麻烦 StudioKUMA .nomedia Manager 不存在 双击你的 NOMEDIA 文件会提示消息 “%%os%% 无法打开 NOMEDIA 文件”。 通常,这是因为你没有安装适用于 %%os%% 的 StudioKUMA .nomedia Manager。 操作系统不知道如何处理你的 N…

zabbix 报错No media defined for user.

zabbix3.4页面的报错如下 经查看,报错的用户是有一个没有媒介,于是去改用户查看用了哪几个媒介,只有三个媒介, 去查看哪些动作使用了这个用户,: 发现使用了此用户的这个动作所使用的媒介在用户那里并没配…

【错误记录】Flutter 使用 MediaQuery 适配全面屏报错 ( No MediaQuery widget ancestor found. )

文章目录 一、报错信息二、解决方案 一、报错信息 需要使用 MediaQuery 获取当前的 Padding ; import package:flutter/material.dart;/// 使用 MediaQuery 进行全面屏适配 void main() {runApp(MyApp()); }class MyApp extends StatelessWidget {overrideWidget build(BuildC…

归并排序(思路+代码)

变量: left、right、privot、temp[]、leftIndex、k 思路: 代码: import java.util.Arrays;public class Queue8 {public static void main(String[] args) {int[] arr {8, 9, 1, 7, 2, 3, 5, 4, 6, 0};sort(arr,0,arr.length-1);System.ou…

win10英伟达NVIDIA无法登录

开始菜单,cmd,管理员运行,netsh winsock reset,重启 控制面板,网络和internet,查看基本网络信息并设置连接,点击你的网络连接(本地或者无线),属性&#xff0…

英伟达服务器GPU型号,英伟达服务器GPU硬件支持方案.pdf

© 2018 Altair Engineering, Inc. Proprietary and Confidential. All rights reserved. 演讲:服务器/GPU硬件支持方案 r i a t 茅勇 l A 英伟达行业拓展经理 r i a t l A 英伟达制造行业拓展经理,拥有超过10年IT行业经验,熟 悉制造业研…

asic面试题目 英伟达_英伟达笔试题目ASIC|英伟达笔试题

目前,在集成电路界ASIC被认为是一种为专门目的而设计的集成电路。是指应特定用户要求和特定电子系统的需要而设计、制造的集成电路。下面就由小编为大家介绍一下英伟达笔试题目-ASIC的文章,欢迎阅读。 英伟达笔试题目-ASIC篇1 1. 一段RTL代码&#xff0c…