2013-10-19 32 views
0

我創建了一個基本服務,每隔10秒從攝像機獲取圖像。該服務完美工作,但我試圖命名圖像文件,如ImageYYYYddmm_HHmmSS。第二個文件後,圖像變得相同YYYYddmm_HHmmSS,因此覆蓋第一個圖像。我的錯誤在哪裏?第三次命名捕獲圖像

public class CP extends Service 
{ 
    Camera.PictureCallback mCall = new Camera.PictureCallback() 
    { 

    public void onPictureTaken(final byte[] data, Camera camera) 
    { 

     FileOutputStream outStream = null; 
       try{ 

        outStream = new FileOutputStream("/sdcard/Image"+tar+".jpg"); 
        outStream.write(data); outStream.close(); 


        Log.i("CAM", data.length + " byte written: /sdcard/Image"+tar+".jpg"); 
        camClose(sHolder);    


       } catch (FileNotFoundException e){ 
        Log.d("CAM", e.getMessage()); 
       } catch (IOException e){ 
        Log.d("CAM", e.getMessage()); 
       } 


    } 
    }; 


    @Override 
    public IBinder onBind(Intent intent) { 

      return null; 
    } 

    public void camClose(SurfaceHolder sHolder) { 


     if (null == mCamera) 
      return; 
     mCamera.stopPreview(); 
     mCamera.release(); 
     mCamera = null; 
     Log.i("CAM", " closed"); 
     } 
} 

回答

0

焦油從不更新到當前時間。在你的onPictureTaken中,試試這樣的:

public void onPictureTaken(final byte[] data, Camera camera) 
{ 

    FileOutputStream outStream = null; 
      try{ 

       Calendar cal = Calendar.getInstance(); 
       tar = (sdf.format(cal.getTime())); 
       outStream = new FileOutputStream("/sdcard/Image"+tar+".jpg"); 
       outStream.write(data); outStream.close(); 


       Log.i("CAM", data.length + " byte written: /sdcard/Image"+tar+".jpg"); 
       camClose(sHolder);    


      } catch (FileNotFoundException e){ 
       Log.d("CAM", e.getMessage()); 
      } catch (IOException e){ 
       Log.d("CAM", e.getMessage()); 
      } 


} 
+0

謝謝。這就是我要的。 – Jessica