Comment activer sur le front de la lumière du flash par programmation dans Android?
Je veux revenir sur le devant de la lumière du flash (pas de prévisualisation de la caméra) par programmation sous Android. J'ai cherché sur google, mais l'aide que j'ai trouvé m'a renvoyé à cette page
Quelqu'un aurait un lien ou un exemple de code?
Vous devez vous connecter pour publier un commentaire.
Pour résoudre ce problème, vous devez:
Vérifier si la lampe de poche est
disponible ou pas?
Si oui, puis éteignez/Sur
Si non, alors vous pouvez faire ce que, selon votre application
besoins.
Pour Vérifier la disponibilité de flash dans l'appareil:
Vous pouvez utiliser les éléments suivants:
qui renvoie true si un flash est disponible, false sinon.
Voir:
http://developer.android.com/reference/android/content/pm/PackageManager.html pour plus d'informations.
Pour allumer/éteindre la lampe de poche:
J'ai googlé et a présent sur android.la permission.La LAMPE de poche. Android se manifeste l'autorisation de l'air prometteur:
Faire usage de Caméra et définir De la caméra.Paramètres. Le principal paramètre utilisé ici est FLASH_MODE_TORCH.
par exemple.
Extrait de Code pour activer la caméra lampe de poche.
Extrait de Code pour éteindre l'appareil, la lumière led.
Je viens de trouver un projet qui utilise cette autorisation. Vérifier rapide-paramètres " src code. ici http://code.google.com/p/quick-settings/ (Note: Ce lien est rompu)
Pour Lampe de poche directement voir http://code.google.com/p/quick-settings/source/browse/trunk/quick-settings/#quick-settings/src/com/bwx/bequick/flashlight (Note: Ce lien est rompu)
Update6
Vous pouvez également essayer d'ajouter une SurfaceView comme décrit dans cette réponse Lampe de poche LED sur le Galaxy Nexus contrôlable par ce que l'API?
Cela semble être une solution qui fonctionne sur de nombreux téléphones.
Mise À Jour 5 Mise À Jour Majeure
J'ai trouvé un Lien alternatif (pour les liens cassés ci-dessus): http://www.java2s.com/Open-Source/Android/Tools/quick-settings/com.bwx.bequick.flashlight.htm Vous pouvez maintenant utiliser ce lien. [Mise à jour: 14/9/2012 Ce lien est rompu]
Mise à jour de 1
Un Autre OpenSource Code :
http://code.google.com/p/torch/source/browse/
Mise à jour 2
Exemple montrant comment activer la LED sur un Motorola Droid: http://code.google.com/p/droidled/
Un Autre Code Source Ouvert :
http://code.google.com/p/covedesigndev/
http://code.google.com/p/search-light/
Mise à jour 3 (Widget pour activer/désactiver la caméra led)
Si vous souhaitez développer un widget qui allume et éteint votre appareil photo led, alors vous devez vous référer à ma réponse Widget pour activer/désactiver la caméra lampe de poche sous android..
Mise à jour 4
Si vous souhaitez définir l'intensité de la lumière émergeant de la caméra LED vous pouvez consulter Puis-je changer la LED intensité d'un appareil Android? post complet. Notez que seulement enracinée HTC appareils prennent en charge cette fonctionnalité.
** Questions:**
Il y a aussi quelques problèmes lors de l'activation/désactivation de la lampe de poche. par exemple. pour les appareils n'ayant pas
FLASH_MODE_TORCH
, ou même si elle a, ensuite, lampe de poche ne s'allume pas, etc.Généralement Samsung crée beaucoup de problèmes.
Vous pouvez vous référer à des problèmes dans la liste ci-dessous:
Utilisation de la caméra lampe de poche sous Android
Activer/DÉSACTIVER la Caméra LED/lumière du flash dans Samsung Galaxy Ace 2.2.1 & Galaxy Tab
android.permission.FLASHLIGHT
sans-papiers? Est-il sûr à utiliser? Je suis en mesure de basculer la lampe-torche avec caméra permission seulement!De mon expérience, si votre application est conçue pour fonctionner à la fois portrait et orientation paysage, vous devez déclarer la variable
cam
comme statique. Sinon,onDestroy()
, qui est appelé sur le passage de l'orientation, la détruit, mais ne dispense pas de la Caméra de sorte qu'il n'est pas possible de rouvrir à nouveau.à se manifester, j'ai dû mettre cette ligne
de http://developer.android.com/reference/android/hardware/Camera.html
suggéré lignes ci-dessus ne fonctionnait pas pour moi.
you need to declare the variable cam as static
Camera
Classe dansAndroidStudio
prêter attention à êtreandroid.hardware
classe ...De l'API de 23 ou Supérieur (Android M, 6.0)
ÉDITION SUPPLÉMENTAIRE
Personnes encore upvoting de ma réponse, j'ai donc décidé de poster un code supplémentaire
C'était ma solution pour le problème de retour dans la journée:
J'ai Eu de la lumière avec le flash automatique avec ci-dessous simple en Trois Étapes.
Dans votre Appareil photo Code de le faire de cette façon.
Construire + Exécuter —> Maintenant, Allez à la faible lumière de la zone et Snap photo, vous devez obtenir l'auto lumière du flash si le périphérique prend en charge.
Android Lollipop introduit la caméra 2 API et obsolète la caméra précédente de l'API. Cependant, l'utilisation de l'API obsolètes pour allumer le flash fonctionne toujours et est beaucoup plus simple que d'utiliser la nouvelle API.
Il semble que la nouvelle API est conçue pour une utilisation dédiée complet camera apps et que ses architectes n'ont pas vraiment envisager de plus simple, les cas d'utilisation tels que d'allumer la lampe de poche. Faire que maintenant, on doit obtenir une CameraManager, créer un CaptureSession avec un mannequin en Surface, et enfin créer et démarrer un CaptureRequest. La gestion des exceptions, des ressources et de nettoyage de longs rappels inclus!
Pour voir comment faire pour activer la lampe de poche sur Lollipop et plus nouveau, prendre un coup d'oeil à la FlashlightController dans le PSBA projet (essayez de trouver les plus récents comme les plus âgés utiliser des Api qui ont été modifiés). N'oubliez pas de définir les autorisations nécessaires.
Android Guimauve introduit enfin un moyen simple d'activer le flash avec setTorchMode.
Code complet pour android App Lampe de poche
Manifeste
XML
MainActivity.java
Il y a différentes façons d'accéder à Flash de l'Appareil photo dans les différentes versions d'Android. Quelques Api cessé de travailler en Sucette et puis il a de nouveau changé dans la Guimauve. Pour remédier à cela, j'ai créé un simple bibliothèque que j'ai été l'aide de quelques-uns de mes projets et c'est de donner de bons résultats. Il est encore incomplet, mais vous pouvez essayer de vérifier le code et trouver les pièces manquantes. Voici le lien - NoobCameraFlash.
Si vous voulez juste pour s'intégrer dans votre code, vous pouvez utiliser gradle pour que. Voici les instructions (Pris directement dans le fichier Readme) -
L'étape 1. Ajouter le JitPack référentiel pour votre fichier de build. L'ajouter dans le répertoire racine de votre build.gradle à la fin des dépôts:
L'étape 2. Ajouter la dépendance
Utilisation
Initialiser le
NoobCameraManager
singleton.Vous pouvez également définir le Niveau de journalisation de la journalisation du débogage. La journalisation utilise Bûcheron de la bibliothèque. Le niveau de Journalisation par défaut est
LogLevel.None
Après que vous avez juste besoin d'appeler le singleton pour activer ou désactiver le flash de l'appareil photo.
Il est facile de basculer Flash trop
You have to take care of the runtime permissions to access Camera yourself, before initializing the NoobCameraManager. In version 0.1.2 or earlier we used to provide support for permissions directly from the library, but due to dependency on the Activity object, we have to remove it.
J'ai implémenté cette fonction dans mon application par le biais de fragments à l'aide de SurfaceView. Le lien vers cette stackoverflow question et sa réponse peut être trouvée ici
Espère que cela aide 🙂
Dans la Guimauve et au-dessus, CameraManager s `setTorchMode()' semble être la réponse. Cela fonctionne pour moi:
Vous pouvez également utiliser le code suivant pour désactiver le flash.