2011-12-27 4 views
3

Я использую версию Android Nexus S Android 2.3. Всякий раз, когда я пытаюсь установить режим вспышки в режим горения:Nexus S Режим вспышки вспышки не работает

if (camera == null) { 
    mCamera = camera = Camera.open(); 
} 
final Parameters params = camera.getParameters(); 
params.setFlashMode(MODE_TORCH); 
camera.setParameters(params); 

ничего не происходит, вспышка вообще не работает. Этот фрагмент кода отлично работает на нексусном.

Я нашел это - How to use camera flash/led as torch on a Samsung Galaxy Tab?, а также этот - http://forum.xda-developers.com/showthread.php?t=923786 никому из них не помогает.

Любая идея, что мне не хватает?

+0

Я могу подтвердить, что факел работает в nexus S. Мое приложение размещено здесь: https://market.android.com/details?id=droid.pr.coolflashlightfree является профи этого. Также у меня есть связь S и работает. Если вам нужна помощь, свяжитесь со мной, и я отправлю вам рабочий образец –

+0

Педро, это здорово, можете ли вы опубликовать его здесь, чтобы другие могли посмотреть? –

ответ

1
private Camera _camera; 
protected static final String MODE_TORCH = Camera.Parameters.FLASH_MODE_TORCH; 
protected static final String MODE_OFF = Camera.Parameters.FLASH_MODE_OFF; 

private void initCamera(){ 
      if(this._camera == null){ 
      this._camera = Camera.open(); 
      this._camera.startPreview(); 
      } 
    } 

private void releaseCamera(){ 
     if(this._camera != null) 
     { 
      this._camera.stopPreview(); 
      this._camera.release(); 
     } 

     this._camera = null; 
    } 

private void setCameraParameter(String value){ 
     if(this._camera != null){ 
      Camera.Parameters params = this._camera.getParameters(); 
      params.setFlashMode(value); 
      this._camera.setParameters(params); 
     } 
    } 

//To turn on just use: 
private void turnOn(){ 
    initCamera(); 
    setCameraParameter(MODE_TORCH); 
} 

//to turn off just use: 
private void turnOff(){ 
    setCameraParameter(MODE_OFF); 
} 

//To release resorces use: 
private void releaseResources(){ 
    releaseCamera(); 
} 

Это будет работать на android 2.3. Чтобы работать с Android 2.3 и 4.0.3, вам придется играть с поверхностным экраном и поверхностью.

+1

Можете ли вы подробнее рассказать о поверхности и держателе? – Guy

Смежные вопросы