Geek & Roll - Blog Archive » Programando para la BlackBerry – Intro

Programando para la BlackBerry – Intro

Cesar December 1st, 2008 programacion 26 comentarios

Con este post inicio una serie de escritos sobre programación para la BlackBerry. Hace poco me compré un aparato de estos (una BlackBerry Pearl 8110 para ser exactos) sin saber mucho de sus capacidades, modelos existentes o herramientas de programación. Realmente el motivo por el cual adquirí una BlackBerry fue la curiosidad por probar este dispositivo y ver si sus capacidades push son tan buenas y “adictivas” como dicen.

Después de unos días de uso estaba claro que necesitaba programar la funcionalidad que me hacía falta en el dispositivo. Algo crítico para mi es que el móvil me avise del tiempo que llevo en la llamada, ya que mi plan incluye llamadas nacionales sin cargo adicional siempre y cuando se encuentren por debajo de los 5 minutos (plan sin fin de Telcel). Para evitar cargos extra todas mis llamadas a los 10 números que tengo registrados deben durar menos de 5 minutos y es ahí donde entra la parte smart del smartphone.

Idealmente lo que la aplicación debe hacer es lo siguiente: si estas llamando a uno de tus 10 números registrados, comienza a contarte el tiempo. Si la llamada cruza el softlimit suena una alarma. Si cruza el hardlimit, cuelga la llamada automáticamente. Claro que todo esto configurable, tanto los dos límites como las acciones que se ejecutan cuando se supera cualquiera de los dos límites. Bastante sencillo y uno pensaría que es funcionalidad que cualquier smartphone trae por defecto. Pero no.

Para mi sorpresa la BlackBerry se programa con Java, más específicamente es Java ME con una API específica para estos dispositivos. Puedes programar una aplicación para BlackBerry utilizando exclusivamente Java ME, pero si quieres hacer algo verdaderamente interesante (push de datos, usar el bluetooth, WiFi, guardar datos, utilizar el GPS o la red celular) necesitas usar esta API propietaria. Básicamente lo que se necesita es (cabe mencionar que por el momento esto es Windows only desafortunadamente):

  • El Java Development Kit (JDK)
  • El JDE de Research in Motion (RIM para los amigos) que incluye la API propietaria, un simulador, un IDE, entre otras cosas
  • Llaves para firmar tu código en caso de ser necesario (más sobre este punto después)


Yo recomiendo que eviten como la plaga el JDE y mejor descargar el plugin para Eclipse y desarrollar con ese ambiente (Eclipse + plugin). El editor de Eclipse es maravilloso, puedes simular y depurar desde Eclipse, hasta firmar tu código si es necesario.

Una vez que instalamos el plugin para Eclipse, estamos listos para Geek&Rollear. Creamos un nuevo BlackBerry Project y creamos una clase que extiende a Application, que es la clase base para cualquier aplicación que no requiere interacción directa con el usuario:


public class myApplication extends Application{
public static void main(String[] args) {
System.out.println("Hello World!");
}
}

Nice!!! ya tenemos un comienzo. Lo que sigue es de alguna manera recibir notificación cuando la BlackBerry vaya a marcar un número, contar los segundos, verificar los límites y realizar las acciones necesarias. Todo esto es más sencillo de lo que pareciera gracias al PhoneListener y a la capacidad de inyectar keystrokes a la aplicación.

En el siguiente post el programa completo y un pequeño análisis de lo que es firmar una aplicación que utiliza las APIs restringidas, cómo se firma una aplicación desde que se solicitan las llaves hasta que se sube al teléfono.

P.D. La aplicación la tengo instalada en mi BlackBerry y funciona de maravilla. Actualmente está bastante limitada, no hay manera de decirle cuales números de teléfono monitorear, además de que no se puede configurar los tiempos de los límites ni las acciones a ejecutar… bueno tal vez sea más sencillo decir que es lo que si hace: detecta cuando se va a hacer una llamada, cuenta el tiempo, a los 4 minutos y 30 segundos inyecta un tono DTMF (el tono que suena cuando presionas el número 7) a la llamada y a los 4 minutos con 50 segundos cuelga la llamada automáticamente. La siguiente funcionalidad que se tiene planeada es:

  • Integración con la lista de contactos, para seleccionar con cuales contactos se desea monitorear las llamadas
  • Configuración de los límites de tiempo
  • Configuración de las acciones
  • Una interfaz gráfica para todo esto

Se planea cobrar una módica cantidad por los paquetes listos para ser instalados Over the Air. Se anunciará en este mismo blog cuando la aplicación este lista para ser consumida por el público en general.

26 Comentarios

boynas

December 2nd, 2008

Una pregunta:

Blackberry es hombre o es mujer?

Cesar

December 2nd, 2008

Con la habilidad para programarl@, BlackBerry es lo que tu quieras que sea!

Rafyta

December 2nd, 2008

Jajajajaja

gIzmHo

December 2nd, 2008

chingona la idea.

