loading...

domingo, 18 de septiembre de 2011

Android y el robo de celulares. Lo que puedes hacer

 

imageMe acuerdo de tiempos generosos, cuando en mi Windows Mobile con una sola aplicación gratuita y fabulosa como Lookout (antes conocido como Flexilis)podía tener Antimalware, Firewall, Backup en la nube y protección anti-robo, que incluía geo localización, borrado remoto de datos, e incluso la posibilidad de hacer sonar una alarma en el teléfono por si anda cerca.

Hoy en día las cosas son distintas, o al menos lo son para Android. En esta plataforma también Lookout sigue siendo la opción con más estrellas, pero hay algunos cambios: No hay más firewall (tiene sentido si consideramos que Android con su herencia Linux incluye a iptables), y dos de las opciones más importantes en cuanto a protección contra robo, como el borrado y bloqueo remoto, sólo están disponibles para las cuentas premium de pago. Y mientras que me parece genial el servicio de esta firma e invito a quien lo tenga en sus posibilidades a pagarlo y disfrutar del mismo, permítanme abordar la perspectiva del usuario tercermundista de escasos recursos que no quiere tener un cargo recurrente más en su tarjeta de crédito, si es que tiene una.

Pero vamos por partes: A nivel antimalware, difícilmente encontremos en estos momentos una solución más probada y eficiente sin pagar nada que Lookout, el que continúa siendo el mejor, sin experimentar extrema lentitud o consumo excesivo de batería en el equipo por utilizarlo. También nos sirve para localizar nuestro smartphone si lo hemos perdido vía geo localización y alarma remota (hacer sonar el móvil), por tanto lo que realmente necesitamos es un reemplazo gratuito que se encargue de aquellas dos funciones vitales restringidas a usuarios premium: El bloqueo y, mucho más importante, borrado de datos remoto. También debemos tener en cuenta que la mencionada aplicación, aunque es capaz de ser disparada mediante un SMS, este solo puede provenir de la misma Lookout y depende fuertemente de que el teléfono esté conectado a Internet para su correcto funcionamiento, algo de lo que no podemos estar absolutamente seguros que siga sucediendo en caso de que nos sea sustraído. Lo que necesitamos es una aplicación similar a la genial RemoteTracker para Windows Mobile, que no depende de ninguna conexión de red al recibir comandos nuestros directamente por SMS desde ciertos números de control configurados con anterioridad. En Android tenemos una solución equivalente que, aunque aún le falta desarrollarse, promete mucho:TotalCare.

De hecho TotalCare funciona de una forma muy similar al mencionado RemoteTracker, recibiendo comandos vía SMS con una sintaxis definida y una clave de validación. Por ejemplo uno de los comandos que podemos enviar es el siguiente:

MCS 12345 DELETE MMC

Con este comando enviamos la orden para que sea completamente borrada la tarjeta SD, donde 12345 es el PIN o clave que hayamos elegido (posee la limitación de ser solo numérica). Otro comando que nos permite borrar datos, pero en este caso todos los contactos de nuestra agenda, es:

MCS 12345 DELETE CONTACTS

De la misma forma existen comandos para eliminar los mensajes SMS y el registro de llamadas, y también uno para borrar todo de una sola vez:

MCS 12345 DELETE ALL

Una de las funciones que aún faltan sin embargo, principalmente por su carácter temprano de aplicación en fase beta, es la posibilidad de realizar un bloqueo remoto del dispositivo. De todas formas es algo que podemos paliar activando el bloqueo automático en Android luego de unos minutos de inactividad mediante una clave. En cambio sí ya podemos disfrutar de comandos sumamente útiles en caso de hurto o extravío como:

MCS 12345 START AUTO ANSWERING

Con esta función habilitamos la respuesta automática ante cualquier llamado que reciba nuestro teléfono perdido, al mismo tiempo que la rutea por el altavoz, por lo que puede tener una doble utilidad: Utilizar nuestro móvil extraviado como un micrófono espía remoto en caso de llamar con el que tengamos en mano con su micrófono mudo, o utilizarlo para comunicarnos y hacernos escuchar fácilmente con aquel que se encuentre en poder de nuestro smartphone. En el sitio oficial de la aplicación podemos ver la lista completa de comandos y su descripción

Fuente: Geekotic

Programar el envío automático de determinado tweet, actualización de Facebook (y ahora de Google+) o, aún más popular: Programar el envío de un SMS con el mensaje y destino de nuestra elección

