AndroidLight: Usando la Pantalla como Linterna

[xtrasgu.org]¿Para qué vale Instalar el SDK de Android en Debian GNU/LiNUX 5.0 Lenny? Pues vale para programar aplicaciones para Android, siempre y cuando sepas algo de Java.

El primer Android que tuve fue un HTC Magic que venía sin ningún tipo de led que permitiese usar el móvil como si fuese una linterna, por lo que buscando en el Android Market, encontré una aplicación que ponía la pantalla del móvil en blanco y subía el brillo lo suficiente como para poder entrar en una habitación a oscuras sin dejarte un dedo del pie en el intento.

Esta aplicación parecía una buena candidata para empezar, ya que la usaba de vez en cuando, no podía ser muy complicada de programar, y la que había encontrado en el Android Market me pedía demasiados permisos para ser una aplicación que sólo ponía el fondo de la pantalla en blanco…

Programar para Android es bastante sencillo, ya que una vez que consigues el esqueleto de la aplicación, añadirle funcionalidades es tan fácil como buscar en Google algún foro en el que expliquen cómo pasar el móvil a pantalla completa, o cómo usar el sensor de movimiento, o lo que necesites.

Sin más, el código de AndroidLight:

/*
 * AndroidLight - Use a white screen in your Android as a torch. 
 * 
 * Copyright (c) 2010, Pablo López Cienfuegos 
 * 
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see .
 *   
 */

package org.xtrasgu.light;

import android.app.Activity;
import android.view.Window;
import android.view.WindowManager;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.os.Bundle;
import android.view.View;

public class AndroidLight extends Activity {
    ViewLight viewlight;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Set full screen view:
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);
        requestWindowFeature(Window.FEATURE_NO_TITLE);

        // Set full brightness:
        WindowManager.LayoutParams lp = getWindow().getAttributes();
        lp.screenBrightness = 1.0f;
        getWindow().setAttributes(lp);

        viewlight = new ViewLight(this);
        setContentView(viewlight);
    }

    private class ViewLight extends View {
        public ViewLight(Context context) {
            super(context);
        }

        @Override
        protected void onDraw(Canvas canvas) {
            Paint paint = new Paint();
            paint.setStyle(Paint.Style.FILL);
            paint.setColor(Color.WHITE);
            canvas.drawPaint(paint);
        }
    }
}

Pondría una captura de pantalla, pero no me pareció que hiciese falta poner una pantalla completamente en blanco… :-)

Deja un Comentario