Android 把app应用中的视频传到系统相册中(必须存在外部存储中,不能存在用户数据文件夹中)

项目里要做一个功能, 录制的视频之前我是存在用户的/data/data目录下的,现在需要把这个视频传到系统相册去,让用户来选择,所以需要做一个传递。
核心代码如下:

this.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.fromFile(new File(mOutputFile.getAbsolutePath()))));

听说这个sendBroadcast的方法已经废弃了, 但是能用
还查到另外一个方法是用MediaScannerConnection实现的,但是我用不了,不知道为啥

            MediaScannerConnection mMediaScanner = new MediaScannerConnection(this, null);
            mMediaScanner.connect();
            if (mMediaScanner.isConnected()) {
                mMediaScanner.scanFile(mOutputFile.getPath(), "video/mp4");
            }
            mMediaScanner.disconnect();

然后在用sendBroadcast的时候我遇到一个坑,因为我的视频存在/data/data这个目录下,所以是不能直接传的,我之前存储的代码如下:

        //save in the inner user data folder
        //But if you use the sendBroadcast, you have to use the external storage directory
        File mediaStorageDir = new File(context.getFilesDir().getPath());

这里用这个是不行的,所以我换成了存到外部存储中

File mediaStorageDir = Environment.getExternalStorageDirectory();

然后就能成功了~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章