Dentro de la categoría “quiero que esto se haga por mí sin tener que recordar hacerlo en el momento exacto que necesito que se haga” entra sin lugar a dudas lo que muchos de nosotros hemos querido en algún momento dado, e incluso averiguado como hacerlo: Programar el envío automático de determinado tweet, actualización de Facebook (y ahora de Google+) o, aún más popular: Programar el envío de un SMS con el mensaje y destino de nuestra elección. Si tenemos un celular común, habrá que contar con la tremenda suerte de que el mismo incluya dicha función. Si disponemos de un smartphone los horizontes se amplían, ya que con seguridad nuestra plataforma móvil seleccionada contará con al menos una aplicación, ya sea gratuita o no, que lo haga.
SMS SchedulerEn el caso de Android contamos con SMS Scheduler, que posiblemente sea la mejor debido a su simpleza, eficiencia, disponibilidad en Android Market y costo cero, ya que más allá de lo que nos saldrá con nuestro plan enviar los mensajes SMS en cuestión, esta aplicación es totalmente gratuita, mantenida por un banner publicitario como en la mayoría de los casos. Su interfaz es muy simple y no cuenta con grandes secretos, nos permite configurar una cantidad virtualmente infinita de mensajes programados a ocurrir una vez o repetirse en el intervalo que elijamos.
Genial, tenemos el poder de hacerlo pero… realmente, ¿cuáles son las ventajas útiles de programar un SMS más allá de molestar conocidos u ostentar que podemos hacerlo? ¿Pueden existir contratiempos al hacerlo?
Posiblemente uno de los primeros usos que se nos puede ocurrir para esto es como una especie de recordatorio o alarma que podemos enviarle a algún amigo que lo necesite; por supuesto que si el aviso es para nosotros nada mejor que programarnos una alerta real en el calendario o despertador de nuestro móvil. Pero los usos más interesantes, y los que todo el mundo percibe al ver con tentación esta funcionalidad, son por supuesto los sociales, los que nos permiten engañar a los otros, hacerles creer que nos tomamos el trabajo de mandar un mensaje en un momento en el que no podríamos o no recordaríamos hacerlo.
Uno de los más inocentes en este sentido puede tener utilidad profesional, y se trata de poder enviar cierta información a un jefe o colega. Si el momento en el que nos acordamos o podemos hacerlo no es propicio, como por ejemplo a las 2 de la mañana, podremos programar un mensaje que a primera hora laboral del día siguiente lo haga por nosotros y así descansar tranquilos.
Otros usos pueden resultar aún más engañosos o directamente malintencionados, como por ejemplo hacerle creer a esa franja de la raza humana tan pendiente de fechas y aniversarios que realmente nos acordamos de su cumpleaños, o incluso aturdir con molestos mensajes repetitivos a alguien que nos caiga mal, lo cual sería algo ilegal y estúpido por partes iguales si lo hiciésemos desde nuestro teléfono.
Sin embargo, una utilidad que encontré curiosamente interesante para la posibilidad de enviar un SMS desatendido fue la de simplemente saludar. ¿Suena tonto, no? Pero déjenme explicarme. El mejor ejemplo de esto es cuando conocemos una chica y nos pasa su número con la idea de seguir en contacto. Francamente es muy fácil olvidarse luego y quedar como cortados o faltos de interés, que no sería tan grave ya que si alguien nos da su número y nos deja contando los días eso sí lo sería por darle demasiada importancia a una situación casual. Por supuesto, podemos agendarnos un recordatorio para escribir el mensaje en el momento decidido pero, ¿qué mejor que ahorrarse todo el trabajo y que el mensaje salga directamente por nosotros? Tal vez en el momento elegido no podamos hacerlo o nos encontremos poco inspirados para arrancar el intercambio. De todas formas, nos acordaremos de todo cuando la otra parte nos responda, y ahí sí, por supuesto, deberemos contestar escribiendo esta vez nuestros mensajes en tiempo real.
Y esa es justamente una de las peores desventajas que nos puede suceder si nos confiamos programando SMSs. ¿Qué pasa si la chica nos contesta el saludo pero no nos enteramos porque, claro, estábamos muy distraídos en otra cosa? No contestar es mucho peor que no iniciar la conversación, eso seguro. Lo mismo puede pasarnos si nuestro jefe nos pregunta algo a las 8 de la mañana sobre ese reporte que le dimos y nosotros aún seguimos en el séptimo sueño. Son cuestiones delicadas, y la aparentemente ideal solución de programar un mensaje SMS deberíamos aplicarla con mucha sabiduría, analizando cada caso por separado.
Pero este análisis de los pormenores de los SMSs automatizados no estaría completo sin tu opinión: Si alguna vez usaste esta función, ¿en qué situación fue? ¿Salió bien o complicó más las cosas?
Fuente: Geekotic

viernes, 9 de septiembre de 2011

Cómo crear diálogo Selector de tiempo, para seleccionar el tiempo en Android

A veces se puede requerir al usuario establecer el tiempo en nuestra aplicación. Al hacer esto en vez de pedir al usuario que introduzca los datos de tiempo en forma cruda, le podemos proporcionar con una hermosa interfaz gráfica de usuario para ingresar los datos.

