Camera.Parameters.FLASH_MODE_TORCH sostituzione per Android 2.1

Sto cercando di scrivere un'applicazione che richiede che il flash del LED entri in modalità torcia. Il problema è che Android 2.1 non support questa modalità e quindi non posso supportre la piattaforma ancora. Non sarebbe un problema, ma lo scrivo per il mio fidanzato e il suo epico 4G ha solo 2,1 in questo momento. Ho trovato alcuni esempi di codice che utilizzano alcune chiamate API senza documenti e quindi lavorano sul Motorola Droid e simili, ma non funzionano sull'Epic. Qualcuno ha alcuni suggerimenti su where cercare di trovare il codice che dovrebbe aiutarmi a far funzionare questo?

  • Come fare una miniatura da una foto scattata dalla camera?
  • Layout relativo ottiene il return di width / altezza 0
  • Come get la cornice dal file video in android
  • Come impostare un allarme per scattare correttamente a tempo determinato?
  • Android M ascoltando android.os.action.DEVICE_IDLE_MODE_CHANGED
  • SpannableStringBuilder per creare String con più font / size di text ecc Esempio?
  • Android: Miglior approccio per passare i dati tra i frammenti di viewpager
  • Come abilitare il supporto multiutente in AVD 4.2
  • come dovrei aprire e chiudere correttamente il mio database
  • gestire sms ricevuti utilizzando il quadro ionico
  • Android MediaStore Inserisci image File aggiuntivo creato
  • Do l'android support più lingue?
  • 2 Solutions collect form web for “Camera.Parameters.FLASH_MODE_TORCH sostituzione per Android 2.1”

    Sto scoprendo che la modalità torcia funziona generalmente a 2,1, ma ho avuto lo stesso problema con il Samsung Epic e ho trovato un hack intorno a esso.

    Guardando i params restituiti da Camera.getParameters () quando si esegue sul Samsung Epic, ho notato che i modi flash che afferma di supportre sono: flash-mode-values ​​= off, on, auto;

    la modalità torcia non è elencata, il che significa che non è supportta.

    Tuttavia, ho scoperto che questo model avrebbe ancora accettato quella modalità e dovresti accendere il LED! Le cattive notizie sono state che quando più tardi impostare la modalità flash in auto o spento lasciare il LED ancora acceso! Non si spegnerà finché non si chiama Camera.release ().

    Suppongo che sia per questo che Samsung non lo inserisca nell'elenco dei sostenuti!?!

    Quindi … il metodo che uso per commutare la torcia in una class CameraHelper è …

    /*** * 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()); } } 

    Le attività che lo utilizzano lo chiamano come segue …

     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(); } } } 

    La magia che rende questo lavoro in releaseCameraResources () è che chiama Camera.release () …. e poi devo reinizializzare tutte le cose che ho per le fotocamere per i dispositivi Samsung.

    Non è bello ma sembra funzionare per molti utenti.

    Notare che ho un rapporto della modalità torcia che non funziona affatto con questo codice sul Nexus One ma sono stati in grado di scavare in esso. Sicuramente funziona su HTC EVO e Samsung Epic.

    Spero che questo ti aiuti.

    Nel mio caso per i dispositivi Samsung ho dovuto impostare la modalità di messa a fuoco all'infinito e ha cominciato a funzionare

     params.setFocusMode(Camera.Parameters.FOCUS_MODE_INFINITY); mCamera.setParameters(params); mCamera.startPreview(); 
    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.