开发中肯定有这样的情景:
自己的应用中会缓存很多图片到本地,不想让系统图库扫描到自己的图片或者不想对用户浏览图片造成影响。以前的实现是把所有文件都去掉或者改掉扩展名。其实Android提供了对此的支持。
.nomedia文件作用:应用中的图片不被系统图库扫描
“.nomedia”文件放在任何一个文件夹下都会把该文件夹下所有媒体文件(图片,mp3,视频)隐藏起来不会在系统图库,铃声中出现。
新建.nomedia文件的方法:
1.Windows系统的新建文件不能新建.nomedia文件新建方法:
Java
new File(dir, “.nomedia”).createNewFile();
2. CMD命令行
copy con .nomedia 回车
然后此时屏幕上有一个光标在闪烁,说明等待你输入该文件内容,如果想建立空内容文件,这里就什么都不输入,这时按下ctrl+Z键再回车,就生成一个空文件。
3.Linux Shell
vi .nomedia
:wq
开发中肯定有这样的情景:自己的应用中会缓存很多图片到本地,不想让系统图库扫描到自己的图片或者不想对用户浏览图片造成影响。以前的实现是把所有文件都去掉或者改掉扩展名。其实Android提供了对此的支持。.nomedia文件作用:应用中的图片不被系统图库扫描“.nomedia”文件放在任何一个文件夹下都会把该文件夹下所有媒体文件(图片,mp3,视频)隐藏起来不会在系统图库,铃声中出现。
开发中肯定有这样的情景:
自己的应用中会缓存很多
图片
到本地,不想让系统图库
扫描
到自己的
图片
或者不想对用户浏览
图片
造成影响。以前的实现是把所有文件都去掉或者改掉扩展名。其实
Android
提供了对此的支持。
.nomedia文件作用:应用中的
图片
不被系统图库
扫描
“.nomedia”文件放在任何一个文件夹下都会把该文件夹下所有媒体文件(
图片
,mp3,视频)隐藏起来不会在系统图库,铃声中出现。
.nomedia文件是一种特殊的文件,它不包含任何内容,但是告诉系统忽略它所在的文件夹中的媒体文件。这些媒体文件通常包括
图片
、音频和视频文件。通常,当您将.nomedia文件放在文件夹中时,系统将忽略该文件夹中的所有媒体文件,这意味着它们不会出现在媒体库或媒体播放器中。
要打开.nomedia文件,您需要使用文本编辑器,如记事本或TextEdit。打开文本编辑器,然后点击“文件”>“打开”,...
避免相册显示项目底下的多媒体文件,如.mp4、.png等文件。在目录下放置一个.nomedia文件,则可以放置媒体库
扫描
该目录。
项目使用了
Android
原生的分享功能,该功能需要用到媒体库的数据库,问题:不想让看到,还想可以调用原生分享,强制插入到媒体库,相册(用的就是媒体库)又能看到。用FileProvider还分享不全-.-
强制同步在媒体数据库。
(1)使用Med...
String[] projection = new String[]{
MediaStore.Audio.Media._ID,
MediaStore.Audio.Media.DATA,
MediaStore.Audio.Media.TITLE,
MediaStore.Audio.Media.ARTIST,
MediaStore.Audio.Media.ALBUM,
MediaStore.Audio.Media.DURATION,
MediaStore.Audio.Media.SIZE
// 定义查询条件,只查询音频文件
String selection = MediaStore.Audio.Media.IS_MUSIC + " != 0";
// 查询
音乐
文件
Cursor cursor = getContentResolver().query(
MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,
projection,
selection,
null,
// 遍历查询结果
if (cursor != null) {
while (cursor.moveToNext()) {
// 获取
音乐
文件的信息
long id = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media._ID));
String path = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.DATA));
String title = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.TITLE));
String artist = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ARTIST));
String album = cursor.getString(cursor.getColumnIndex(MediaStore.Audio.Media.ALBUM));
long duration = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.DURATION));
long size = cursor.getLong(cursor.getColumnIndex(MediaStore.Audio.Media.SIZE));
// 打印
音乐
文件的信息
Log.d(TAG, "id: " + id);
Log.d(TAG, "path: " + path);
Log.d(TAG, "title: " + title);
Log.d(TAG, "artist: " + artist);
Log.d(TAG, "album: " + album);
Log.d(TAG, "duration: " + duration);
Log.d(TAG, "size: " + size);
cursor.close();
注意:需要在
Android
Manifest.xml文件中添加读取外部存储的权限:
<uses-permission
android
:name="
android
.permission.READ_EXTERNAL_STORAGE" />