我的应用将.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上运行?有没有通用的方法?他们都没有在我的设备上工作。