关于android录像后在手机文件夹不显示问题的解决办法
MediaScannerConnection msc = null;
ProgressDialog progressDialog = null;
public void sendVideo(String localPath ) {
if (TextUtils.isEmpty(localPath)) {
return;
}
if (msc == null)
msc = new MediaScannerConnection(this,
new MediaScannerConnectionClient() {
@Override
public void onScanCompleted(String path, Uri uri) {
msc.disconnect();
//关键在于这句,如果不把这个对象置空,接下来录像也显示不出来的
msc=null;
progressDialog.dismiss();
Log.d("path", "localPaht:" + localPath
+ "&&&&&&path:" + path + "&&&&&&&&&&uri:"
+ uri.getPath());
// Toast.makeText(RecorderVideoActivity.this,
// path+"##"+uri.getPath(), 3000).show();
// setResult(RESULT_OK, getIntent().putExtra("uri",
// uri));
setResult(RESULT_OK,getIntent().putExtra("path", path));
RecorderVideoActivity.this.finish();
}
@Override
public void onMediaScannerConnected() {
msc.scanFile(localPath, "video/*");
}
});
if (progressDialog == null) {
progressDialog = new ProgressDialog(this);
progressDialog.setMessage("保存中...");
progressDialog.setCancelable(false);
}
progressDialog.show();
msc.connect();
}
1、MediaScannerConnection, 每当接收到新的媒体文件,都会告诉MediaProvider同步媒体数据库。
建立连接
mConnection = new MediaScannerConnection(mContext, this);
因为建立连接是一个异步过程,所以,在建立连接时需要加入一个监听器。这样,连接建立后就可以得到通知,并进行下一步。
更新媒体数据库
mConnection.scanFile(mInfo.mFilename, mInfo.mMimetype);
这也是一个异步过程,更新完毕后,监听器中得到通知,并断开连接。
断开连接
mConnection.disconnect();
我的QQ:2973901695,欢迎大家和我一起交流哦!