項目裏要做一個功能, 錄製的視頻之前我是存在用戶的/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();
然後就能成功了~