如何调用系统的媒体扫描仪?

时间:2017-10-17 17:00:33

标签: android

我的应用将.mp3个文件下载到download文件夹。它工作正常,但没有音乐播放器应用程序能够播放它(“不能播放这种类型的文件”)。

我必须每次都重新启动以强制系统运行媒体扫描程序,以使其正常工作。

我尝试了MediaScannerConnection,但它在我的API级别上无效(24

 File sdCard = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS);
    MediaScannerConnection.scanFile(this, new String[]{sdCard.getPath()},
            null, new MediaScannerConnection.OnScanCompletedListener() {
                public void onScanCompleted(String path, Uri uri) {
                    // now visible in gallery
                    Toast.makeText(getBaseContext(), "files have been scanned dawg", Toast.LENGTH_LONG).show();
                }
            });

它没有显示任何吐司。

我找到了另一种方法,但我听说它从android 4.4

开始
 sendBroadcast(new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory())));

此方法显然从android 7

  File file = new File(absolutePath);
   Uri uri = Uri.fromFile(file);
   Intent intent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, uri);
   sendBroadcast(intent);

如何让它在api level 15-current上运行?有没有通用的方法?他们都没有在我的设备上工作。

0 个答案:

没有答案