在默认的情况下。由自己的程序创建,并存储在应用程序私有文件夹中的媒体文件,对其他应用程序来说是不可用的。要想这些媒体文件可以被其他应用程序使用。需要把他们添加到媒体库中,目前有两种方法可以实现。
第一种:使用媒体扫描仪添加到媒体库。
/** * 扫描指定目录了的文件,添加到媒体库 * * @param filePath * 路径 */ private void scanMedia(final String filePath) { MediaScannerConnectionClient mediaSan = new MediaScannerConnectionClient() { private MediaScannerConnection msc = null; { // 首先需要创建与媒体扫描仪的连接 msc = new MediaScannerConnection(MainActivity.this, this); msc.connect(); } @Override public void onScanCompleted(String path, Uri uri) { // 扫描完成关闭与媒体扫描仪的连接 msc.disconnect(); MainActivity.this.runOnUiThread(new Runnable() { @Override public void run() { Toast.makeText(MainActivity.this, "扫描完成!", Toast.LENGTH_SHORT).show(); } }); } @Override public void onMediaScannerConnected() { // 可以指定一个mime类型,如果不指定Media Scaner根据文件名自己假定一种类型 String mimeType = null; msc.scanFile(filePath, mimeType); } }; }