我想从相机拍照,保存到文件并上传到服务器。我使用以下代码:
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT,
Uri.fromFile(mCurrentPhotoFile));
startActivityForResult(takePictureIntent, RESULT_IMAGE_CAPTURE);
和
if (requestCode == RESULT_IMAGE_CAPTURE && resultCode == RESULT_OK && mCurrentPhotoFile != null) {
uploadFile(mCurrentPhotoFile);
}
但有时文件大小为0字节。我认为这是因为图片不会立即保存,我需要等待保存完毕。
我如何解决它?
答案 0 :(得分:0)
您必须等到图片保存在图库中。您可以将图像上传到服务器。
所以下面的课程是在图库中保存后获取图片。
public class SingleMediaScanner implements MediaScannerConnection.MediaScannerConnectionClient {
private MediaScannerConnection mMs;
private File mFile;
public SingleMediaScanner(Context context, File f) {
mFile = f;
mMs = new MediaScannerConnection(context, this);
mMs.connect();
}
@Override
public void onMediaScannerConnected() {
mMs.scanFile(mFile.getAbsolutePath(), null);
}
@Override
public void onScanCompleted(String path, Uri uri) {
mMs.disconnect();
System.out.println("path......"+path);
System.out.println("uri......"+uri);
// here you can upload image to server
uploadFile(mCurrentPhotoFile);
}
}
要执行上面的类,只需调用构造函数
new SingleMediaScanner(this, imageFile);