preview 를 사용하여 사진을 찍고 바로 저장을 하는데 sdcard 에만 저장이되고
갤러리에 저장된 이미지가 보이지 않습니다 어떻게 해결 해야될가요?
sendBroadcast 를 사용을 했습니다
아래 코드는 에러가 나지 않고 동작은 하는데 갤러리에 바로 이미지가 보이지 않습니다

 

public class CameraView extends SurfaceView implements Callback, PictureCallback {
 private  Uri mImageCaptureUri;
 private SurfaceHolder holder;
  private   Camera camera;
  private   File path;
  Context context;
 
 public CameraView(Context context) {
  super(context);
  this.context=context;
  holder=getHolder();
  holder.addCallback(this);
  holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
  // TODO Auto-generated constructor stub
 }

 @Override
 public void surfaceCreated(SurfaceHolder holder) {
  // TODO Auto-generated method stub
  try{
   camera=Camera.open();
   camera.setPreviewDisplay(holder);
  }catch(Exception e){
   
  }
 }

 @Override
 public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
  // TODO Auto-generated method stub
   Camera.Parameters parameters = camera.getParameters();
         parameters.setPreviewSize(90,90);
         camera.setParameters(parameters);

        camera.startPreview();
 }

 
 
 @Override
 public void surfaceDestroyed(SurfaceHolder holder) {
  // TODO Auto-generated method stub
  camera.setPreviewCallback(null);
  camera.stopPreview();
  camera.release();
  camera=null;
 }
 public boolean onTouchEvent(MotionEvent event){
  if(event.getAction()==MotionEvent.ACTION_DOWN){
   camera.takePicture(null, null,this);
   
  }
  return true;
 }

 
 public void onPictureTaken(byte[] data, Camera camera) {
  // TODO Auto-generated method stub
  try{
   data2sd(getContext(),data,"test.jpg");
   
  }catch(Exception e)
  {
   android.util.Log.e("","" +e.toString());
  }
  camera.startPreview();
 }
 
 private   void data2sd(Context context, byte[]w,String filename)throws Exception{
   path = new File("/mnt/sdcard/" + File.separator + "wrong");
  
  
  
   
   if (!path.exists()) path.mkdir();

  
  String url = "tmp_" + String.valueOf(System.currentTimeMillis()) + ".jpg";
  //mImageCaptureUri = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), url));
  
  //intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mImageCaptureUri);
 
  
  
  FileOutputStream fos=null;
  try{
   
   fos=new FileOutputStream("/mnt/sdcard/wrong/"+url);
   fos.write(w);
   //context.sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, Uri.parse("/mnt/sdcard/wrong/"+url)));
   galleryAddPic(path);
   fos.close();
  }catch(Exception e){
   if(fos!=null)
    fos.close();
   throw e;
  }
 
 }

 private void galleryAddPic(File f) {
  // TODO Auto-generated method stub
   Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);   
         Uri contentUri = Uri.fromFile(f);
         mediaScanIntent.setData(contentUri);   
         context.sendBroadcast(mediaScanIntent);

 }