J'essaie d'écrire une application qui nécessite le flash LED pour passer en mode torche. Le problème est, Android 2.1 ne supporte pas ce mode et donc je ne peux pas encore supporter la plate-forme. Ce ne serait pas un problème, mais je l'écris pour mon fiancé et son Epic 4G n'a que 2,1 en ce moment. J'ai trouvé des exemples de code qui utilisent des appels d'API non documentés et qui fonctionnent donc sur le Motorola Droid et autres, mais ils ne fonctionnent pas sur l'Epic. Quelqu'un at-il des suggestions sur où chercher pour trouver le code qui devrait m'aider à obtenir ce travail?Camera.Parameters.FLASH_MODE_TORCH remplacement pour Android 2.1
Répondre
Je trouve que le mode torche fonctionne généralement bien sur 2.1 mais j'ai eu le même problème avec le Samsung Epic et trouvé un hack autour d'elle. En regardant les params retournés par Camera.getParameters() lors de l'exécution sur le Samsung Epic, j'ai remarqué que les modes flash qu'il prétend supporter sont: flash-mode-values = off, on, auto; Le mode torche n'est pas répertorié, ce qui implique qu'il n'est pas pris en charge.
Cependant, j'ai trouvé que ce modèle accepterait toujours ce mode et allumerait la LED! Les mauvaises nouvelles étaient que lorsque plus tard, le réglage du mode flash de retour à l'auto ou éteint à gauche, le voyant reste allumé! Il ne s'éteint pas jusqu'à ce que vous appeliez Camera.release().
Je suppose que c'est pourquoi Samsung ne l'inclut pas dans la liste des supportés!?!
Alors ... la méthode que j'utilise pour activer la flamme dans une classe CameraHelper est ...
/***
* Attempts to set camera flash torch/flashlight mode on/off
* @param isOn true = on, false = off
* @return boolean whether or not we were able to set it
*/
public boolean setFlashlight(boolean isOn)
{
if (mCamera == null)
{
return false;
}
Camera.Parameters params = mCamera.getParameters();
String value;
if (isOn) // we are being ask to turn it on
{
value = Camera.Parameters.FLASH_MODE_TORCH;
}
else // we are being asked to turn it off
{
value = Camera.Parameters.FLASH_MODE_AUTO;
}
try{
params.setFlashMode(value);
mCamera.setParameters(params);
String nowMode = mCamera.getParameters().getFlashMode();
if (isOn && nowMode.equals(Camera.Parameters.FLASH_MODE_TORCH))
{
return true;
}
if (! isOn && nowMode.equals(Camera.Parameters.FLASH_MODE_AUTO))
{
return true;
}
return false;
}
catch (Exception ex)
{
MyLog.e(mLOG_TAG, this.getClass().getSimpleName() + " error setting flash mode to: "+ value + " " + ex.toString());
}
}
Les activités qui utilisent cet appel comme suit ...
private void toggleFlashLight()
{
mIsFlashlightOn = ! mIsFlashlightOn;
/**
* hack to fix an issue where the Samsung Galaxy will turn torch on,
* even though it says it doesnt support torch mode,
* but then will NOT turn it off via this param.
*/
if (! mIsFlashlightOn && Build.MANUFACTURER.equalsIgnoreCase("Samsung"))
{
this.releaseCameraResources();
this.initCamera();
}
else
{
boolean result = mCamHelper.setFlashlight(mIsFlashlightOn);
if (! result)
{
alertFlashlightNotSupported();
}
}
}
Le La magie qui rend ce travail dans releaseCameraResources() est qu'elle appelle Camera.release() .... et je dois alors réinitialiser tous mes trucs de caméra pour les appareils Samsung.
Pas joli mais semble fonctionner pour beaucoup d'utilisateurs.
Notez que j'ai un rapport de mode de torche ne fonctionnant pas du tout avec ce code sur Nexus One, mais j'ai été capable de creuser dedans. Il fonctionne définitivement sur HTC EVO et Samsung Epic.
Espérons que cela aide.
Dans mon cas pour les appareils Samsung je devais définir le mode de mise au point à l'infini et il a commencé à travailler
params.setFocusMode(Camera.Parameters.FOCUS_MODE_INFINITY);
mCamera.setParameters(params);
mCamera.startPreview();
Merci beaucoup pour l'indice :) J'ai eu un problème avec le flash ne fonctionne pas sur un Galaxy S 5 avec le mode de mise au point "auto", le réglage à "l'infini" a fait l'affaire: p – Kervala
- 1. Android 2.1: Chiffrement Bluetooth
- 2. Android 2.1 contact téléphonique
- 3. android ListView remplacement pour ScrollView
- 4. importer vcard dans android 2.1
- 5. Pincer zoom avant android 2.1
- 6. Android 2.1 - Numéro de vidéo
- 7. Android 2.1 Bluetooth SPP à LM058 (remplacement de câble série) problème
- 8. La carte s'affiche sur l'émulateur Android 2.1 mais pas sur Android 2.1 mobile
- 9. Comment obtenir Android 2.1 SDK pour reconnaître nouvelle classe: SignalStrength
- 10. Comment faire pour atteindre les onglets arrondis dans Android 2.1 +
- 11. Android 2.1 Composant CheckBox: changement de couleur
- 12. Rendre Bluetooth sur Android 2.1 détectable indéfiniment
- 13. Comment démarrer l'activité sous Android 2.1
- 14. Soutenir mon Android 2.2 application sur Android 2.1
- 15. Accéder au fichier .sqlite dans Android 2.1
- 16. Lecture de SMIL sur Android 2.1
- 17. Android 2.1 WebView et saisie au clavier
- 18. Android 2.1 et Ksoap2-Android-assembly-2.4 - Erreur SoapFault
- 19. Diminuer la taille de la barre d'évaluation dans Android 2.1
- 20. Html5 Vidéo sur Android 2.1 avec plusieurs fichiers source
- 21. Android 2.1 Comment créer un jeu de style sniper
- 22. android: AbsListView.OnScrollListener SCROLL_STATE_IDLE n'est pas appelé après SCROLL_STATE_TOUCH_SCROLL (Version 2.1)
- 23. Utilisation de getRotationMatrix et getOrientation sous Android 2.1
- 24. Importer des contacts du fichier .vcf dans Android 2.1
- 25. comment ouvrir un fichier .ics dans la version Android 2.1?
- 26. Suppression/masquage/remplacement de l'interface d'appel Android
- 27. Comment charger jni de la carte SD sur android 2.1?
- 28. Dynamic Overlays ralentissant Google Maps (Android 2.1) sur Nexus One
- 29. comment obtenir combien de satellites en vue android 2.1 sdk
- 30. Stockage des événements dans l'application Calendrier sous Android 2.1
Je ne sais pas si je l'ai fait quelque chose de mal, mais je suis d'obtenir un Fermer la force lorsque je tente de debug il. – smccloud
Sans vouloir vous offenser, le fait de baser la fonctionnalité sur le téléphone n'est pas la solution idéale. Qui sait quelles fonctionnalités les téléphones SAMSUNG auront dans une demi-année ou plus par exemple? – ajacian81
J'ai utilisé votre code. Mais la lampe de poche de l'appareil photo s'éteint automatiquement après quelques secondes. J'ai testé le code dans samsung galaxy ace 2.2.1 .. quelle peut être la raison de cela? –