Archive for the ‘ Android ’ Category

Contactos en Android. Añadir información personalizada


Google nos ofrece una gestión de contactos que podemos tener sincronizada con nuestro smartphone. Esta información está estructurada y nos permite añadir direcciones, números de teléfono, direcciones de correo electrónico, fecha de aniversario, sitio web y un número limitado de información personal.

Pero para algunas aplicaciones, necesitamos poder añadir información extra que no aparece entre todos los campos.

En mi caso me surgió la necesidad de incluir un campo prioridad a mis contactos de tal forma que me encontré con la necesidad de incluir campos personalizados en mis contactos.

Basándome en el ejemplo que ofrece el blog de desarrollo de Android en su web para la gestión de contactos, he querido hacer una pequeña ampliación para poder añadir información personalizada. Pero antes de ponernos en materia, deberemos profundizar en algunos conceptos.

Sigue leyendo

Interceptar SMS desde una librería.


IncomingSMSNo hace mucho expliqué como se podían interceptar llamadas entrantes desde una aplicación Android.

Para recibir mensajes entrantes únicamente se deberían modificar algunos parámetros tal y como explica Karam Balkar en su blog.

Pero como se pueden realizar este tipo de intercepciones desde una librería que se carga desde tu aplicación.

Para empezar crearemos una librería cuyo propósito es interceptar mensajes SMS y mostrarlos por pantalla cuyo nombre será receiversms.

La librería tendrá una única clase MainLibrary, que extenderá de FrameLayout, que nos permitirá incluir la clase como un widget de android dentro del Activity que la utilizará.

Sigue leyendo

Dibujar borde superior en un layout en java


Para pintar el borde superior de un layout se puede seguir los pasos descritos en la web de stackoverflow, donde se explica como hacerlo desde un xml.

No pude utilizar este código ya que estaba en un caso particular, y tenía que hacerlo en java ya que la pantalla se tenía que dibujar desde una librería. Para poder añadir el borde tuve que realizar los siguientes pasos:

Primero creamos la layout y lo situamos en la parte inferior de la pantalla


RelativeLayout.LayoutParams relativeParams = new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);
relativeParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM, RelativeLayout.TRUE);
relativeParams.setMargins(0, 2, 0, 0);

RelativeLayout layout = new RelativeLayout(context);
layout.setLayoutParams(relativeParams);
layout.setId(new Random().nextInt());
layout.setVisibility(View.GONE);
layout.setBackgroundColor(smsLayoutBackgroundColor);

Sigue leyendo

Interceptar llamadas entrantes en android


Uno de los usos de un smartphone, aunque parezca increible, es recibir llamadas. En algunas ocasiones esas llamadas no se pueden atender ya que estamos realizando alguna tarea que requiere que estemos enfocados. Aun así no podemos eliminar todas las llamadas, ya que podriamos recibir una llamada urgente.

Para evitar estas llamadas he creado una pequeña aplicación que intercepta las llamadas entrantes y mira si la llamada la realiza una persona que esté marcada como favorita en nuestros contactos.

 

Sigue leyendo

Visualizar hprof de Android en jvisualvm


Para analizar la memoria de la máquina virtual de java de nos encontramos con el problema de extraer acceder directamente a la máquina virtual del dispositivo que estamos utilizando para las pruebas.

Para poder realizar el análisis primero se debe obtener el fichero de memoria. Para ello seguimos los pasos descritos en el blog de Peter Karich.

  1. Añadir permiso adicional a la app para escribir en una memoria externa en el manifest.
    <uses-permission android:name=”android.permission.WRITE_EXTERNAL_STORAGE” />
  2. En el activity crear el hprof al destruir la clase añadiendo el método onDestroy.
    protected void onDestroy() {
    super.onDestroy();
    try {
    Debug.dumpHprofData(“/sdcard/data.hprof”);
    } catch (Exception e) {
    Log.e(“xy”, “No se ha podido crear el hprof”);
    }
    }

El segundo paso consiste en copiar el fichero generado data.hprof en el PC, y transformarlo para su lectura.

hprofconv [-z] <infile> <outfile>

Finalmente se utiliza alguna herramienta como jvisualvm que se incluye el jdk para abrir el fichero convertido.