che cesar te imaginé probando la aplicación, como cuando en un episodio de “The Big Bang Theory” prenden una lámpara vía Internet y surge un díalogo como este:

-gente normal: ¿porque hacen esto?
– geeks: porque podemos hacerlo.

Aluziner

December 2nd, 2008

Cesar: Se podrá entrarle con NetBeans 6.x?…. nunca he usado eclipse, aunque igual y le doy una checada de una vez por todas, llevo tiempo escuchando que es muy bueno.

Salu2

Cesar

December 3rd, 2008

@gIzmHo: Tomare eso como un cumplido. Gracias gIzmHo!

@Aluziner: Si se puede con Netbeans 6.x siempre y cuando estes bajo Windows, por el hecho de que el JDE y sus herramientas son Windows only. Hay cientificos locos que hicieron correr el simulador bajo Wine pero yo no tuve tanta suerte (o tiempo, o habilidad) para hacerlo. Una busqueda en Google de blackberry development netbeans te da la respuesta a tu pregunta.

Pero de verdad recomiendo el plugin para Eclipse. Estoy seguro que no tendras problemas instalandolo y Eclipse es un metaIDE excelente. El plugin se integra perfectamente y crear nuevos proyectos, simularlos y firmarlos es muy sencillo.

Geek & Roll - Blog Archive » Programando para la Blackberry - Everlasting Flame

December 6th, 2008

[…] Ver primera parte: Intro […]

Saul

December 9th, 2008

Tengo una duda… Como recupero el ringtone por defecto que traen los blackberry?, he cambiado el ringtone y no lo consigo en la lista de tonos de llamada… Gracias

Fernando

February 2nd, 2009

Ustedes se la estan aventando buena, me pondré a buscar el JDE de NetBeans para ver en que se puede contribuir xD. Suerte!

diego margara

February 5th, 2009

Hola, se pueden programar aplicaciones para Blackberry 8700 con Visual Studio .NET?

Cesar

February 5th, 2009

No. Las BlackBerry usan Java como ambiente de desarrollo. Prueba con Eclipse y el plugin JDE, no vas a extraniar VS.NET.

pablo

April 21st, 2009

me interesa este programa, ya lo tienes elaborado?

pablogg@apiconsultores.com

José Luis Martín

July 1st, 2009

César: me interesa tu aplicación que avisa el límite de los 5 minutos… y otras, ¿me mandas correo para hacer contacto?
Gracias.

Gerson Ender Piezal

August 19th, 2009

Busco un programador de Blackberry. para una pequena aplicacion de citas.
solo necesito que se integre a la black berry algunos datos que se generaran en el computador.

deskotc

January 9th, 2010

socio expliquelo con porotito no entiendo nada y tengo una blak berry 8100 y tengo llamada gratis entre 2 numeros pero devo cortar antes de los 5 min.. Siempre me paso y me gasta el saldo que devo tener para mantener las llamadas.

Jose

January 16th, 2010

odio eclipse!!! netbeans es mejor y instalando los complementos para trabajar con J2ME creo que funcionaria…. ahora como haria para probarlo en un emulador??? (asi como cuando se programa para windows mobile)

Cesar

January 19th, 2010

El kit de desarrollo que descargas de RIM trae un emulador (fledge) que puedes usar.

Gustavo

June 2nd, 2010

Tengo una pregunta, pero primero les aclaro que no se mucho de programacion, solo cosas muy basicas!! ok la pregunta es: sera que se puede ver el codigo fuente a paritr de archivos .alx .jad o .cod? para modificarlos

Cesar

June 3rd, 2010

.alx y .jad son archivos de texto plano, asi que no tienes problemas para ver “el codigo”. Los .cod no.

Gerg

July 26th, 2010

Gracias Geek, gente como tu hace posible aprender mas. En la informatica no debe haber egoismos te felicito. Sigue adelante con tus proyectos.

Salu2

Pipesanabria

September 4th, 2010

Hola Cesar ote tu aplicacion es excelente, pero hay posibilidad alguna de que salga proxima la opcion para que se corte con una lista de contactos ??
Nuevamente felicitaciones

Cesar

September 4th, 2010

Si, de hecho es una de las funciones de la proxima version.

diego

October 1st, 2010

hola soy de argentina como harias para crear una aplicacion para llevar los pagos que hacen mensualmente los clientes que uno tiene. Gracias.

Geek & Roll - Blog Archive » Adiós Everlasting Flame

November 9th, 2010

[…] aproximadamente 2 años (el 1ro de Diciembre se cumplen) inicié un proyecto, como empiezan la mayoría de estos: para rascar una comezón propia. A lo largo de los meses se […]

hylarios

February 25th, 2011

creo que ya Ubuntu tiene aplicaciones para programar
podrías confirmarme que es valida
The Java Development Environment for Emacs

Haz un comentario:

Es necesario que dejes tu nombre y correo electrónico (no se publicarán).

Si dejas un comentario anónimo, con insultos o ajeno al tema, iremos hasta tu casa y le diremos a tu mamá la cantidad de porno que hay en tu computadora. Si, lo sabemos.