我是一名Android开发的新手,我正在做一个小应用程序,使用 UVCCamera
捕获USB摄像头图像。
我已经使用 UVCCamera
捕获了图像,并将其存储在SD卡中,就像这样:
File filepath = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM), "IMG_"+getDateTime() + ".jpg");
mCameraClient.captureStill(filepath.toString());
这里的 mCameraClient 将与 UVC 相机进行交互,捕获图像并存储在该路径中,然后将回调方法 onCaptureDone。
@Override
public void onCaptureDone(final String path) {
// TODO Auto-generated method stub
Log.e(TAG, "onCaptureDone called");
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
//Toast -- Images Saved.
}
});
}
};
然后我从图片按钮的onClickListener
中调用相册。
private MediaScannerConnection conn;
File folder = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM));
File[] mImagefile = folder.listFiles(new FilenameFilter() {
public boolean accept(File dir, String filename) {
return filename.endsWith(".jpg");
}
});
if (mImagefile.length > 0) {
SCAN_PATH = folder.toString() + "/"
+ mImagefile[mImagefile.length -1].getName();
Log.e(TAG, "SCAN PATH = " + SCAN_PATH);
if (conn != null) {
conn.disconnect();
}
conn = new MediaScannerConnection(this, this);
conn.connect();
} else {
//Toast -- No Images Available
}
如果过滤成功。
@Override
public void onMediaScannerConnected() {
// TODO Auto-generated method stub
Log.e(TAG, "onMediaScannerConnected");
;
conn.scanFile(SCAN_PATH, null);
}
@Override
public void onScanCompleted(String path, Uri uri) {
// TODO Auto-generated method stub
try {
Log.e(TAG, "OnCompleted path = " + path);
if (uri != null) {
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setData(uri);
startActivity(intent);
}
} finally {
Log.e(TAG, "OnCompleted Disconnecting");
conn.disconnect();
conn = null;
}
}
我的问题是在画廊中,所有捕获的图像都没有显示。
我已经检查了保存目录,在那里所有的图像都成功存储了。[图像不会损坏,我已经验证过]
我还在默认的画廊应用程序中进行了检查,在那里这些图像也没有显示。
请帮助我解决这个问题。
编辑1:
我注意到一件事情,当我捕获并保存图片时,它不会显示在画廊中,但是经过一段时间,比如2-3小时,它才会出现在画廊中。我想知道为什么会发生这种情况?
谢谢