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();

然後就能成功了~

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