2013-01-03 6 views
0

Je voulais construire une application de lampe de poche en utilisant le code suivant. Cela fonctionne sur le HTC Desire HD d'un ami, mais ce n'est pas sur mon RAZR et le Galaxy Nexus d'un ami. J'ai également essayé la solution avec focus_mode_infinity, mais il n'y a toujours pas de succès.FLASH_MODE_TORCH fonctionne/ne fonctionne pas

package com.example.flashlight; 

import android.app.Activity; 
import android.hardware.Camera; 
import android.hardware.Camera.Parameters; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 

public class MainActivity extends Activity { 

Camera camera = null; 
Parameters parameters; 


@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 



    final Button OnOff = (Button)findViewById(R.id.Switch); 


    OnOff.setOnClickListener(new Button.OnClickListener() { 




@Override 
public void onClick(View arg0) { 



    if(camera == null) { 
     camera = Camera.open(); 
     camera.startPreview(); 
     parameters = camera.getParameters(); 
     parameters.setFlashMode(Parameters.FLASH_MODE_TORCH); 
     parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_INFINITY); 
     camera.setParameters(parameters); 

    } 
    else { 
     parameters.setFlashMode(Parameters.FLASH_MODE_OFF); 
     parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO); 
     camera.setParameters(parameters); 
     camera.release(); 
     camera = null; 

    } 

} 


}); 
}} 

Répondre

0

Je pense que FLASH_MODE_TORCH est pas pris en charge par RAZR, j'ai eu le même problème avec un client rapport le même problème pour une application (Flash ne clignote pas). Ce que je vous suggère est avant de régler le paramètre pour vérifier si son pris en charge:

List<String> flashModes = parameters.getSupportedFlashModes(); 
if (flashModes.contains(Parameters.FLASH_MODE_TORCH)) { 
    // Mode supported good to go 
} 
+0

Cela ne fonctionnera pas. Exemple: Galaxy S3 mini, modes flash pris en charge: [auto, macro, fixe]. Encore FLASH_MODE_TORCH et FLASH_MODE_OFF fonctionnent bien. –

0

après le réglage des paramètres de l'appareil utilisent la méthode ci-dessous:

camera.startPreview(); 

ici appareil photo est votre objet Camera.

Questions connexes