Quiero hacer una aplicación para mi móvil Android que encienda el Flash y no se apague, como una especie de linterna ¿cómo puedo hacer esto? no tengo muchos conocimientos de programación.
Publicado:
Mar Ago 09, 2011 9:34 pm
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: Cómo hacer aplicación Linterna en Android
Anuncios
varios escribió:
Quiero hacer una aplicación para mi móvil Android que encienda el Flash y no se apague, como una especie de linterna ¿cómo puedo hacer esto? no tengo muchos conocimientos de programación.
Te mostramos un ejemplo de cómo hacerlo, la base está en usar el modo TORCH de los flash de las cámaras de los dispositivos Android, obviamente no todos los dispositivos soportarán este método pues no todos los flash admiten el modo TORCH (encendido contínuo). Por ello, previamente, comprobamos si el dispositivo cámara del móvil Android soporta es te modo, además de comprobar si soporta cámara.
En el código utilizamos dos botones, uno para encender la linterna (bt
El código Java del fichero "linterna.java" de tu aplicación Android:
public class LinternaFlash extends Activity
{
private Button btEncenderLinterna;
private Button btApagarLinterna;
private Camera dispCamara;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btEncenderLinterna = (Button) findViewById(R.id.btEncenderLinterna);
btEncenderLinterna.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{
processOnClick();
}
});
@Override
public void onClick(View v)
{
processOffClick();
}
});
}
@Override
protected void onResume()
{
super.onResume();
try
{
dispCamara = Camera.open();
}
catch( Exception e )
{
Toast.makeText(getApplicationContext(),
"No se ha podido acceder a la cámara",
Toast.LENGTH_LONG).show();
}
}
//Get supported flash modes
List modosFlash = parametrosCamara.getSupportedFlashModes ();
if (modosFlash != null &&
modosFlash.contains(Camera.Parameters.FLASH_MODE_TORCH))
{
//Set the flash parameter to use the torch
parametrosCamara.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
try
{
dispCamara.setParameters(parametrosCamara);
dispCamara.startPreview();
}
catch (Exception e)
{
Toast.makeText(getApplicationContext(),
"Error al activar la linterna",
Toast.LENGTH_LONG).show();
}
}
else
{
Toast.makeText(getApplicationContext(),
"El dispositivo no tiene el modo de Flash Linterna",
Toast.LENGTH_LONG).show();
}
}
else
{
Toast.makeText(getApplicationContext(),
"No se ha podido acceder al Flash de la cámara",
Toast.LENGTH_LONG).show();
}
}
}
Para mostrar los dos botones, en el Layout (fichero main.xml) del activity principal pondremos:
Los permisos son "android.permission.CAMERA", "android.hardware.camera" y "android.hardware.camera.autofocus".
Publicado:
Vie Ago 12, 2011 4:56 pm
varios Magnífico usuario
Registrado: Oct 10, 2006 Mensajes: 2092
Asunto: Re: Cómo hacer aplicación Linterna en Android
Anuncios
alonsojpd escribió:
Te mostramos un ejemplo de cómo hacerlo, la base está en usar el modo TORCH de los flash de las cámaras de los dispositivos Android, obviamente no todos los dispositivos soportarán este método pues no todos los flash admiten el modo TORCH (encendido contínuo). Por ello, previamente, comprobamos si el dispositivo cámara del móvil Android soporta es te modo, además de comprobar si soporta cámara.
En el código utilizam........hardware.camera" y "android.hardware.camera.autofocus".
El código que indicas me funciona muy bien pero cuando el móvil entra en modo ahorro de energía y se apaga la pantalla también se apaga el flash ¿cómo se puede solucionar esto?
Publicado:
Jue Jul 26, 2012 10:20 pm
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: Cómo hacer aplicación Linterna en Android
Anuncios
varios escribió:
El código que indicas me funciona muy bien pero cuando el móvil entra en modo ahorro de energía y se apaga la pantalla también se apaga el flash ¿cómo se puede solucionar esto?
El problema es que en el código falta añadir el parámetro: FOCUS_MODE_INFINITY, te indicamos el código completo de una aplicación Android que activa el flash en modo TORCH y con el parámetro FOCUS_MODE_INFINITY. La aplicación incluye dos botones, uno para encender la cámara y otro para apagarla. Sólo se apagara (una vez encendida) si se pulsa el botón "Apagar" o si se cierra la aplicación:
//Al cerrar la aplicación apagar el flash
public void finish()
{
if (dispCamara != null)
{
dispCamara.release();
dispCamara = null;
}
super.finish();
}
@Override
protected void onResume()
{
super.onResume();
try
{
dispCamara = Camera.open();
}
catch( Exception e )
{
//Toast.makeText(getApplicationContext(),
// "No se ha podido acceder a la cámara",
// Toast.LENGTH_SHORT).show();
}
}
private void apagarLinternaAndroid ()
{
if (dispCamara != null)
{
parametrosCamara = dispCamara.getParameters();
parametrosCamara.setFlashMode(Parameters.FLASH_MODE_OFF);
dispCamara.setParameters(parametrosCamara);
}
else
{
Toast.makeText (getApplicationContext(),
"No se ha podido acceder al Flash de la cámara",
Toast.LENGTH_SHORT).show();
}
}
private void encenderLinternaAndroid ()
{
//Toast.makeText(getApplicationContext(),
// "Accediendo a la cámara", Toast.LENGTH_SHORT).show();
if (dispCamara != null)
{
//Toast.makeText(getApplicationContext(),
// "Cámara encontrada", Toast.LENGTH_SHORT).show();
//obtener modos de flash de la cámara
List<String> modosFlash =
parametrosCamara.getSupportedFlashModes ();
if (modosFlash != null &&
modosFlash.contains(
Camera.Parameters.FLASH_MODE_TORCH))
{
//establecer parámetro TORCH para el flash de la cámara
parametrosCamara.setFlashMode(
Camera.Parameters.FLASH_MODE_TORCH);
parametrosCamara.setFocusMode(
Camera.Parameters.FOCUS_MODE_INFINITY);
try
{
dispCamara.setParameters(parametrosCamara);
dispCamara.startPreview();
}
catch (Exception e)
{
Toast.makeText(getApplicationContext(),
"Error al activar la linterna",
Toast.LENGTH_SHORT).show();
}
}
else
{
Toast.makeText(getApplicationContext(),
"El dispositivo no tiene el modo de Flash Linterna",
Toast.LENGTH_SHORT).show();
}
}
else
{
Toast.makeText(getApplicationContext(),
"No se ha podido acceder al Flash de la cámara",
Toast.LENGTH_SHORT).show();
}
}
}
Publicado:
Jue Jul 26, 2012 10:29 pm
chris2611 Usuario
Registrado: Dec 24, 2012 Mensajes: 1
Asunto: No puedo acceder al flash
Lo hago todo como lo pone ahi y luego al instalarla en mi movil me pone no se puede acceder al flash.¿Me podrian decir que hacer?
gracia
Puede publicar nuevos temas en este foro No puede responder a temas en este foro No puede editar sus mensajes en este foro No puede borrar sus mensajes en este foro No puede votar en encuestas en este foro
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A