2012-05-24 15 views
8

Estoy desarrollando una aplicación que debe abrir la linterna de mi dispositivo Galaxy Nexus. Me he referido a la post aquíApertura de la linterna de Galaxy Nexus

LED flashlight on Galaxy Nexus controllable by what API?

public class TestCamera extends Activity implements SurfaceHolder.Callback{ 
Camera mCamera; 
public static SurfaceView preview; 
public static SurfaceHolder mHolder; 
public void onCreate(Bundle savedInstanceState){ 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    preview = (SurfaceView) findViewById(R.id.camSurface); 
    mHolder = preview.getHolder(); 
    mCamera = Camera.open(); 
    try { 
     mCamera.setPreviewDisplay(mHolder); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 

    Button onLEDbtn = (Button) findViewById(R.id.onLED_btn); 
    onLEDbtn.setOnClickListener(new OnClickListener(){ 

     public void onClick(View v) { 
      // TODO Auto-generated method stub 
      Toast.makeText(getApplicationContext(), "test", Toast.LENGTH_SHORT).show(); 
      Parameters params = mCamera.getParameters(); 
      params.setFlashMode(Parameters.FLASH_MODE_TORCH); 
      mCamera.setParameters(params);  
      mCamera.startPreview(); 
     } 

    }); 
} 



} 


    public void surfaceChanged(SurfaceHolder holder, int format, int width, 
      int height) { 
     // TODO Auto-generated method stub 

    } 


    public void surfaceCreated(SurfaceHolder holder) { 
     // TODO Auto-generated method stub 
     mHolder = holder; 
     try { 
      mCamera.setPreviewDisplay(mHolder); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
    } 


    public void surfaceDestroyed(SurfaceHolder holder) { 
     // TODO Auto-generated method stub 
     mCamera.stopPreview(); 
      mHolder = null; 
    } 




} 

Manifiesto:

<uses-permission android:name="android.permission.CAMERA" /> 
<uses-feature android:name="android.hardware.camera" /> 

Sin embargo, aún no puedo interruptor de la linterna. ¿Alguien podría señalar mis errores? Gracias

+0

puede encontrar todo aquí http://stackoverflow.com/questions/6068803/how-turn-on-only-camera-flash-light-programmatically-in-android – user219882

+0

posible duplicado de [No se puede usar la linterna en Galaxy Nexus] (http://stackoverflow.com/questions/10731285/unable-to-use-the-flashlight-in-galaxy-nexus) –

+0

Arriba está mi archivo de manifiesto Además, agregué la vista de camSurface dentro de main.xml ¿Será un problema? Puedo obtener el mensaje de pan tostado pero no puedo encender la linterna ... Por favor ayuda. ¡¡Gracias!! – user1311794

Respuesta

0

intenta agregar:

android:name="android.permission.FLASHLIGHT" 
android:name="android.hardware.camera.flash 

Y mira este post: How to turn on camera flash light programmatically in Android?

+0

Tengo el siguiente manifiesto Sin embargo, no funciona. – user1311794

+0

He encontrado esta publicación: http://stackoverflow.com/questions/9505945/led-flashlight-does-not-work-on-samsung-galaxy-nexus – Skies

+0

y este: http: // stackoverflow. com/questions/8876843/led-linterna-en-galaxy-nexus-controlable-por-qué-api/9379765 # 9379765 – Skies

0

Es necesario añadir esta etiqueta en el archivo de manifiesto.

<uses-feature android:name="android.hardware.camera.flash"/> 
7

usted debe fijar volver a llamar mHolder.addCallback (this);

Cuestiones relacionadas