Programando para la BlackBerry – Intro
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
Una pregunta:
Blackberry es hombre o es mujer?
Cesar
Con la habilidad para programarl@, BlackBerry es lo que tu quieras que sea!
Rafyta
Jajajajaja
gIzmHo
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
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
@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
[...] Ver primera parte: Intro [...]
Saul
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
Geek & Roll - Blog Archive » Programando para la BlackBerry - Everlasting Flame II
[...] primera y segunda [...]
Fernando
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
Hola, se pueden programar aplicaciones para Blackberry 8700 con Visual Studio .NET?
Cesar
No. Las BlackBerry usan Java como ambiente de desarrollo. Prueba con Eclipse y el plugin JDE, no vas a extraniar VS.NET.
pablo
me interesa este programa, ya lo tienes elaborado?
pablogg@apiconsultores.com
José Luis Martín
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
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
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
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
El kit de desarrollo que descargas de RIM trae un emulador (fledge) que puedes usar.
Gustavo
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
.alx y .jad son archivos de texto plano, asi que no tienes problemas para ver “el codigo”. Los .cod no.
Gerg
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
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
Si, de hecho es una de las funciones de la proxima version.
diego
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
[...] 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
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.