Android está equipado con un aparato llamado TimePicker que podemos integrar en nuestra aplicación para proporcionar esta funcionalidad a los usuarios finales.Cuenta con un elegante aspecto y el diseño. Por lo tanto, vamos a empezar .

Para demostrar el uso de flash TimePicker vamos a crear un diseño que tendrá un TextView y un botón. El botón se utiliza para elegir un nuevo tiempo y una vez elegido el momento actualizada se mostrará en la Vista de Texto. Crear un nuevo Android proyecto con las siguientes propiedades :

  • Nombre del proyecto - Selector de tiempo
  • Nombre de la aplicación - Selector de tiempo
  • Nombre del paquete - com.botskool.TimePicker
  • Nombre de la actividad - TimePickerActivity

Crear un nuevo archivo XML en res / layout / y el nombre como main.xml y copiar el siguiente código:

package com.botskool.TimePicker;

import java.util.Calendar;

import android.app.Activity;
import android.app.Dialog;
import android.app.TimePickerDialog;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.Toast;

public class TimePickerActivity extends Activity {
/** Private members of the class */
private TextView displayTime;
private Button pickTime;

private int pHour;
private int pMinute;
/** This integer will uniquely define the dialog to be used for displaying time picker.*/
static final int TIME_DIALOG_ID = 0;

/** Callback received when the user "picks" a time in the dialog */
private TimePickerDialog.OnTimeSetListener mTimeSetListener =
new TimePickerDialog.OnTimeSetListener() {
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
pHour = hourOfDay;
pMinute = minute;
updateDisplay();
displayToast();
}
};

/** Updates the time in the TextView */
private void updateDisplay() {
displayTime.setText(
new StringBuilder()
.append(pad(pHour)).append(":")
.append(pad(pMinute)));
}

/** Displays a notification when the time is updated */
private void displayToast() {
Toast.makeText(this, new StringBuilder().append("Time choosen is ").append(displayTime.getText()), Toast.LENGTH_SHORT).show();

}

/** Add padding to numbers less than ten */
private static String pad(int c) {
if (c >= 10)
return String.valueOf(c);
else
return "0" + String.valueOf(c);
}

/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

/** Capture our View elements */
displayTime = (TextView) findViewById(R.id.timeDisplay);
pickTime = (Button) findViewById(R.id.pickTime);

/** Listener for click event of the button */
pickTime.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
showDialog(TIME_DIALOG_ID);
}
});

/** Get the current time */
final Calendar cal = Calendar.getInstance();
pHour = cal.get(Calendar.HOUR_OF_DAY);
pMinute = cal.get(Calendar.MINUTE);

/** Display the current time in the TextView */
updateDisplay();
}

/** Create a new dialog for time picker */

@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case TIME_DIALOG_ID:
return new TimePickerDialog(this,
mTimeSetListener, pHour, pMinute, false);
}
return null;
}
}
 

En este caso, empezamos por declarar los miembros de nuestra clase . Usamos onCreate ()la función de mapa de nuestra clase miembros de las variables correspondientes en el diseño. Además, nos registrarse en el oyente el clic en el botón de evento. Cuando un usuario hace clic en el botón, nosotros llamamos el ShowDialog () función. Una llamada aonCreateDialog () función de las necesidades que se hizo la primera vez ShowDialog () la función se ejecuta con el fin de crear una instancia de diálogo TimePickerDialog . Una vez que se crea una instancia que se utilizan una y otra vez cada vez que el usuario hace clic en el botón de configuración de un nuevo tiempo. Asimismo, Recuperar el tiempo actual y llamar updateDisplay () función dentro de onCreate () función. El updateDisplay () la función se utiliza para actualizar TextView el diseño, la DisplayTime, utilizando los valores de los miembros de tiempo privado de la clase . Además, el TimePickerDialog.OnDateSetListenerescucha cuando el usuario ha establecido el tiempo (haciendo clic en el botón). Cada vez que esto sucede, el onTimeSet () método de devolución de llamada, que se define para actualizar el pHour y pMinute campos miembros de la nueva hora fijada por el usuario.Después de esto el sector privado updateDisplay () se llama al método para actualizar la TextView y displayToast () se llama al método para mostrar una notificación que informe sobre el cambio de hora. Eso es todo! Ahora compila y ejecuta el Android aplicación . Si hace clic en el botón del widget selector de tiempo se mostrará como se muestra a continuación:


Después de que el usuario establece el tiempo, la TextView se actualiza junto con la notificación tal como se muestra a continuación:



Fuente: http://www.botskool.com/geeks/how-create-time-picker-dialog-selecting-time-android?utm_source=feedburner&utm_medium=email&utm_campaign=Feed%3A+bOtskOOl+%28bOtskOOl%29