小编Kas*_*ium的帖子

在Lollipop上的Android图库中显示图像文件

我正在尝试制作一些在应用程序中可见的图片(因此可以在应用程序外部共享和查看),但我想将图像保留在应用程序的数据目录中,以便应用程序被删除后会被删除(因此它们存储在"{sdcard}/Android/data/{appID}/Pictures/{subfolder} /"中).

我已经查看了很多答案,对于旧版本的Android,以下两种解决方案都有效,但它们似乎不适用于Lollipop:

MediaScannerConnection.scanFile(this,
    new String[]{file.toString()}, new String[] { "image/jpeg" },
    new MediaScannerConnection.OnScanCompletedListener() {
        public void onScanCompleted(String path, Uri uri) {
            Log.i("ExternalStorage", "Scanned " + path + ":");
            Log.i("ExternalStorage", "-> uri=" + uri);
        }
    });

Uri contentUri = Uri.fromFile(file);
Intent mediaScanIntent = new 
    Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,contentUri);
sendBroadcast(mediaScanIntent);
Run Code Online (Sandbox Code Playgroud)

我在Nexus 4(Android 5.0.1)和Nexus 6(Android 5.1)中对此进行了测试,但它不起作用.在Nexus 7(Android 4.2.2)中,它确实有效.所有3个设备在{sdcard}/Android/data /文件夹中都有一个".onmedia"文件,因此没有正常的媒体扫描应该选择它们...

有没有人知道如何在所有设备/ Android版本上使用它?这应该是因为noMedia文件首先不起作用并且Lollipop是唯一正确执行此操作的版本吗?

编辑:请注意,即使重新启动手机(也应该触发重新扫描文件)也不起作用.并且有充分的理由因为文件位于".nomedia"目录的子文件夹中...所以任何包含MEDIA_MOUNTED广播的解决方案都是无用的我认为.

android android-gallery android-file android-mediascanner android-5.0-lollipop

8
推荐指数
1
解决办法
4542
查看次数