在默认的情况下。由自己的程序创建,并存储在应用程序私有文件夹中的媒体文件,对其他应用程序来说是不可用的。要想这些媒体文件可以被其他应用程序使用。需要把他们添加到媒体库中,目前有两种方法可以实现。

 

第一种:使用媒体扫描仪添加到媒体库。

/**
     * 扫描指定目录了的文件,添加到媒体库
     * 
     * @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);
            }
        };

    }
View Code

相关文章: