Вы находитесь на странице: 1из 77

BlackBerry Java Application Core

Versin: 5.0

Gua de desarrollo

Publicado: 2010-06-30 SWD-790641-0630123233-005

Contenido
1 Administrar aplicaciones............................................................................................................................................................ Administrador de aplicaciones...................................................................................................................................................... Recuperar informacin acerca de una aplicacin BlackBerry Java Application............................................................. Comunicar con otra aplicacin BlackBerry Java Application............................................................................................ Determinar los servicios disponibles en una aplicacin BlackBerry Java Application................................................... Control de la aplicacin.................................................................................................................................................................. Solicitar acceso a los recursos.............................................................................................................................................. Mdulos de cdigo.......................................................................................................................................................................... Recuperar informacin del mdulo...................................................................................................................................... Acceder a los mensajes de control................................................................................................................................................ Mostrar un mensaje para una operacin que requiere permiso de usuario.................................................................... Mostrar un mensaje de control de aplicaciones a un usuario........................................................................................... 5 5 5 5 6 6 6 7 7 7 7 8 9 9 9 9 10 10 10 10 11 11 11 11 13 13 13 14 14 15 15 15 15

2 Almacenar datos.......................................................................................................................................................................... Administracin de datos................................................................................................................................................................ Acceso a la memoria....................................................................................................................................................................... Sistemas y rutas de archivo........................................................................................................................................................... API de conexiones de archivo........................................................................................................................................................ Almacenamiento en medios extrables........................................................................................................................................ Acceso a los datos en la tarjeta multimedia microSD........................................................................................................ Uso de la tarjeta multimedia microSD con ms de un dispositivo BlackBerry............................................................... Cifrado de archivos en tarjetas microSD............................................................................................................................. Polticas de TI y tarjetas multimedia microSD.................................................................................................................... Cifrado de datos en una tarjeta multimedia microSD....................................................................................................... Ejemplo de cdigo: leer secciones de un archivo binario.......................................................................................................... Almacenamiento de datos constantes......................................................................................................................................... Crear un almacn de datos constantes............................................................................................................................... Almacenar datos constantes................................................................................................................................................. Recuperar datos constantes.................................................................................................................................................. Eliminar datos constantes..................................................................................................................................................... Almacenamiento de registros MIDP............................................................................................................................................. Crear un almacn de registros MIDP................................................................................................................................... Agregar un registro a un almacn de registros.................................................................................................................. Recuperar un registro de un almacn de registros............................................................................................................

Recuperar todos los registros de un almacn de registros................................................................................................ Recopilaciones................................................................................................................................................................................. Recuperar una recopilacin de almacenamiento constante............................................................................................. Crear un oyente de recopilacin para notificar al sistema cuando cambia una recopilacin....................................... Eliminar un oyente de recopilacin que notifica al sistema cuando cambia una recopilacin..................................... Notificar al sistema cuando cambia una recopilacin....................................................................................................... Almacenamiento de tiempo de ejecucin.................................................................................................................................... Recuperar el almacn de tiempo de ejecucin................................................................................................................... Agregar un objeto en el almacn de tiempo de ejecucin................................................................................................ Reemplazar un objeto en el almacn de tiempo de ejecucin......................................................................................... Recuperar un objeto de tiempo de ejecucin registrado................................................................................................... Recuperar un objeto de tiempo de ejecucin no registrado............................................................................................. 3 Crear conexiones......................................................................................................................................................................... Conexiones de red y tipos de transporte...................................................................................................................................... Utilizar BlackBerry Enterprise Server como gateway de intranet..................................................................................... Utilizar el gateway de Internet del proveedor de servicios inalmbricos........................................................................ Recuperar el nombre de la red inalmbrica........................................................................................................................ Conexiones...................................................................................................................................................................................... Utilizar la autenticacin HTTP.............................................................................................................................................. Utilizar una conexin HTTPS................................................................................................................................................ Utilizar una conexin de socket............................................................................................................................................ Utilizar una conexin de datagramas.................................................................................................................................. Utilizar una conexin de puerto USB o de puerto serie.................................................................................................... Utilizar una conexin de puerto serie es una marca comercial de Bluetooth SIG......................................................... Conexiones Wi-Fi............................................................................................................................................................................ Familias de acceso inalmbrico............................................................................................................................................ Recuperar las familias de acceso inalmbrico con las que es compatible un dispositivo BlackBerry.......................... Determinar si un dispositivo BlackBerry es compatible con las distintas familias de acceso inalmbrico................. Determinar los transmisores de la familia de acceso inalmbrico que estn activados............................................... Activar el transmisor para una familia de acceso inalmbrico......................................................................................... Desactivar el transmisor para una familia de acceso inalmbrico................................................................................... Comprobar si el transmisor Wi-Fi est activado................................................................................................................. Comprobar si el transmisor Wi-Fi est conectado a un punto de acceso inalmbrico.................................................. Recuperar el estado del punto de acceso inalmbrico o el perfil Wi-Fi activo...............................................................

15 16 16 17 17 18 18 18 19 19 19 20 21 21 21 22 22 22 22 24 25 26 28 29 30 30 30 31 31 31 31 31 31 32

Recuperar el nombre de la red inalmbrica........................................................................................................................ Abrir una conexin de socket Wi-Fi...................................................................................................................................... Abrir una conexin HTTP Wi-Fi............................................................................................................................................. Abrir una conexin HTTPS Wi-Fi.......................................................................................................................................... API de red mejorada....................................................................................................................................................................... Ejemplo de cdigo: mostrar los tipos de transporte disponibles...................................................................................... Ejemplo de cdigo: crear una conexin a travs de HTTP utilizando el primer protocolo de transporte disponible .................................................................................................................................................................................................. 4 Controlar el acceso a las API y a los datos de la aplicacin................................................................................................. Comprobar si es necesaria una firma de cdigo......................................................................................................................... API de BlackBerry con acceso controlado.................................................................................................................................... Registrarse para utilizar API controladas..................................................................................................................................... Restricciones de las firmas de cdigo.......................................................................................................................................... Solicitar una firma de cdigo......................................................................................................................................................... Registrar una clave de firma utilizando un servidor proxy......................................................................................................... Firmar una aplicacin mediante un servidor proxy..................................................................................................................... Ver el estado de la firma de una aplicacin................................................................................................................................. Utilizar claves para proteger API y datos..................................................................................................................................... Proteger API utilizando claves de firma de cdigo..................................................................................................................... Proteger datos del almacn de tiempo de ejecucin utilizando claves de firma de cdigo.................................................. Proteger datos constantes utilizando claves de firma de cdigo.............................................................................................. 5 Probar una aplicacin del dispositivo BlackBerry.................................................................................................................. Probar aplicaciones en BlackBerry Smartphone Simulator....................................................................................................... Probar aplicaciones en un dispositivo BlackBerry....................................................................................................................... Probar aplicaciones mediante archivos .cod compilados........................................................................................................... Instalar y eliminar un archivo .cod para realizar pruebas.................................................................................................. Guardar un archivo .cod que se encuentra en un dispositivo en un ordenador............................................................. Recuperar informacin acerca de un archivo .cod............................................................................................................. 6 Empaquetar y distribuir una aplicacin BlackBerry Java Application................................................................................. Verificar previamente la aplicacin del dispositivo BlackBerry................................................................................................. Distribucin de aplicaciones a travs de la red inalmbrica..................................................................................................... Extraccin inalmbrica (iniciada por el usuario)......................................................................................................................... Push inalmbrico (iniciado por el servidor).................................................................................................................................

32 32 33 33 34 34 35 38 38 38 39 39 40 41 41 41 42 42 43 43 45 45 45 45 46 46 46 48 48 48 48 48

Distribuir aplicaciones BlackBerry Java Applications a travs de la red inalmbrica............................................................. Extraer archivos .cod "hermanos"........................................................................................................................................ Modificar la informacin de un conjunto de aplicaciones MIDlet.................................................................................... Propiedades de los archivos .jad de aplicaciones del dispositivo BlackBerry................................................................. Corregir los tamaos de los archivos .cod indicados en un archivo .jad......................................................................... Crear archivos .jad que hagan referencia a varios archivos .cod..................................................................................... Distribuir aplicaciones del dispositivo BlackBerry con BlackBerry Desktop Software............................................................ Elementos de un archivo .alx en una aplicacin del dispositivo BlackBerry................................................................... Distribucin de aplicaciones a travs de una conexin de ordenador..................................................................................... Distribuir una aplicacin desde un ordenador.................................................................................................................... Distribuir una aplicacin desde una pgina Web............................................................................................................... Distribuir una aplicacin para la prueba............................................................................................................................. Distribuir una aplicacin desde un ordenador............................................................................................................................ Crear un archivo del Cargador de aplicaciones.......................................................................................................................... Instalar una aplicacin del dispositivo BlackBerry en un dispositivo especfico..................................................................... Especificar versiones compatibles de BlackBerry Device Software.......................................................................................... Especificar una ubicacin para su aplicacin en un dispositivo BlackBerry............................................................................ Especificar una ubicacin para una aplicacin en un dispositivo BlackBerry................................................................. 7 Localizar aplicaciones del dispositivo BlackBerry.................................................................................................................. Compatibilidad de varios idiomas................................................................................................................................................. Archivos necesarios para la localizacin...................................................................................................................................... Administrar archivos de localizacin para un conjunto de aplicaciones del dispositivo BlackBerry.................................... 8 Autenticacin personalizada del usuario................................................................................................................................. 9 Glosario......................................................................................................................................................................................... 10 Comentarios................................................................................................................................................................................. 11 Recursos relacionados................................................................................................................................................................ 12 Historial de revisin del documento......................................................................................................................................... 13 Aviso legal.....................................................................................................................................................................................

49 49 50 50 51 51 52 52 57 57 58 58 58 58 58 59 61 61 63 63 63 64 66 67 70 71 72 73

Gua de desarrollo

Administrar aplicaciones

Administrar aplicaciones
Administrador de aplicaciones

BlackBerry Java Virtual Machine en el dispositivo BlackBerry incluye un administrador de aplicaciones que es el distribuidor central de los eventos del sistema operativo para otras aplicaciones del dispositivo BlackBerry. La clase net.rim.device.api.system.ApplicationManager permite a las aplicaciones interactuar con el administrador de aplicaciones para llevar a cabo las acciones siguientes: interactuar con procesos, por ejemplo, la recuperacin de los ID de las aplicaciones en primer plano publicar eventos globales en el sistema ejecutar una aplicacin inmediatamente o a una hora especfica

Recuperar informacin acerca de una aplicacin BlackBerry Java Application


1. Importe las clases y las interfaces necesarias.
import import import import net.rim.device.api.system.ApplicationManager; net.rim.device.api.system.ApplicationDescriptor; java.lang.String; net.rim.device.api.system.*;

2.

Para recuperar informacin acerca de los procesos que se ejecutan, invoque


ApplicationManager.getVisibleApplications(). ApplicationManager manager = ApplicationManager.getApplicationManager(); ApplicationDescriptor descriptors[] = manager.getVisibleApplications();

3.

Para recuperar las descripciones de los objetos de las aplicaciones del dispositivo BlackBerry que se estn ejecutando, invoque ApplicationDescriptor.getName().
String appname1 = descriptors[0].getName();

4.

Para recuperar una descripcin de la aplicacin actual, invoque


ApplicationDescriptor.currentApplicationDescriptor(). ApplicationDescriptor descriptor = ApplicationDescriptor.currentApplicationDescriptor();

Comunicar con otra aplicacin BlackBerry Java Application


1. 2. Importe la clase net.rim.device.api.system.ApplicationManager. Para publicar un evento de nivel de sistema en otra aplicacin del dispositivo BlackBerry, invoque uno de los mtodos ApplicationManager.postGlobalEvent().

Gua de desarrollo

Control de la aplicacin

Determinar los servicios disponibles en una aplicacin BlackBerry Java Application


El libro de servicios contiene los registros de servicio. Cada registro de servicio define un servicio en un dispositivo BlackBerry. Los registros de servicio definen el protocolo de comunicacin (WAP o IPPP), el gateway de red y la informacin de configuracin, por ejemplo, la configuracin del explorador. 1. 2. Importe la clase net.rim.device.api.servicebook. Para permitir que la aplicacin del dispositivo BlackBerry interacte con BlackBerry Infrastructure, utilice la API del libro de servicios (net.rim.device.api.servicebook).

Control de la aplicacin
Las reglas de poltica de TI de control de BlackBerry Application proporcionan a los administradores la capacidad de establecer las caractersticas de una aplicacin cuando se ejecuta en un dispositivo BlackBerry especfico. Por ejemplo, los administradores pueden utilizar la regla de poltica de TI de control de BlackBerry Application para asegurarse de que un juego que existe en el dispositivo BlackBerry no puede acceder a la API del telfono. La regla de poltica de TI de control de BlackBerry Application funciona slo cuando el dispositivo BlackBerry est conectado a BlackBerry Enterprise Server. Esta poltica de TI no se aplica a dispositivos BlackBerry que utilizan nicamente BlackBerry Internet Service. Si el administrador o un usuario deniega el acceso de la aplicacin a una de las reas protegidas, el mtodo asociado muestra una excepcin ControlledAccessException. Para comprobaciones de nivel de clase, el mtodo muestra una excepcin NoClassDefFoundError. Dependiendo de las APIS que utilice, su aplicacin podra necesitar gestionar ambos tipos de errores.

Solicitar acceso a los recursos


1. Importe las clases y las interfaces necesarias.
import net.rim.device.api.applicationcontrol.ApplicationPermissions; import net.rim.device.api.applicationcontrol.ApplicationPermissionsManager;

2. 3. 4.

Cree una instancia de la clase ApplicationPermissions.


ApplicationPermissions permissions = new ApplicationPermissions();

Especifique la solicitud de compilacin para solicitar privilegios de inyeccin de eventos.


permissions.addPermission( ApplicationPermissions.PERMISSION_EVENT_INJECTOR );

Determine la configuracin de control de acceso que el usuario del dispositivo BlackBerry ha especificado.
if(ApplicationPermissionsManager.getInstance().invokePermissionsRequest (permissions)) { System.out.println("The user allowed requested permissions.");

Gua de desarrollo

Mdulos de cdigo

} else { System.out.println("The user denied requested permissions."); }

Mdulos de cdigo
Recuperar informacin del mdulo
1. 2. Importe la clase net.rim.device.api.system.CodeModuleManager. Para recuperar el identificador de un mdulo, invoque getModuleHandle() y proporcione el nombre del mdulo de cdigo como parmetro.
int handle = CodeModuleManager.getModuleHandle("test_module");

3.

Para recuperar informacin especfica acerca de un mdulo, invoque los mtodos de la clase CodeModuleManager y proporcione el identificador del mdulo como parmetro para estos mtodos.
String name = CodeModuleManager.getModuleName( handle ); String vendor = CodeModuleManager.getModuleVendor( handle ); String description = CodeModuleManager.getModuleDescription( handle ); int version = CodeModuleManager.getModuleVersion( handle ); int size = CodeModuleManager.getModuleCodeSize( handle ); int timestamp = CodeModuleManager.getModuleTimestamp( handle );

4.

Para recuperar una matriz de identificadores de los mdulos existentes en un dispositivo BlackBerry, invoque getModuleHandles().
int handles[] = CodeModuleManager.getModuleHandles(); String name = CodeModuleManager.getModuleName( handles[0]);

Acceder a los mensajes de control


Mostrar un mensaje para una operacin que requiere permiso de usuario
Puede utilizar los componentes del paquete net.rim.device.api.applicationcontrol para permitir a la aplicacin del dispositivo BlackBerry mostrar mensajes personalizados para un usuario del dispositivo BlackBerry cuando la aplicacin intente realizar una operacin que el usuario debe permitir. La aplicacin muestra informacin acerca del tipo del permiso que el usuario debe proporcionar. Por ejemplo, puede utilizar PERMISSION_PHONE para una operacin que requiera el acceso a la funcionalidad de telfono del dispositivo. Puede utilizar el paquete applicationcontrol para incluir un mensaje personalizado con el mensaje predeterminado que una aplicacin muestra en respuesta a un control de la aplicacin.

Gua de desarrollo

Acceder a los mensajes de control

Mostrar un mensaje de control de aplicaciones a un usuario


Una aplicacin del dispositivo BlackBerry puede incluir ms de un valor ReasonProvider registrado. La aplicacin muestra los mensajes de ReasonProviders en el orden en el cual cada valor ReasonProvider se registra con la aplicacin. Por ejemplo, si una aplicacin registra un valor ReasonProvider A antes de un valor ReasonProvider B, la aplicacin muestra el mensaje del valor ReasonProvider A, seguido del mensaje del valor ReasonProvider B. 1. Importe la interfaz net.rim.device.api. applicationcontrol.ReasonProvider. 2. En su implementacin del mtodo ReasonProvider.getMessage(int permissionID), devuelva un valor String que contenga el mensaje a mostrar al usuario.

Gua de desarrollo

Almacenar datos

Almacenar datos
Administracin de datos

Puede almacenar datos en la memoria constante en el dispositivo BlackBerry. La API de almacenamiento constante de BlackBerry APIS y la API RMS de MIDP proporcionan compatibilidad con JSR 37 y JSR 118. Un dispositivo BlackBerry que ejecuta BlackBerry Device Software versin 4.2 o posterior tambin ofrece un sistema de archivos tradicional y compatibilidad para guardar el contenido directamente en el sistema de archivos mediante las API de JSR 75. Tanto con las API del almacn constante de BlackBerry como con las API RMS de MIDP, puede almacenar los datos de forma constante en la memoria flash. Los datos persisten incluso si retira la batera del dispositivo BlackBerry. Un dispositivo BlackBerry que ejecute BlackBerry Device Software versin 5.0 o posterior tambin es compatible con el uso de SQLite. Debe utilizar las API de JSR 75 o SQLite para almacenar datos en una tarjeta multimedia.

Acceso a la memoria
El entorno Java de BlackBerry se ha diseado para evitar que las aplicaciones provoquen problemas de forma accidental o malintencionada en otras aplicaciones o en el dispositivo BlackBerry. Las aplicaciones del dispositivo BlackBerry pueden escribir slo en la memoria del dispositivo BlackBerry que utiliza BlackBerry Java Virtual Machine; no pueden obtener acceso a la memoria virtual ni al almacenamiento constante de otras aplicaciones (a menos que se les otorgue acceso especficamente para hacerlo). Las aplicaciones personalizadas slo pueden acceder al almacenamiento o datos de usuarios constantes o bien comunicarse con otras aplicaciones a travs de API especficas. Research In Motion debe firmar digitalmente las aplicaciones que utilicen determinadas API de BlackBerry, con el fin de proporcionar un seguimiento de auditora de las aplicaciones que utilizan API confidenciales.

Sistemas y rutas de archivo


Los sistemas de archivos en un dispositivo BlackBerry tienen sus correspondientes rutas de archivo que podr utilizar para acceder a los mismos. Punto de montaje del sistema de archivos flash interna tarjeta multimedia

Ruta file:///store/. file:///SDCard.

Gua de desarrollo

API de conexiones de archivo

API de conexiones de archivo


La API de conexin de archivo ofrece un sistema de archivos tradicional y la compatibilidad para guardar los datos directamente en el sistema de archivos en el dispositivo BlackBerry o en una tarjeta microSD. Puede ver los datos en el sistema de archivos y mover los datos a un ordenador mediante Windows.

Almacenamiento en medios extrables


Acceso a los datos en la tarjeta multimedia microSD
El paquete javax.microedition.io.file es compatible con las API de conexin de archivos JSR 75 y se utiliza en aplicaciones para obtener acceso al sistema de archivos para la tarjeta multimedia microSD. Tambin puede implementar la interfaz FileConnection para obtener acceso a tonos de llamada e imgenes de la cmara del dispositivo BlackBerry. Clase o interfaz
ConnectionClosedException FileConnection FileSystemListener FileSystemRegistry IllegalModeException

Descripcin Esta excepcin se produce cuando una aplicacin invoca un mtodo en una conexin de archivos cerrada. Una aplicacin puede utilizar esta API para obtener acceso a los archivos o directorios. Una aplicacin puede utilizar esta API para recibir notificaciones de estado cuando la aplicacin agrega o elimina una raz del sistema de archivos. Una aplicacin puede utilizar esta API como registro central para detectores del sistema de archivos que reciben la adicin o eliminacin de los sistemas de archivos. Esta excepcin se produce cuando un mtodo requiere un modo de seguridad especfico (por ejemplo, LECTURA o ESCRITURA) y la conexin abierta no se encuentra en ese modo.

Uso de la tarjeta multimedia microSD con ms de un dispositivo BlackBerry


Si el usuario del dispositivo BlackBerry mueve la tarjeta multimedia microSD a un dispositivo BlackBerry que no utiliza una contrasea de dispositivo o que utiliza una contrasea que no descifra correctamente la clave principal de la tarjeta multimedia microSD, el dispositivo BlackBerry solicita al usuario del dispositivo BlackBerry que escriba la contrasea de la tarjeta multimedia microSD. Si el dispositivo BlackBerry tiene una contrasea, el usuario del dispositivo BlackBerry puede utilizar el aviso para cambiar la contrasea de la tarjeta multimedia microSD a una contrasea del dispositivo BlackBerry.

10

Gua de desarrollo

Ejemplo de cdigo: leer secciones de un archivo binario

Cifrado de archivos en tarjetas microSD Polticas de TI y tarjetas multimedia microSD


Puede aplicar la poltica de TI Cifrar los datos escritos en la tarjeta multimedia microSD a cualquier archivo nuevo o modificado que almacene en la tarjeta multimedia microSD. Slo se cifrarn los archivos que almacene en la tarjeta multimedia microSD despus de que un administrador establezca la poltica de TI. Se cifrar todo el contenido excepto los archivos multimedia.

Cifrado de datos en una tarjeta multimedia microSD


Si una aplicacin BlackBerry Java Application obtiene acceso a un archivo en la tarjeta de memoria microSD, tiene lugar el descifrado del archivo y el archivo se traslada a la memoria principal para que lo lea una aplicacin. Para que una aplicacin BlackBerry Java Application obtenga acceso al archivo protegido con contrasea, el dispositivo BlackBerry no debe bloquearse. Los archivos cifrados tienen una extensin .rem y no se pueden descifrar en plataformas que no sean de BlackBerry. Si el NVRAM se elimina y la tarjeta multimedia microSD se bloquea con una clave de dispositivo BlackBerry, los datos de la tarjeta multimedia microSD ya no estn accesibles. Para eliminar los datos que no sean accesibles, inicie el dispositivo BlackBerry y elimine todos los archivos multimedia cifrados. El dispositivo BlackBerry utiliza una clave maestra almacenada en la tarjeta multimedia microSD para cifrar los archivos multimedia del dispositivo BlackBerry. La clave maestra evita que el dispositivo BlackBerry tenga que descifrar o volver a cifrar todos los archivos multimedia cuando desactive el cifrado o cambie la contrasea.

Ejemplo de cdigo: leer secciones de un archivo binario


Este ejemplo de cdigo muestra cmo leer secciones de un archivo binario mediante la lectura de la informacin del encabezado desde un archivo .gif. La aplicacin lee el ancho y la altura de la imagen a partir del encabezado. Para ejecutar el ejemplo de cdigo debe ubicar un archivo .gif en la carpeta raz de una tarjeta multimedia en un dispositivo BlackBerry.
import net.rim.device.api.ui.*; import net.rim.device.api.io.*; import javax.microedition.io.file.*; import javax.microedition.io.*; import java.io.*; import net.rim.device.api.ui.component.*; import net.rim.device.api.ui.container.*; public class RandomFileAccess extends UiApplication { public static void main(String[] args) { RandomFileAccess app = new RandomFileAccess(); app.enterEventDispatcher();

11

Gua de desarrollo

Ejemplo de cdigo: leer secciones de un archivo binario

} class HomeScreen extends MainScreen { public HomeScreen() { setTitle("Random File Access Sample"); try { FileConnection fc = (FileConnection)Connector.open("file:///SDCard/ test.gif"); boolean bFileExists = fc.exists(); if (!bFileExists) { Dialog.alert("Cannot find specified GIF file."); System.exit(0); } DataInputStream in = fc.openDataInputStream(); byte[] widthBytes = new byte[2]; byte[] heightBytes = new byte[2]; if ( in instanceof Seekable ) { ((Seekable) in).setPosition(6); in.read(widthBytes,0,2); ((Seekable) in).setPosition(8); in.read(heightBytes,0,2); } int widthPixels = widthBytes[0] + 256 * widthBytes[1]; int heightPixels = heightBytes[0] + 256 * heightBytes[1]; add(new LabelField("Width: " + widthPixels + "\nHeight: " + heightPixels)); in.close(); fc.close(); } catch (IOException ioe) { ioe.printStackTrace(); } } }

} public RandomFileAccess() { pushScreen(new HomeScreen()); }

12

Gua de desarrollo

Almacenamiento de datos constantes

Almacenamiento de datos constantes


Crear un almacn de datos constantes
Cada uno de los objetos PersistentObject tiene una clave nica extensa. 1. Importe las siguientes clases: net.rim.device.api.system.PersistentObject net.rim.device.api.system.PersistentStore java.lang.String net.rim.device.api.ui.component.Dialog Para crear una clave nica extensa, en BlackBerry Integrated Development Environment, escriba un valor de cadena.
com.rim.samples.docs.userinfo

2. 3. 4. 5.

Haga clic con el botn derecho en la cadena y seleccione Convertir "com.rim.samples.docs.userinfo" a long. Incluya un comentario en el cdigo para indicar la cadena que ha utilizado para generar dicha clave nica extensa. Para crear un almacn de datos constantes, cree un nico objeto esttico PersistentObject e invoque PersistentStore.getPersistentObject, utilizando la clave nica extensa como parmetro.
static PersistentObject store; static { store = PersistentStore.getPersistentObject( 0xa1a569278238dad2L ); }

Almacenar datos constantes


1. Importe las siguientes clases: net.rim.device.api.system.PersistentStore net.rim.device.api.system.PersistentObject Invoque setContents() en un PersistentObject. Este mtodo sustituye el contenido existente por el contenido nuevo. Para guardar el contenido nuevo en el almacn constante, invoque commit().
String[] userinfo = {username, password}; synchronized(store) { store.setContents(userinfo); store.commit(); }

2. 3.

13

Gua de desarrollo

Almacenamiento de datos constantes

4.

Para utilizar una transaccin de lote con el objeto de guardar objetos en el almacn constante, invoque PersistentStore.getSynchObject(). Este mtodo recupera el objeto monitor del almacn constante que bloquea el objeto. a. Realice la sincronizacin en el objeto. b. Invoque commit() siempre que sea necesario. En el caso de que cualquiera de los objetos commit de los lotes generara error, la transaccin del lote al completo ser incorrecta. Para guardar un objeto monitor independientemente de la transaccin de lote, invoque forceCommit() al tiempo que sincroniza el objeto monitor.

5.

Recuperar datos constantes


1. Importe las siguientes clases: net.rim.device.api.system.PersistentObject net.rim.device.api.ui.component.Dialog Invoque getContents() en un objeto PersistentObject. Para convertir el resultado al formato deseado, lleve a cabo una asignacin explcita en el objeto que devuelve PersistentObject.getContents().
synchronized(store) { String[] currentinfo = (String[])store.getContents(); if(currentinfo == null) { Dialog.alert(_resources.getString(APP_ERROR)); } else { currentusernamefield.setText(currentinfo[0]); currentpasswordfield.setText(currentinfo[1]); } }

2. 3.

Eliminar datos constantes


Si elimina el archivo .cod que define un valor PersistentStore, todos los objetos constantes que ha creado el archivo .cod se eliminarn a continuacin. 1. Importe las siguientes clases: net.rim.device.api.system.PersistentStore net.rim.device.api.system.PersistentObject 2. Para eliminar todos los datos constantes de una aplicacin del dispositivo BlackBerry, invoque PersistentStore.destroyPersistentObject(), proporcionando como parmetro una clave nica para PersistentObject. Para eliminar los datos individuales, considere los datos como objetos normales y elimine las referencias a los mismos. La operacin de recopilacin de datos desechables eliminar los datos.

3.

14

Gua de desarrollo

Almacenamiento de registros MIDP

Almacenamiento de registros MIDP


Crear un almacn de registros MIDP
1. 2. Importe la clase javax.microedition.rms.RecordStore. Invoque openRecordStore() y especifique true para indicar que el mtodo debe crear el almacn de registros si ste no existe.
RecordStore store = RecordStore.openRecordStore("Contacts", true);

Agregar un registro a un almacn de registros


1. 2. Importe la clase javax.microedition.rms.RecordStore. Invoque addRecord().
int id = store.addRecord(_data.getBytes(), 0, _data.length());

Recuperar un registro de un almacn de registros


1. Importe las siguientes clases: javax.microedition.rms.RecordStore java.lang.String Invoque getRecord(int, byte[], int). Pase los parmetros siguientes: un ID de registro una matriz de bytes una compensacin
byte[] data = new byte[store.getRecordSize(id)]; store.getRecord(id, data, 0); String dataString = new String(data);

2.

Recuperar todos los registros de un almacn de registros


1. 2. Importe la clase javax.microedition.rms.RecordStore. Importe las siguientes interfaces: javax.microedition.rms.RecordEnumeration javax.microedition.rms.RecordFilter javax.microedition.rms.RecordComparator Invoque openRecordStore().

3.

15

Gua de desarrollo

Recopilaciones

4.

Invoque enumerateRecords(). Pase los parmetros siguientes: filter: especifica un objeto RecordFilter para recuperar un subconjunto de registros del almacn de registros (si el valor es null, el mtodo devuelve todos los registros) comparator: especifica un objeto RecordComparator para determinar el orden en el que el mtodo devuelve los registros (si el valor es null, el mtodo devuelve los registros en cualquier orden) keepUpdated: determina si el mtodo mantiene la enumeracin actual con los cambios en el almacn de registros
RecordStore store = RecordStore.openRecordStore("Contacts", false); RecordEnumeration e = store.enumerateRecords(null, null, false);

Recopilaciones
Recuperar una recopilacin de almacenamiento constante
1. Importe las siguientes clases: net.rim.device.api.system.PersistentStore java.util.Vector
Importe la interfaz net.rim.device.api.synchronization.SyncCollection.

2. 3.

Para proporcionar acceso a la aplicacin del dispositivo BlackBerry a los datos ms recientes de SyncCollection en el PersistentStore, invoque el mtodo PersistentStore.getPersistentObject() utilizando el ID de SyncCollection.
private PersistentObject _persist; private Vector _contacts; private static final long PERSISTENT_KEY = 0x266babf899b20b56L; _persist = PersistentStore.getPersistentObject( PERSISTENT_KEY );

4. 5.

Almacene los datos devueltos en un objeto vector.


_contacts = (Vector)_persist.getContents();

Cree un mtodo para proporcionar a la aplicacin del dispositivo BlackBerry los datos ms recientes de SyncCollection antes de que comience una sesin de copia de seguridad inalmbrica de los datos.
public void beginTransaction() { _persist = PersistentStore.getPersistentObject(PERSISTENT_KEY); _contacts = (Vector)_persist.getContents(); }

6.

Cree cdigo que deber utilizar cuando el SyncCollection que ha recuperado del PersistentStore est vaco.
if( _contacts == null ) { _contacts = new Vector();

16

Gua de desarrollo

Recopilaciones

_persist.setContents( _contacts ); _persist.commit(); }

Crear un oyente de recopilacin para notificar al sistema cuando cambia una recopilacin
El sistema invoca CollectionEventSource.addCollectionListener() para crear un valor CollectionListener para cada SyncCollection que la aplicacin del dispositivo BlackBerry pone a disposicin de la copia de seguridad inalmbrica. 1. Importe la clase net.rim.device.api.util.ListenerUtilities. 2. Importe las siguientes interfaces: java.util.Vector net.rim.device.api.collection.CollectionEventSource net.rim.device.api.collection.CollectionListener net.rim.device.api.synchronization.SyncCollection 3. Cree un objeto Vector privado para almacenar la recopilacin de oyentes de SyncCollection para la aplicacin del dispositivo BlackBerry.
private Vector _listeners; _listeners = new CloneableVector();

4.

Implemente el mtodo CollectionEventSource.addCollectionListener(), asegurndose de que el mtodo agrega un valor CollectionListener al Vector que contiene los oyentes. En el siguiente cdigo de ejemplo, hemos implementado CollectionEventSource.addCollectionListener() para invocar ListenerUtilities.fastAddListener() con el fin de agregar un oyente al Vector que contiene los oyentes.
public void addCollectionListener(Object listener) { _listeners = ListenerUtilities.fastAddListener( _listeners, listener ); }

Eliminar un oyente de recopilacin que notifica al sistema cuando cambia una recopilacin
Una vez el valor CollectionListener no es necesario, el sistema invoca CollectionEventSource.removeCollectionListener. 1. Importe las siguientes clases: net.rim.device.api.util.ListenerUtilities java.util.Vector 2. Importe las siguientes interfaces: net.rim.device.api.collection.CollectionEventSource net.rim.device.api.collection.CollectionListener Implemente las siguientes interfaces:

3.

17

Gua de desarrollo

Almacenamiento de tiempo de ejecucin

net.rim.device.api.collection.CollectionEventSource net.rim.device.api.collection.CollectionListener 4. Implemente el mtodo CollectionEventSource.removeCollectionListener() utilizando el mtodo ListenerUtilities.removeListener() para eliminar el valor CollectionListener del Vector que contiene oyentes SyncCollection para la aplicacin del dispositivo BlackBerry. En el siguiente cdigo de ejemplo, hemos implementado CollectionEventSource.removeCollectionListener() para invocar ListenerUtilities.removeListener() con el fin de eliminar un oyente del Vector que contiene oyentes.
public void removeCollectionListener(Object listener) {_listeners = ListenerUtilities.removeListener( _listeners, listener ); }

Notificar al sistema cuando cambia una recopilacin


1. 2. Importe la interfaz net.rim.device.api.collection.CollectionListener. Para notificar al sistema cuando se agrega un elemento a un valor SyncCollection, invoque CollectionListener.elementAdded().
for( int i=0; i<_listeners.size(); i++ ) { CollectionListener cl = (CollectionListener)_listeners.elementAt( i ); cl.elementAdded( this, object ); } return true; }

3. 4.

Para notificar al sistema cuando se reemplaza un elemento en un valor SyncCollection, invoque


CollectionListener.elementUpdated().

Invoque CollectionListener.elementRemoved().

Almacenamiento de tiempo de ejecucin


Los dispositivos BlackBerry utilizan un almacn de tiempo de ejecucin como ubicacin central en el cual las aplicaciones BlackBerry Java Applications pueden compartir objetos de tiempo de ejecucin. De forma predeterminada, las aplicaciones BlackBerry Java Applications que Research In Motion firma digitalmente pueden acceder a los datos del almacn de tiempo de ejecucin. Pngase en contacto con RIM para obtener informacin acerca de cmo controlar el acceso a sus datos. El almacn de tiempo de ejecucin no es constante. Al reiniciar el dispositivo BlackBerry, los datos del almacn de tiempo de ejecucin se borran.

Recuperar el almacn de tiempo de ejecucin


1. Importe la clase net.rim.device.api.system.RuntimeStore.

18

Gua de desarrollo

Almacenamiento de tiempo de ejecucin

2.

Invoque RuntimeStore.getRuntimeStore().
RuntimeStore store = RuntimeStore.getRuntimeStore();

Agregar un objeto en el almacn de tiempo de ejecucin


1. Importe las siguientes clases: net.rim.device.api.system.RuntimeStore java.lang.String java.lang.IllegalArgumentException Invoque RuntimeStore.put(long, String) y proporcione como parmetros un ID nico extenso y el objeto de tiempo de ejecucin que se va a almacenar. Cree un bloque try-catch para administrar el valor IllegalArgumentException que emite put() si existe un objeto de tiempo de ejecucin con el mismo ID.
RuntimeStore store = RuntimeStore.getRuntimeStore(); String msg = "Some shared text"; long ID = 0x60ac754bc0867248L; try { store.put( ID, msg ); } catch(IllegalArgumentException e) { }

2. 3.

Reemplazar un objeto en el almacn de tiempo de ejecucin


1. Importe las siguientes clases: net.rim.device.api.system.RuntimeStore java.lang.String net.rim.device.api.system.ControlledAccessException Invoque replace(). Cree un bloque try - catch para administrar el valor ControlledAccessException que emite replace() en el caso de que el objeto de tiempo de ejecucin con el ID especificado no exista.
RuntimeStore store = RuntimeStore.getRuntimeStore(); String newmsg = "Some new text"; try { Object obj = store.replace( 0x60ac754bc0867248L, newmsg); } catch(ControlledAccessException e) { } not exist

2. 3.

Recuperar un objeto de tiempo de ejecucin registrado


1. Importe las siguientes clases:

19

Gua de desarrollo

Almacenamiento de tiempo de ejecucin

net.rim.device.api.system.RuntimeStore net.rim.device.api.system.ControlledAccessException 2. 3. Invoque RuntimeStore.get() y proporcione como parmetro el ID del objeto de tiempo de ejecucin. Cree un bloque try - catch para administrar el valor ControlledAccessException que emite get() si BlackBerry Java Application no tiene acceso de lectura al objeto de tiempo de ejecucin especificado.
RuntimeStore store = RuntimeStore.getRuntimeStore(); try { Object obj = store.get(0x60ac754bc0867248L); } catch(ControlledAccessException e) { }

Recuperar un objeto de tiempo de ejecucin no registrado


1. Importe las siguientes clases: net.rim.device.api.system.RuntimeStore net.rim.device.api.system.ControlledAccessException java.lang.RuntimeException Invoque RuntimeStore.waitFor() para esperar a que se produzca el registro de un objeto de tiempo de ejecucin. Cree cdigo para gestionar las excepciones.
RuntimeStore store = RuntimeStore.getRuntimeStore(); try { Object obj = store.waitFor(0x60ac754bc0867248L); } catch(ControlledAccessException e) { } catch(RuntimeException e) { }

2. 3.

20

Gua de desarrollo

Crear conexiones

Crear conexiones
Conexiones de red y tipos de transporte

Un dispositivo BlackBerry puede utilizar distintas tecnologas de comunicaciones de radio como la tecnologa Wi-Fi, CDMA o GPRS para abrir una conexin inalmbrica. La conexin inalmbrica se transfiere a una red con cable y se conecta a una intranet o a Internet a travs de un proxy o gateway. Un dispositivo BlackBerry puede funcionar con distintos tipos de gateways y cada gateway proporciona un conjunto nico de caractersticas configurables. Puede especificar el tipo de conexin inalmbrica y el gateway a utilizar. Los dispositivos BlackBerry que ejecutan BlackBerry Device Software 5.0 o posterior incluyen una API de red diseada para simplificar el proceso de apertura de conexiones de red y la comprobacin de la disponibilidad y rea de cobertura inalmbrica de los tipos de transporte. Puede abrir conexiones de red HTTP, HTTPS y de socket especificando una URL y una lista opcional de tipos de transporte preferidos. Si especifica una lista de tipos de transporte, la API de red comprueba la disponibilidad y el rea de cobertura inalmbrica de cada de tipo transporte, en el orden especificado e intenta abrir una conexin. Este proceso contina hasta que se abre una conexin de red o hasta alcanzar el final de la lista. Si no especifica un tipo transporte, se probarn todos los tipos de transporte disponibles. Gran parte de la funcionalidad de la API de red se ha implementado en las clases ConnectionFactory y TransportInfo. Puede utilizar los mtodos proporcionados en la clase TransportInfo para buscar tipos de transporte disponibles y las reas de cobertura inalmbrica asociadas. Puede utilizar la clase ConnectionFactory para solicitar una conexin de red. Todas las clases de la API de red se proporcionan en los paquetes net.rim.device.api.io.transport y net.rim.device.api.io.transport.options.

Utilizar BlackBerry Enterprise Server como gateway de intranet


Los clientes de empresa alojan BlackBerry Enterprise Server tras el firewall de la empresa con el fin de activar el acceso desde los dispositivos BlackBerry a la intranet de la empresa. El componente BlackBerry Mobile Data System de BlackBerry Enterprise Server incluye BlackBerry MDS Services, que proporciona un servicio de proxy HTTP y TCP/IP para permitir que las aplicaciones Java de terceros lo utilicen como gateway seguro para administrar conexiones HTTP y TCP/IP a la intranet. Si utiliza BlackBerry Enterprise Server como gateway de intranet, todo el trfico entre la aplicacin y BlackBerry Enterprise Server se cifra automticamente utilizando el cifrado AES o Triple DES. Puesto que BlackBerry Enterprise Server se encuentra tras el firewall de la empresa y ofrece un cifrado de datos inherente, las aplicaciones se pueden comunicar con servidores de la aplicacin y con servidores Web que se ubican en la intranet de la empresa. Si la aplicacin se conecta a Internet y no a la intranet de la empresa, podra utilizar el servidor BlackBerry Enterprise Server que pertenece al cliente como gateway. En este caso, las solicitudes de red viajan tras el firewall de la empresa hacia BlackBerry Enterprise Server, que realiza la solicitud de red a Internet a travs del firewall de la empresa. No obstante, los clientes de red pueden establecer una poltica de TI para imponer que BlackBerry Enterprise Server sea el gateway para todo el trfico de red inalmbrica, incluido el trfico destinado a Internet.

21

Gua de desarrollo

Conexiones

Si la aplicacin se conecta a Internet, y su objetivo son clientes no pertenecientes a una empresa, podr utilizar BlackBerry Internet Service o el gateway de Internet del proveedor del servidor inalmbrico para administrar las conexiones.

Utilizar el gateway de Internet del proveedor de servicios inalmbricos


Las aplicaciones Java para dispositivos BlackBerry se pueden conectar a Internet utilizando el gateway de Internet que proporciona el proveedor de servicios inalmbricos. Muchos proveedores de servicios inalmbricos facilitan sus propios gateways a Internet que ofrecen conectividad TCP/IP directa a Internet. Algunos operadores tambin proporcionan un gateway WAP que permite que las conexiones HTTP se produzcan mediante el protocolo WAP. Las aplicaciones Java para dispositivos BlackBerry pueden utilizar cualquiera de estos gateways para establecer conexiones a Internet. Si la aplicacin es para usuarios de dispositivos BlackBerry que se encuentran en una red inalmbrica especfica, es muy probable que esta solucin d buenos resultados. No obstante, si la aplicacin es para usuarios de dispositivos BlackBerry en varias redes inalmbricas, probar la aplicacin en los distintos gateways de Internet y lograr una experiencia constante y segura puede suponer un reto. En estos casos, puede que le sea til el uso de BlackBerry Internet Service y del gateway de Internet del proveedor de servicios inalmbricos como tipo de conexin predeterminada si BlackBerry Internet Service no est disponible.

Recuperar el nombre de la red inalmbrica


1. Importe las siguientes clases: net.rim.device.api.system.RadioInfo java.lang.String net.rim.device.api.ui.Field Invoque RadioInfo.getCurrentNetworkName(). El dispositivo BlackBerry debe estar conectado a una red inalmbrica para que este mtodo funcione.
String networkName = RadioInfo.getCurrentNetworkName(); System.out.println (Network Name: + networkName );

2.

Conexiones
Utilizar la autenticacin HTTP
1. Importe las siguientes clases: net.rim.device.api.system.CoverageInfo javax.microedition.io.Connector net.rim.device.api.ui.UiApplication net.rim.device.api.ui.component.Dialog java.lang.String

22

Gua de desarrollo

Conexiones

2.

Importe las siguientes interfaces: javax.microedition.io.HttpConnection net.rim.device.api.system.CoverageStatusListener javax.microedition.io.StreamConnection Utilice la clase CoverageInfo y la interfaz CoverageStatusListener del paquete net.rim.device.api.system para comprobar que el dispositivo BlackBerry se encuentra en el rea de cobertura de red inalmbrica. Invoque Connector.open() mediante la ubicacin HTTP del recurso protegido. Asigne y almacene el objeto devuelto como un valor StreamConnection.
StreamConnection s = (StreamConnection)Connector.open("http://mysite.com/ myProtectedFile.txt");

3.

4. 5.

6. 7. 8.

Asigne y almacene el objeto StreamConnection como un objeto HTTPConnection.


HttpConnection httpConn = (HttpConnection)s;

Invoque HttpConnection.getResponseCode().
int status = httpConn.getResponseCode();

Cree cdigo para administrar un intento de conexin HTTP no autorizado.


int status = httpConn.getResponseCode(); switch (status) case (HttpConnection.HTTP_UNAUTHORIZED);

9.

Cree un valor run()method y dentro de l implemente un objeto dialog para solicitar al usuario del dispositivo BlackBerry la informacin de inicio de sesin.
UiApplication.getUiApplication().invokeAndWait(new Runnable()) { public void run() { dialogResponse = Dialog.ask; (Dialog.D_YES_NO,"Unauthorized Access:\n Do you wish to log in?"); } }

10. Para procesar la informacin de inicio de sesin, cree cdigo para administrar una respuesta de cuadro de dilogo S. a. Recupere la informacin de inicio de sesin y cierre la conexin actual.
if (dialogResponse == Dialog.YES) {String login = "username:password"; //Close the connection. s.close();

b.

Codifique la informacin de inicio de sesin.

23

Gua de desarrollo

Conexiones

byte[] encoded = Base64OutputStream.encode(login.getBytes(), 0, login.length(), false, false);

11.

Invoque HTTPConnection.setRequestProperty() utilizando la informacin de inicio de sesin codificada para acceder al recurso protegido.
s = (StreamConnection)Connector.open("http://mysite.com/myProtectedFile.txt "); httpConn = (HttpConnection)s; httpConn.setRequestProperty("Authorization", "Basic " + new String(encoded));

Utilizar una conexin HTTPS


Si el dispositivo BlackBerry est asociado a un servidor BlackBerry Enterprise Server y utiliza un servidor proxy HTTPS que requiere autenticacin, no podr utilizar una conexin TLS integral. 1. Importe las siguientes clases: net.rim.device.api.system.CoverageInfo javax.microedition.io.Connector Importe las siguientes interfaces: net.rim.device.api.system.CoverageStatusListener javax.microedition.io.HttpsConnection Utilice la clase CoverageInfo y la interfaz CoverageStatusListener del paquete net.rim.device.api.system para asegurarse de que el dispositivo BlackBerry se encuentra en el rea de cobertura de red inalmbrica. Invoque Connector.open(), especificando HTTPS como el protocolo y asigne el objeto devuelto como un objeto HttpsConnection para abrir una conexin HTTP.
HttpsConnection stream = (HttpsConnection)Connector.open("https://host:443/");

2.

3.

4.

5.

Para especificar el modo de la conexin, agregue uno de los parmetros siguientes a la cadena de conexin que pasa a
Connector.open()

Especifique que debe utilizarse una conexin HTTPS integral desde el dispositivo BlackBerry al servidor de destino: EndToEndRequired. Especifique que debera utilizarse una conexin HTTPS integral desde el dispositivo BlackBerry al servidor de destino. Si el dispositivo BlackBerry no es compatible con una conexin TLS integral y el usuario del dispositivo BlackBerry permite conexiones proxy TLS, se utilizar una conexin proxy: EndToEndDesired.
HttpsConnection stream = (HttpsConnection)Connector.open("https://host: 443/;EndToEndDesired");

24

Gua de desarrollo

Conexiones

Utilizar una conexin de socket


Aunque es posible implementar HTTP a travs de una conexin de socket, debe utilizar una conexin HTTP por las razones siguientes: Las conexiones de socket no son compatibles con caractersticas de BlackBerry Mobile Data System, como push. Las aplicaciones del dispositivo BlackBerry que utilizan conexiones de socket requieren normalmente y de forma significativa ms ancho de banda que las aplicaciones del dispositivo BlackBerry que utiliza conexiones HTTP. 1. Importe las siguientes clases: net.rim.device.api.system.CoverageInfo javax.microedition.io.Connector java.lang.String java.io.OutputStreamWriter java.io.InputStreamReader Importe las siguientes interfaces: net.rim.device.api.system.CoverageStatusListener javax.microedition.io.StreamConnection Utilice la clase CoverageInfo y la interfaz CoverageStatusListener del paquete net.rim.device.api.system para asegurarse de que el dispositivo BlackBerry se encuentra en el rea de cobertura de red inalmbrica. Invoque Connector.open(), especificando socket como protocolo y agregando deviceside=false como parmetro al final de la URL. Para abrir una conexin de socket a travs de BlackBerry MDS Services, agregue deviceside=false al final de la URL. Las aplicaciones del dispositivo BlackBerry deben introducir explcitamente la IP local del equipo, ya que localhost no es compatible.
private static String URL = "socket://local_machine_IP:4444;deviceside=false"; StreamConnection conn = null; conn = (StreamConnection)Connector.open(URL);

2.

3.

4.

Para abrir una conexin de socket sobre TCP directo, agregue el parmetro deviceside=true al final de la URL.
private static String URL = "socket://local_machine_IP:4444;deviceside=true"; StreamConnection conn = null; conn = (StreamConnection)Connector.open(URL);

Para abrir una conexin de socket a travs de TCP directo, especificando la informacin de APN, agregue deviceside=true como parmetro al final de la URL y especifique el APN a travs del cual se realizar la conexin. Especifique el nombre de usuario para conectarse al APN, as como la contrasea si lo solicita el APN.

private static String URL = "socket: //local_machine_IP:4444;deviceside=true;apn=internet.com;tunnelauthusername =user165;tunnelauthpassword=user165password"; StreamConnection conn = null; conn = (StreamConnection)Connector.open(URL);

25

Gua de desarrollo

Conexiones

5.

Utilice openInputStream() y openOutputStream() para enviar y recibir datos.


OutputStreamWriter _out = new OutputStreamWriter(conn.openOutputStream()); String data = "This is a test"; int length = data.length(); _out.write(data, 0, length); InputStreamReader _in = new InputStreamReader(conn.openInputStream()); char[] input = new char[length]; for ( int i = 0; i < length; ++i ) { input[i] = (char)_in.read(); };

6.

Invoque close() en los flujos de entrada y salida y la conexin de socket. Cada uno de los mtodos close() emite un valor IOException. Asegrese de que la aplicacin del dispositivo BlackBerry implementa la gestin de excepciones.
_in.close(); _out.close(); conn.close();

Utilizar una conexin de datagramas


Los datagramas son paquetes independientes de datos que las aplicaciones envan a travs de las redes. Un objeto Datagram envuelve la matriz de bytes que es la carga del datagrama. Utilice una conexin de datagramas para enviar y recibir datagramas. Para utilizar una conexin de datagramas debe disponer de su propia infraestructura para conectarse a la red inalmbrica, incluido un APN para redes GPRS. El uso de conexiones UDP requiere una colaboracin estrecha con los proveedores de servicios. Compruebe que su proveedor de servicios admite conexiones UDP. 1. Importe las siguientes clases e interfaces: net.rim.device.api.system.CoverageInfo javax.microedition.io.Connector java.lang.String Importe las siguientes interfaces: net.rim.device.api.system.CoverageStatusListener javax.microedition.io.DatagramConnection javax.microedition.io.Datagram Utilice la clase CoverageInfo y la interfaz CoverageStatusListener del paquete net.rim.device.api.system para asegurarse de que el dispositivo BlackBerry se encuentra en el rea de cobertura de red inalmbrica. Invoque Connector.open(), especificando UDP como el protocolo y asigne el objeto devuelto como un objeto DatagramConnection para abrir una conexin de datagramas.
(DatagramConnection)Connector.open("udp://host:dest_port[;src_port]/apn");

2.

3.

4.

26

Gua de desarrollo

Conexiones

donde: 5. 6. host es la direccin de host en formato decimal ASCII con puntos. dest-port es el puerto de destino en la direccin de host (opcional para recibir mensajes). src-port es el puerto de origen local (opcional). apn es el APN de red en formato de cadena.

7. 8.

Para recibir datagramas de todos los puertos en el host especificado, omita el puerto de destino en la cadena de conexin. Para abrir una conexin de datagramas en una red que no sea GPRS, especifique el nmero de puerto de origen, incluyendo la barra oblicua final, la direccin para una conexin de red CDMA sera udp://121.0.0.0:2332;6343/. Puede enviar y recibir datagramas en el mismo puerto. Para crear un datagrama, invoque DatagramConnection.newDatagram().
Datagram outDatagram = conn.newDatagram(buf, buf.length);

Para agregar los datos a un diagrama, invoque Datagram.setData().


byte[] buf = new byte[256]; outDatagram.setData(buf, buf.length);

9.

Para enviar datos en la conexin de datagramas, invoque send() en la conexin de datagramas.


conn.send(outDatagram);

Si las aplicaciones BlackBerryJava Applications intentan enviar un datagrama en una conexin de datagramas y el destinatario no escucha en el puerto de origen especificado, se emite un valor IOException. Asegrese de que la aplicacin BlackBerry Java Application implementa la gestin de excepciones. 10. Para recibir datos en la conexin de datagramas, invoque receive() en la conexin de datagramas. El mtodo receive () bloquea otras operaciones hasta que recibe un paquete de datos. Utilice un temporizador para retransmitir la solicitud o cerrar la conexin si no llega una respuesta.
byte[] buf = new byte[256]; Datagram inDatagram = conn.newDatagram(buf, buf.length); conn.receive(inDatagram);

11.

Para extraer los datos de un datagrama, invoque getData(). Si conoce el tipo de los datos que est recibiendo, convierta los datos al formato adecuado.
String received = new String(inDatagram.getData());

12. Cierre la conexin de datagramas, invoque close() en los flujos de entrada y de salida y en el objeto de conexin de datagramas.
conn.close();

27

Gua de desarrollo

Conexiones

Utilizar una conexin de puerto USB o de puerto serie


A travs de una conexin USB o de serie, las aplicaciones del dispositivo BlackBerry pueden comunicarse con aplicaciones de escritorio cuando se conectan a un ordenador mediante un puerto USB o puerto serie. Este tipo de conexin tambin permite a las aplicaciones del dispositivo BlackBerry comunicarse con un dispositivo perifrico que se conecta al puerto USB o al puerto de serie. 1. Importe las siguientes clases: javax.microedition.io.Connector java.io.DataOutputStream java.lang.String java.io.DataInputStream Importe la interfaz javax.microedition.io.StreamConnection. Invoque Connector.open() y especifique comm como protocolo y COM1 o USB como puerto para abrir una conexin de puerto USB o de puerto serie.
private StreamConnection _conn = (StreamConnection)Connector.open( "comm:COM1;baudrate=9600;bitsperchar=8;parity=none;stopbits=1");

2. 3.

4.

Para enviar datos en la conexin de puerto USB o de puerto serie, invoque openDataOutputStream() u openOutputStream().
DataOutputStream _dout = _conn.openDataOutputStream();

5.

Utilice mtodos de escritura en el flujo de salida para introducir los datos.


private String data = "This is a test"; _dout.writeChars(data);

6.

Para recibir datos en la conexin de puerto USB o de puerto serie, utilice un subproceso de eventos distinto al principal para leer los datos del flujo de entrada. Invoque openInputStream() u openDataInputStream().
DataInputStream _din = _conn.openInputStream(); Use the read methods on the input stream to read data.

7. 8.

Utilice mtodos de lectura en el flujo de entrada para leer los datos.


String contents = _din.readUTF();

Para cerrar la conexin de puerto USB o de puerto serie, invoque close() en los flujos de entrada y de salida y en el objeto de conexin del puerto. El mtodo close() puede emitir IOExceptions. Asegrese de que la aplicacin del dispositivo BlackBerry implementa la gestin de excepciones.
_din.close(); _dout.close(); conn.close();

28

Gua de desarrollo

Conexiones

Utilizar una conexin de puerto serie es una marca comercial de Bluetooth SIG.
Puede utilizar la API de es una marca comercial de Bluetooth SIG. (net.rim.device.api.bluetooth) para permitir a la aplicacin del dispositivo BlackBerry acceder al perfil de puerto serie es una marca comercial de Bluetooth SIG. e iniciar una conexin de puerto serie es una marca comercial de Bluetooth SIG. de servidor o cliente con un ordenador u otro dispositivo con es una marca comercial de Bluetooth SIG.. 1. Importe las siguientes clases: javax.microedition.io.Connector net.rim.device.api.bluetooth.BluetoothSerialPort java.io.DataOutputStream java.io.DataInputStream java.lang.String java.io.IOException Importe la interfaz javax.microedition.io.StreamConnection. Invoque Connector.open(), proporcionando la informacin del puerto serie que BluetoothSerialPort.getSerialPortInfo() devuelve como parmetro para abrir una conexin es una marca comercial de Bluetooth SIG..
BluetoothSerialPortInfo[] info = BluetoothSerialPort.getSerialPortInfo(); StreamConnection _bluetoothConnection = (StreamConnection)Connector.open( info [0].toString(), Connector.READ_WRITE );

2. 3.

4.

Para enviar datos en la conexin es una marca comercial de Bluetooth SIG., invoque openDataOutputStream() u openOutputStream().
DataOutputStream _dout = _bluetoothConnection.openDataOutputStream();

5.

Utilice mtodos de escritura en el flujo de salida para introducir los datos.


private static final int JUST_OPEN = 4; _dout.writeInt(JUST_OPEN);

6.

Para recibir los datos en la conexin es una marca comercial de Bluetooth SIG., en un subproceso de eventos distinto al principal, invoque openInputStream() u openDataInputStream(). Utilice mtodos de lectura en el flujo de entrada para leer los datos.
DataInputStream _din = _bluetoothConnection.openDataInputStream(); String contents = _din.readUTF();

7.

Invoque close() en los flujos de entrada y salida, as como en el objeto de conexin del puerto serie es una marca comercial de Bluetooth SIG. para cerrar la conexin es una marca comercial de Bluetooth SIG.. El mtodo close() puede emitir IOExceptions. Asegrese de que la aplicacin del dispositivo BlackBerry implementa la gestin de excepciones.

29

Gua de desarrollo

Conexiones Wi-Fi

if (_bluetoothConnection != null) { try { _bluetoothConnection.close(); } catch(IOException ioe) { } } if (_din != null) { try { _din.close(); } catch(IOException ioe) { } } if (_dout != null) { try { _dout.close(); } catch(IOException ioe) { } } _bluetoothConnection = null; _din = null; _dout = null;

Conexiones Wi-Fi
Familias de acceso inalmbrico
El funcionamiento con el transmisor del dispositivo BlackBerry implica el uso de API que hacen referencia a las familias de acceso inalmbrico. Familia de acceso inalmbrico 3GPP CDMA WLAN Descripcin incluye GPRS, EDGE, UMTS, GERAN, UTRAN y GAN incluye CDMA1x y EVDO incluye 802.11, 802.11a, 802.11b y 802.11g

Para obtener ms informacin acerca de las familias de acceso inalmbrico, consulte la referencia de API para BlackBerry Java Development Environment.

Recuperar las familias de acceso inalmbrico con las que es compatible un dispositivo BlackBerry
1. Importe la clase net.rim.device.api.system.RadioInfo.

30

Gua de desarrollo

Conexiones Wi-Fi

2.

Invoque RadioInfo.getSupportedWAFs().

Determinar si un dispositivo BlackBerry es compatible con las distintas familias de acceso inalmbrico
1. 2. Importe la clase net.rim.device.api.system.RadioInfo. Invoque RadioInfo.areWAFsSupported(int wafs).

Determinar los transmisores de la familia de acceso inalmbrico que estn activados


1. 2. Importe la clase net.rim.device.api.system.RadioInfo. Invoque RadioInfo.getActiveWAFs().

Activar el transmisor para una familia de acceso inalmbrico


1. 2. Importe la clase net.rim.device.api.system.Radio. Invoque Radio.activateWAFs(int WAFs). El parmetro WAFs es una mscara de bits.

Desactivar el transmisor para una familia de acceso inalmbrico


1. 2. Importe la clase net.rim.device.api.system.Radio. Invoque Radio.deactivateWAFs(int WAFs). El parmetro WAFs es una mscara de bits.

Comprobar si el transmisor Wi-Fi est activado


1. 2. Importe la clase net.rim.device.api.system.RadioInfo. Cree una declaracin IF que compruebe el valor de RadioInfo.WAF_WLAN y el valor devuelto por RadioInfo.getActiveWAFs().
if ( ( RadioInfo.getActiveWAFs() & RadioInfo.WAF_WLAN ) != 0 ) { }

Comprobar si el transmisor Wi-Fi est conectado a un punto de acceso inalmbrico


1. 2. Importe la clase net.rim.device.api.system.WLANInfo. Cree una declaracin IF que compruebe el valor de WLANInfo.WLAN_STATE_CONNECTED y el valor devuelto por WLANInfo.getWLANState(). El mtodo WLANInfo.getWLANState() comprueba si el dispositivo BlackBerry tiene una direccin IP y si puede transferir datos a travs de una red Wi-Fi. Si el transmisor para la familia de acceso inalmbrico de WLAN est desactivado, este mtodo devuelve WLANInfo.WLAN_STATE_DISCONNECTED.
if (WLANInfo.getWLANState() == WLANInfo.WLAN_STATE_CONNECTED) {}

31

Gua de desarrollo

Conexiones Wi-Fi

Recuperar el estado del punto de acceso inalmbrico o el perfil Wi-Fi activo


Puede permitir al dispositivo BlackBerry recuperar la informacin de estado, como la velocidad de transferencia de datos de la conexin, la red LAN inalmbrica estndar utilizada (802.11a, 802.11b o 802.11g), el SSID del punto de acceso asociado o el nombre del perfil Wi-Fi en uso. El transmisor de la familia de acceso inalmbrico de WLAN debe estar conectado a un punto de acceso inalmbrico. 1. 2. Importe la clase net.rim.device.api.system.WLANInfo. Invoque WLANInfo.getAPInfo(), almacenando una referencia al objeto WLANInfo.WLANAPInfo que devuelva este mtodo. El objeto WLANInfo.WLANAPInfo contiene una instantnea de la red inalmbrica actual.
WLANInfo.WLANAPInfo info = WLANInfo.getAPInfo();

Si el dispositivo BlackBerry no se conecta a un punto del acceso, el mtodo WLANInfo.getAPInfo() devuelve un valor null.

Recuperar el nombre de la red inalmbrica


1. Importe las siguientes clases: net.rim.device.api.system.RadioInfo java.lang.String net.rim.device.api.ui.Field Invoque RadioInfo.getCurrentNetworkName(). El dispositivo BlackBerry debe estar conectado a una red inalmbrica para que este mtodo funcione.
String networkName = RadioInfo.getCurrentNetworkName(); System.out.println (Network Name: + networkName );

2.

Abrir una conexin de socket Wi-Fi


El parmetro interface=wifi se aplica nicamente a las conexiones TCP/UDP. Para establecer una conexin Wi-Fi y utilizar una API de Wi-Fi en una aplicacin del dispositivo BlackBerry, el proveedor de servicios inalmbricos debe proporcionar compatibilidad con el acceso Wi-Fi. 1. Importe las siguientes clases: java.lang.String javax.microedition.io.Connector Importe la interfaz javax.microedition.io.StreamConnection. Invoque Connector.open(), especifique socket como protocolo y agregue el parmetro deviceside=true y el parmetro interface=wifi al final del valor de la cadena de la URL.

2. 3.

32

Gua de desarrollo

private static String URL = "socket://local_machine_IP: 4444;deviceside=true;interface=wifi"; StreamConnection conn = null; conn = (StreamConnection)Connector.open(URL);

Abrir una conexin HTTP Wi-Fi


El parmetro interface=wifi se aplica nicamente a las conexiones TCP/UDP. Para establecer una conexin Wi-Fi y utilizar una API de Wi-Fi en una aplicacin del dispositivo BlackBerry, el proveedor de servicios inalmbricos debe proporcionar compatibilidad con el acceso Wi-Fi. 1. Importe las siguientes clases: java.lang.String javax.microedition.io.Connector Importe la interfaz javax.microedition.io.HttpConnection. Invoque Connector.open(), especifique http como protocolo y agregue el parmetro interface=wifi al final del valor de la cadena de la URL. Asigne el objeto devuelto como un objeto HttpConnection o un objeto StreamConnection.
HttpConnection conn = null; String URL = "http://www.myServer.com/myContent;deviceside=true;interface=wifi"; conn = (HttpConnection)Connector.open(URL);

2. 3. 4.

Abrir una conexin HTTPS Wi-Fi


El parmetro interface=wifi se aplica nicamente a las conexiones TCP/UDP. Para establecer una conexin Wi-Fi y utilizar una API de Wi-Fi en una aplicacin del dispositivo BlackBerry, el proveedor de servicios inalmbricos debe proporcionar compatibilidad con el acceso Wi-Fi. 1. Importe las siguientes clases: java.lang.String javax.microedition.io.Connector Importe la interfaz javax.microedition.io.HttpsConnection. Invoque Connector.open(), especifique https como protocolo y agregue el parmetro interface=wifi al final del valor de la cadena de la URL. Asigne el objeto devuelto como un objeto HttpsConnection.
HttpsConnection conn = null; String URL = "https://host:443/;deviceside=true;interface=wifi"; conn = (HttpsConnection)Connector.open(URL);

2. 3. 4.

33

Gua de desarrollo

API de red mejorada

API de red mejorada


Puede especificar el modo en que la aplicacin abre una conexin a una red inalmbrica mediante la API de red mejorada que se incluye en los paquetes net.rim.device.api.io.transport y net.rim.device.api.io.transport.options. La API de red simplifica el modo en que la aplicacin establece una conexin a una red inalmbrica y le permite encontrar los tipos de transporte inalmbrico disponibles en el dispositivo BlackBerry. Por ejemplo, puede utilizar la API de red para conocer la disponibilidad y la potencia de seal de una red Wi-Fi que la aplicacin puede utilizar para abrir una conexin HTTP. Puede utilizar la API de red para especificar una lista de tipos de transporte inalmbrico preferidos. Por ejemplo, si una red WiFi no est disponible o no tiene suficiente potencia de seal, puede hacer que la aplicacin busque otros tipos de transporte, como una red mvil. Si no especifica un tipo de transporte, el dispositivo BlackBerry buscar de forma predeterminada todos los tipos de transporte disponibles. Para obtener ms informacin sobre la API de red, consulte la Gua de desarrollo de BlackBerry Java Application y la documentacin sobre API para BlackBerry Java Development Environment.

Ejemplo de cdigo: mostrar los tipos de transporte disponibles


/* * DisplayAvailableTransportTypesScreen.java * * Research In Motion Limited proprietary and confidential * Copyright Research In Motion Limited, 2009 */ import net.rim.device.api.ui.*; import net.rim.device.api.ui.component.*; import net.rim.device.api.ui.container.*; import net.rim.device.api.io.transport.*; import java.lang.StringBuffer; public class DisplayAvailableTransportTypes extends UiApplication { public static RichTextField _message = new RichTextField(""); public static void main(String[] args) { DisplayAvailableTransportTypes theApp = new DisplayAvailableTransportTypes(); theApp.enterEventDispatcher(); } public DisplayAvailableTransportTypes() { pushScreen(new DisplayAvailableTransportTypesScreen()); } } class DisplayAvailableTransportTypesScreen extends MainScreen {

34

Gua de desarrollo

API de red mejorada

private RichTextField strMessage = new RichTextField(""); public DisplayAvailableTransportTypesScreen() { LabelField title = new LabelField("Transport Types Sample", LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH); setTitle(title); add(new RichTextField("Detected the following transport types:\n")); int TransportTypes[] = TransportInfo.getAvailableTransportTypes(); StringBuffer sbTmp = new StringBuffer(""); for(int i=0; i<TransportTypes.length; i++) { int tt = TransportTypes[i]; switch(tt) { case TransportInfo.TRANSPORT_BIS_B: sbTmp.append(" BIS-B\n"); break; case TransportInfo.TRANSPORT_MDS: sbTmp.append("* MDS\n"); break; case TransportInfo.TRANSPORT_TCP_CELLULAR: sbTmp.append("* TCP Cellular\n"); break; case TransportInfo.TRANSPORT_TCP_WIFI: sbTmp.append("* Wifi\n"); break; case TransportInfo.TRANSPORT_WAP: sbTmp.append("* WAP 1.0 or 1.1\n"); break; case TransportInfo.TRANSPORT_WAP2: sbTmp.append("* WAP 2.0\n"); break; } } strMessage.setText(sbTmp.toString()); add(strMessage); } }

Ejemplo de cdigo: crear una conexin a travs de HTTP utilizando el primer protocolo de transporte disponible
/* * HTTPFirstAvailable.java * * Research In Motion Limited proprietary and confidential * Copyright Research In Motion Limited, 2010 */

35

Gua de desarrollo

API de red mejorada

import net.rim.device.api.ui.*; import net.rim.device.api.ui.component.*; import net.rim.device.api.ui.container.*; import net.rim.device.api.io.transport.*; import javax.microedition.io.*; import java.io.*; public class HTTPFirstAvailable extends UiApplication { public static void main(String[] args) { HTTPFirstAvailable theApp = new HTTPFirstAvailable(); theApp.enterEventDispatcher(); } public HTTPFirstAvailable() { pushScreen(new HTTPFirstAvailableScreen()); } } class ConnectionThread extends Thread { public void run() { ConnectionFactory connFact = new ConnectionFactory(); ConnectionDescriptor connDesc; connDesc = connFact.getConnection("http://www.example.com"); if (connDesc != null) { HttpConnection httpConn; httpConn = (HttpConnection)connDesc.getConnection(); try { final int iResponseCode = httpConn.getResponseCode(); UiApplication.getUiApplication().invokeLater(new Runnable() { public void run() { Dialog.alert("Response code: " + Integer.toString(iResponseCode)); } }); } catch (IOException e) { System.err.println("Caught IOException: " + e.getMessage()); } } } } class HTTPFirstAvailableScreen extends MainScreen { public HTTPFirstAvailableScreen()

36

Gua de desarrollo

API de red mejorada

setTitle("HTTP First Sample"); add(new RichTextField("Trying to make HTTP connection... \n")); ConnectionThread ct = new ConnectionThread(); ct.start();

37

Gua de desarrollo

Controlar el acceso a las API y a los datos de la aplicacin

Controlar el acceso a las API y a los datos de la aplicacin


Comprobar si es necesaria una firma de cdigo

Research In Motion efecta el seguimiento del uso de las API confidenciales en BlackBerry Java Development Environment con el fin de controlar la seguridad y la exportacin. Ubique el elemento en la referencia API para BlackBerry Java Development Environment. Si el elemento tiene un icono Bloquear o est marcado como"firmado", la aplicacin del dispositivo BlackBerry requerir una clave firmada o firma, que proporciona RIM, antes de poder cargar los archivos .cod de la aplicacin del dispositivo BlackBerry en un dispositivo BlackBerry.

API de BlackBerry con acceso controlado


RIM controla las API de tiempo de ejecucin, las API de aplicaciones BlackBerry y las API de cifrado de BlackBerry. Puede probar las aplicaciones del dispositivo BlackBerry que utilizan API controladas en BlackBerry Smartphone Simulator sin firmas de cdigo; sin embargo, debe obtener firmas de cdigo de RIM antes de poder cargar las aplicaciones del dispositivo BlackBerry en dispositivos BlackBerry. Si utiliza cualquiera de los siguientes paquetes de API de BlackBerry, su aplicacin del dispositivo BlackBerry necesitar firmas de cdigo antes de poder cargarla en un dispositivo BlackBerry:
net.rim.blackberry.api.browser net.rim.blackberry.api.invoke net.rim.blackberry.api.mail net.rim.blackberry.api.mail.event net.rim.blackberry.api.menuitem net.rim.blackberry.api.options net.rim.blackberry.api.pdap net.rim.blackberry.api.phone net.rim.blackberry.api.phone.phonelogs net.rim.device.api.browser.field net.rim.device.api.browser.plugin net.rim.device.api.crypto net.rim.device.api.io.http net.rim.device.api.notification net.rim.device.api.servicebook net.rim.device.api.synchronization

38

Gua de desarrollo

Registrarse para utilizar API controladas

net.rim.device.api.system

Registrarse para utilizar API controladas


Rellene el formulario de registro en https://www.blackberry.com/SignedKeys/. Guarde el archivo .csi que Research In Motion le ha enviado en un mensaje de correo electrnico. El archivo .csi contiene una lista de firmas y su informacin de registro. Si el administrador de BlackBerry Signing Authority Tool no le proporciona el archivo .csi ni el PIN del cliente y usted es miembro del programa ISV, pngase en contacto con el Administrador tcnico de asociaciones del programa ISV. Si no es miembro del programa ISV, enve un mensaje de correo electrnico a la direccin jde@rim.com. 3. Haga doble clic en el archivo .csi. 4. Si aparece un cuadro de dilogo que indica que no se encuentra la clave privada, lleve a cabo los pasos del 5 al 8 antes de continuar. De lo contrario, continu con el paso 9. 5. Haga clic en S para crear un archivo de par de claves nuevo. 6. En el campo Contrasea de clave privada, escriba una contrasea de, por lo menos, ocho caracteres y escrbala de nuevo para confirmarla. La contrasea de la clave privada protege su clave privada. Si pierde esta contrasea, debe registrarse de nuevo con RIM. En el caso de que la contrasea fuera robada, pngase en contacto con RIM inmediatamente. 7. Haga clic en Aceptar. 8. Mueva el ratn para generar los datos de una clave privada nueva. 9. En el campo PIN de registro, escriba el PIN que RIM ha proporcionado. 10. En el campo Contrasea de clave privada, escriba la contrasea de clave privada. 11. Haga clic en Registrar. 12. Haga clic en Salir. 1. 2.

Restricciones de las firmas de cdigo


El administrador de BlackBerry Signing Authority Tool podra imponer restricciones al archivo .csi con el fin de limitar su acceso a las firmas de cdigo. Para solicitar la realizacin de cambios en estas restricciones, pngase en contacto con su administrador. Restriccin del archivo .csi nmero de solicitudes Descripcin Esta restriccin especifica el nmero mximo de solicitudes que puede realizar utilizando un archivo .csi en particular. Una vez alcance el nmero mximo de solicitudes, el archivo .csi pasa a ser no vlido. Para realizar nuevas solicitudes de firma de cdigo, debe solicitar un nuevo archivo .csi.

39

Gua de desarrollo

Solicitar una firma de cdigo

Restriccin del archivo .csi

Descripcin Aunque un administrador pueda permitir un nmero infinito de solicitudes, el nmero de solicitudes, a menudo, se especifica como nmero finito por motivos de seguridad. Esta restriccin especifica la fecha de vencimiento de cada archivo .csi. Despus de la fecha de vencimiento, no podr solicitar ms firmas de cdigo con este archivo .csi. Para realizar nuevas solicitudes de firma, debe solicitar un nuevo archivo .csi.

fecha de vencimiento

Solicitar una firma de cdigo


La herramienta BlackBerry Signature Tool se incluye en BlackBerry Java Development Environment. BlackBerry JDE est disponible para su descarga en www.blackberry.com/developers. La aplicacin Firmante Web se instala al realizar la instalacin de BlackBerry Signing Authority Tool. Para obtener ms informacin acerca de la aplicacin Firmante Web, consulte BlackBerry Signing Authority Tool versin 1.0 Gua del administrador basada en contraseas. Antes de comenzar: Debe obtener un archivo .csi de Research In Motion. 1. 2. En Windows Internet Explorer, busque el archivo .cod de la aplicacin del dispositivo BlackBerry para la cual ha solicitado una firma. Asegrese de que existe un archivo .csl con el mismo nombre que el que tiene el archivo .cod en la misma carpeta que la del archivo .cod. El compilador de BlackBerry Integrated Development Environment generar automticamente el archivo .csl. Haga doble clic en el archivo .cod para agregarlo a la lista de firmas. La lista de firmas contiene informacin acerca de los archivos .cod de los cuales desea obtener el permiso de acceso y para los cuales ha solicitado la firma. Repita los pasos del 1 al 3 para cada archivo .cod que desee agregar a la lista de firmas. En el men de BlackBerry Signature Tool, haga clic en Solicitar. En el cuadro de dilogo, escriba su contrasea de clave privada. Haga clic en Aceptar.

3. 4. 5. 6. 7.

BlackBerry Signature Tool utiliza la contrasea de clave privada para agregar la firma a la solicitud y enva la lista de firmas de los archivos .cod a la aplicacin Firmante Web para su comprobacin.

40

Gua de desarrollo

Registrar una clave de firma utilizando un servidor proxy

Registrar una clave de firma utilizando un servidor proxy


Puede registrar cada uno de los archivos .csi slo una vez. 1. 2. En el smbolo del sistema, desplcese al directorio bin de BlackBerry Signature Tool. Por ejemplo:
C:\Archivos de programa\Research In Motion\BlackBerry JDE 4.6.0\bin.

Escriba Java -jar -Dhttp.proxyHost=myproxy.com -Dhttp.proxyPort=80 SignatureTool.jar SigKey.csi con los siguientes parmetros: SigKey: el nombre de cada uno de los archivos de clave de firma (.csi). Utilice el siguiente convenio de nombres para las claves: client-RRT-*.csi, client-RBB-*.csi, client-RCR-*.csi. Dhttp.proxyHost: el nombre o direccin IP del servidor proxy. Dhttp.proxyPort: el nmero de puerto del servidor proxy si no especifica 80 como nmero de puerto predeterminado. Repita el paso 2 para cada archivo .csi que desee registrar.

3.

Firmar una aplicacin mediante un servidor proxy


Su clave de registro y el archivo .csk se almacenan en la misma ubicacin. Si pierde la clave de registro o e archivo .csk, no podr solicitar firmas de cdigo. Si no es miembro del programa ISV, pngase en contacto con el Administrador tcnico de asociaciones del programa ISV. Si es socio pero no del programa ISV, enve un mensaje de correo electrnico a la direccin jde@rim.com. 1. 2. 3. 4. En el smbolo del sistema, desplcese al directorio bin de BlackBerry Signature Tool. Por ejemplo:
C:\Archivos de programa\Research In Motion\BlackBerry JDE 4.6.0\bin.

Escriba Java -jar -Dhttp.proxyHost=myproxy.com -Dhttp.proxyPort=80 SignatureTool.jar. En la ventana Seleccin de archivos, seleccione el o los archivos .cod que va a firmar. Haga clic en Abrir.

Ver el estado de la firma de una aplicacin


Para los archivos que no estn firmados, la columna Estado muestra Error. El Firmante Web puede haber rechazado el archivo .cod porque la contrasea de clave privada se ha escrito de forma incorrecta. 1. 2. 3. Inicie BlackBerry Signature Tool. Seleccione un archivo .cod. Consulte la columna Estado. Para los archivos que el Firmante Web ha firmado, la columna Estado muestra Firmado.

41

Gua de desarrollo

Utilizar claves para proteger API y datos

Utilizar claves para proteger API y datos


Para crear un par de claves internas que utilizar con el sistema de autoridad de firma interno, o bien un par de claves externas con un sistema de de autoridad de firma externo, debe llevar a cabo un proceso de proteccin de las API confidenciales, as como proteger los datos del almacn de tiempo de ejecucin y proteger los datos de un objeto constante. La clave RSAE.key es una clave externa y ACMI.key es una clave interna.

Proteger API utilizando claves de firma de cdigo


1. 2. 3. 4. 5. Una vez ha recibido una clave interna, una clave externa o ambas claves, en BlackBerry Integrated Development Environment, abra el proyecto que contiene las API de las cuales desea controlar el acceso. En la ventana Espacio de trabajo, haga clic con el botn derecho en el archivo del proyecto. Haga clic en Agregar archivo a proyecto. En el campo Buscar en, desplcese a C:\Archivos de programa\Research In Motion\BlackBerry Password Based Code Signing Authority\data o a la ubicacin donde se ha guardado el archivo .key. Realice una de las siguientes tareas:
Opcin Descripcin a. b. c. d. Seleccione el archivo .key interno, por ejemplo, el archivo ACMI.key. Haga clic en Abrir. En la ventana Espacio de trabajo, haga doble clic en el archivo .key. Seleccione la opcin Utilizar como valor predeterminado para clases pblicas y la configuracin Utilizar como valor predeterminado para clases que no sean pblicas. Haga clic en Aceptar. En la ventana Espacio de trabajo, haga clic con el botn derecho en el archivo del proyecto. Haga clic en Agregar archivo a proyecto. En el campo Buscar en, desplcese a C:\Archivos de programa\Research In Motion\BlackBerry Password Based Code Signing Authority\data. Seleccione el archivo .key externo, por ejemplo, el archivo RSAE.key. Haga clic en Abrir.

Utilice una clave interna

e. f. g. h.

Utilice una clave externa

a. b.

42

Gua de desarrollo

Proteger datos del almacn de tiempo de ejecucin utilizando claves de firma de cdigo

c.

d. e.

En la ventana Proteccin de paquetes y clases, busque el nombre del paquete que contiene los elementos de las API confidenciales. Expanda el contenido del paquete. Seleccione cada elemento de la API que requiera control de acceso.

6. 7.

Haga clic en Aceptar. Vuelva a compilar el proyecto.

Proteger datos del almacn de tiempo de ejecucin utilizando claves de firma de cdigo
1. Importe las siguientes clases: java.util.Hashtable net.rim.device.api.system.RuntimeStore Cree un ID de hash para el objeto que desea almacenar en un objeto de tiempo de ejecucin.
long MY_DATA_ID = 0x33abf322367f9018L; Hashtable myHashtable = new Hashtable();

2.

3.

Almacene el objeto en el almacn de tiempo de ejecucin y proteja el objeto con el objeto CodeSigningKey. Slo las aplicaciones firmadas con la clave pueden leer o cambiar el objeto.
RuntimeStore.put( MY_DATA_ID, new ControlledAccess( myHashtable, key ) );

4.

Asegrese de que el objeto est protegido con una clave de firma de cdigo especfica, invoque RuntimeStore.get, proporcionando como parmetros el ID de hash del objeto y el objeto CodeSigningKey.

Proteger datos constantes utilizando claves de firma de cdigo


1. Importe las siguientes clases: java.util.Hashtable net.rim.device.api.system.PersistentObject Cree un ID de hash para el objeto que desea almacenar en un objeto constante.
long MY_DATA_ID = 0x33abf322367f9018L; Hashtable myHashtable = new Hashtable();

2.

3.

Almacene el objeto en el objeto constante y proteja el objeto con el objeto CodeSigningKey. Por ejemplo, una vez que una aplicacin del dispositivo BlackBerry ejecuta la siguiente lnea de cdigo, slo los archivos de cdigo firmados con el archivo RSAE.key pueden leer o sobrescribir el objeto en el objeto constante.

43

Gua de desarrollo

Proteger datos constantes utilizando claves de firma de cdigo

persistentObject.setContents( new ControlledAccess( myHashtable, key ) );

4.

Asegrese de que el objeto est protegido, invoque getContents utilizando el objeto CodeSigningKey como parmetro.
Hashtable myHashtable = (Hashtable) persistentObject.getContents( key );

44

Gua de desarrollo

Probar una aplicacin del dispositivo BlackBerry

Probar una aplicacin del dispositivo BlackBerry


Probar aplicaciones en BlackBerry Smartphone Simulator

Tras desarrollar y compilar su aplicacin, puede probarla en el dispositivo BlackBerry. El primer paso ms comn consiste en configurar BlackBerry Java Development Environment para que utilice BlackBerry Smartphone Simulator. BlackBerry Smartphone Simulator ejecuta el mismo cdigo Java que los dispositivos BlackBerry, de modo que BlackBerry Smartphone Simulator proporciona un entorno adecuado para probar cmo las aplicaciones funcionarn en un dispositivo BlackBerry. BlackBerry JDE incluye las versiones actuales de BlackBerry Smartphone Simulator. Para descargar las versiones adicionales de BlackBerry Smartphone Simulator, visite www.blackberry.com/developers/index.shtml.

Probar aplicaciones en un dispositivo BlackBerry


Tras probar su aplicacin en BlackBerry Smartphone Simulator, puede instalar la aplicacin en un dispositivo BlackBerry. Si su aplicacin utiliza API firmadas, puede que necesite claves de firma de cdigo. Tras instalar la aplicacin en el dispositivo BlackBerry, puede abrirla y probar su funcionalidad y rendimiento. Con el objeto de depurar, puede integrar su dispositivo en BlackBerry Integrated Development Environment y utilizar la herramienta de depuracin para avanzar a travs del cdigo de la aplicacin. BlackBerry IDE puede ser til si intenta identificar una red o problema de es una marca comercial de Bluetooth SIG., as como otros problemas que son difciles de simular.

Probar aplicaciones mediante archivos .cod compilados


Al crear un proyecto a travs de BlackBerry Integrated Development Environment, BlackBerry IDE compila los archivos originales con cdigo de bytes de Java, lleva a cabo una verificacin previa y crea un nico archivo .cod y un archivo .jad para la aplicacin del dispositivo BlackBerry. Si una aplicacin del dispositivo BlackBerry contiene ms de 64 KB de cdigo de bytes o de datos de recursos, BlackBerry IDE crea un archivo .cod que contiene archivos .cod "hermanos". Slo BlackBerry Browser es compatible con la instalacin inalmbrica de un archivo .cod que contiene archivos .cod "hermanos". Para determinar si un archivo .cod contiene archivos .cod "hermanos", extraiga el contenido del archivo .cod. Cualquiera de los archivos .cod dentro del archivo .cod original ser un archivo "hermano". Para identificar los mdulos que necesita una aplicacin del dispositivo BlackBerry, y que no se proporcionan con la misma, busque el atributo RIM-COD-Module-Dependencies del archivo descriptor de la aplicacin (.jad) Java.

45

Gua de desarrollo

Probar aplicaciones mediante archivos .cod compilados

Instalar y eliminar un archivo .cod para realizar pruebas


Para cargar, eliminar o guardar archivos .cod al probar una aplicacin del dispositivo BlackBerry, debe utilizar la herramienta JavaLoader, incluida en BlackBerry Java Development Environment. Para aplicaciones de produccin, utilice BlackBerry Desktop Software. Debe cargar las aplicaciones del dispositivo BlackBerry con dependencias en el orden correcto. Si el proyecto A depende del proyecto B, cargue el archivo .cod del proyecto B antes de cargar el archivo .cod del proyecto A.

Guardar un archivo .cod que se encuentra en un dispositivo en un ordenador


Para cargar, eliminar o guardar archivos .cod al probar una aplicacin del dispositivo BlackBerry, debe utilizar la herramienta JavaLoader, incluida en BlackBerry Java Development Environment. 1. 2. 3. Conecte el dispositivo BlackBerry a un ordenador. Abra un smbolo del sistema y desplcese a la ubicacin en la que se encuentra el archivo Javaloader.exe. Lleve a cabo una de las siguientes acciones: Tarea Guarde un archivo .cod de la aplicacin del dispositivo BlackBerry que se encuentre en el dispositivo BlackBerry en el ordenador. Guarde los archivos .cod de la aplicacin del dispositivo BlackBerry enumerados en el mismo archivo .jad desde el dispositivo BlackBerry al ordenador. Guarde los archivos .cod de la aplicacin del dispositivo BlackBerry almacenados en el mismo CodeModuleGroup desde el dispositivo BlackBerry al ordenador. Pasos Emita un comando siguiendo el siguiente formato: archivo javaloader save .cod Por ejemplo: javaloader.exe save MyApplication.cod Emita un comando siguiendo el siguiente formato: archivo javaloader save .jad Por ejemplo: javaloader.exe save MyApplication.jad

Emita un comando siguiendo el siguiente formato: javaloader save [-g] mdulo Por ejemplo: javaloader.exe save -g MyApplication

Recuperar informacin acerca de un archivo .cod


Para cargar, eliminar o guardar archivos .cod al probar una aplicacin del dispositivo BlackBerry, debe utilizar la herramienta JavaLoader, incluida en BlackBerry Java Development Environment. 1. Conecte el dispositivo BlackBerry al ordenador.

46

Gua de desarrollo

Probar aplicaciones mediante archivos .cod compilados

2. 3.

Abra un smbolo del sistema y desplcese a la ubicacin en la que se encuentra el archivo Javaloader.exe. Lleve a cabo una de las siguientes acciones: Tarea Recupere el nombre, la versin, el tamao y la fecha de creacin del archivo .cod. Recupere una lista de los archivos .cod que requiere el archivo .cod para ejecutarse. Recupere la informacin acerca de archivos .cod "hermanos" tamao de la seccin de cdigo tamao de la seccin de datos tamao de los datos inicializados nmero de definiciones de clase lista de firmas aplicada a un archivo .cod Pasos Emita un comando siguiendo el siguiente formato: archivo javaloader info .cod Por ejemplo: javaloader.exe info MyApplication.cod Emita un comando siguiendo el siguiente formato: archivo javaloader info [-d] .cod Por ejemplo: javaloader.exe info -d MyApplication.cod Emita un comando siguiendo el siguiente formato: archivo javaloader info [-v] .cod Por ejemplo: javaloader.exe info -v MyApplication.cod

47

Gua de desarrollo

Empaquetar y distribuir una aplicacin BlackBerry Java Application

Empaquetar y distribuir una aplicacin BlackBerry Java Application


Verificar previamente la aplicacin del dispositivo BlackBerry

Para reducir la cantidad de procesamiento que lleva a cabo el dispositivo BlackBerry al cargar la aplicacin del dispositivo BlackBerry, debe verificar parcialmente las clases. Tambin puede utilizar BlackBerry Smartphone Simulator para verificar previamente los archivos .cod. En el smbolo del sistema, escriba:
preverify.exe [-d] output -classpath directory input; directory

Distribucin de aplicaciones a travs de la red inalmbrica


Puede distribuir sus aplicaciones a travs de la red inalmbrica para ayudar a proporcionar una mejor experiencia a los usuarios de dispositivos BlackBerry y para simplificar la distribucin de aplicaciones a un grupo grande de personas, puesto que no requiere una aplicacin informtica. Un usuario del dispositivo BlackBerry puede instalar sus aplicaciones a travs de la red inalmbrica.

Extraccin inalmbrica (iniciada por el usuario)


Puede registrar aplicaciones compiladas en un sitio Web pblico o privado. Los usuarios de dispositivos BlackBerry pueden visitar el sitio Web para descargar aplicaciones a travs de la red inalmbrica mediante el explorador de sus dispositivos BlackBerry. El explorador solicita al usuario que instale la aplicacin y, a continuacin, la aplicacin se descarga a travs de la red inalmbrica y se instala en el dispositivo BlackBerry.

Push inalmbrico (iniciado por el servidor)


En el entorno BlackBerry Enterprise Server, el administrador puede insertar por push las aplicaciones y enviarlas a los usuarios de dispositivos BlackBerry a travs de la red inalmbrica para su instalacin obligatoria. El administrador crea una poltica nueva y especifica que el dispositivo BlackBerry requiere la aplicacin. La aplicacin se inserta por push y enva a los usuarios sin que sea necesaria ninguna interaccin por parte del usuario. Las empresas pueden considerar prctico este enfoque a la hora de enviar aplicaciones nuevas a un gran nmero de usuarios de dispositivos BlackBerry.

48

Gua de desarrollo

Distribuir aplicaciones BlackBerry Java Applications a travs de la red inalmbrica

Distribuir aplicaciones BlackBerry Java Applications a travs de la red inalmbrica


Extraer archivos .cod "hermanos"
Para asegurarse de que un usuario del dispositivo BlackBerry no omita el archivo .cod original, en el servidor de contenido, extraiga los archivos .cod en un directorio diferente del directorio donde reside el archivo original. 1. Descomprima el archivo .cod original y extraiga los archivos .cod "hermanos". 2. Coloque cada uno de los archivos .cod hermanos en un servidor de contenido. 3. En el archivo .jad, enumere los archivos .cod "hermanos" por separado. Utilice el siguiente convenio de nombres para los archivos .cod "hermanos": nombre del archivo original .cod - nmero de secuencia. 4. Cree un parmetro RIM-COD-URL-<#> para cada unos de los archivos .cod "hermanos" y coloque el nombre del archivo "hermano" a la derecha de este parmetro. # es un nmero que comienza con 1 y que incrementa en 1 por cada archivo "hermano". D a cada uno de los archivos .cod "hermanos" el mismo nombre que ha dado al archivo .cod original, seguido de -<#>. 5. Cree un parmetro RIM-COD-Size-<#> para cada unos de los archivos .cod "hermanos" y coloque el tamao del archivo "hermano" a la derecha de este parmetro. # es el mismo nmero que se ha agregado al nombre del archivo "hermano". Coloque el parmetro RIM-COD-Size-<#> inmediatamente debajo del parmetro RIM-COD=URL-<#>. Ejemplo: enumeracin de los archivos .cod "hermanos" en un archivo .jad El ejemplo siguiente contiene dos archivos "hermanos" denominados myApp-1.cod y myApp-2.cod, tras el archivo .cod original myAPP. El desarrollador agrega la extensin del archivo ".cod" a cada uno de los nombres del archivo "hermano". El desarrollador crea un parmetro RIM-COD-Size-<#> para cada archivo "hermano".
Manifest-Version: 1.0 MIDlet-Version: 1.0.0 MIDlet-1: ,, RIM-COD-Module-Dependencies: net_rim_cldc MicroEdition-Configuration: CLDC-1.0 RIM-COD-Module-Name: MyApp MIDlet-Name: My Application RIM-COD-URL: myApp.cod RIM-COD-Size: 55000 RIM-COD-URL-1: myApp-1.cod RIM-COD-Size-1: 50000 RIM-COD-URL-2: myApp-2.cod RIM-COD-Size-2: 25000 MicroEdition-Profile: MIDP-1.0

49

Gua de desarrollo

Distribuir aplicaciones BlackBerry Java Applications a travs de la red inalmbrica

Modificar la informacin de un conjunto de aplicaciones MIDlet


Puede utilizar la herramienta Updatejad, incluida en BlackBerry Java Development Environment, para procesar archivos .jad y llevar a cabo las siguientes acciones: Corregir los tamaos de los archivos .cod indicados en un archivo .jad. Los tamaos de los archivos .cod enumerados en el archivo .jad cambian una vez ha utilizado BlackBerry Signing Authority Tool para firmar los archivos .cod. Crear archivos .jad que hagan referencia a varios archivos .cod.

Utilice la herramienta Updatejad slo en archivos .jad creados utilizando BlackBerry Integrated Development Environment o la herramienta de lnea de comandos RAPC y firmados a travs de BlackBerry Signing Authority Tool . Los comandos de la herramienta Updatejad tienen el siguiente formato:
updatejad.exe -q -n input.jad [additional.jad]

Opcin -q

Descripcin Esta opcin suprime la creacin de mensajes de salida correcta para las operaciones de procesamiento de los archivos .jad. Si ocurriera un error durante el procesamiento del archivo .jad, se generar un cdigo de salida distinto de cero. Esta opcin suprime la copia de seguridad del archivo .jad original. Esta opcin especifica el archivo .jad a actualizar. Esta opcin especifica otros atributos a agregar al archivo de entrada .jad.

-n input.jad additional.jad

Para obtener ms informacin, consulte la Ayuda de BlackBerry Integrated Development Environment o la gua BlackBerry Signing Authority Tool versin 1.0 - Gua del administrador basada en contraseas.

Propiedades de los archivos .jad de aplicaciones del dispositivo BlackBerry


BlackBerry Integrated Development Environment le permite crear un archivo .jad de dos funciones para compatibilizar la descarga de aplicaciones MIDlet en dispositivos BlackBerry y otros dispositivos inalmbricos. Con este fin, debe crear un archivo .jad que contenga los atributos RIM-COD-URL y RIM-COD-Size, as como los atributos MIDlet-Jar-URL y MIDlet-Jar-Size. En dispositivos BlackBerry, descargue los archivos .cod; en otros dispositivos inalmbricos, descargue los archivos .jar. Atributo RIM obligatorio
RIM-COD-Creation-Time RIM-COD-Module-Dependencies

Descripcin hora de creacin del archivo .cod lista de mdulos que requiere el archivo .cod

50

Gua de desarrollo

Distribuir aplicaciones BlackBerry Java Applications a travs de la red inalmbrica

Atributo RIM obligatorio


RIM-COD-Module-Name RIM-COD-SHA1 RIM-COD-Size RIM-COD-URL

Descripcin nombre del mdulo que contiene el archivo .cod hash SHA1 del archivo .cod tamao (en bytes) del archivo .cod URL desde la que se puede cargar el archivo .cod

Atributo RIM opcional


RIM-Library-Flags RIM-MIDlet-Flags RIM-MIDlet-NameResourceBundle RIM-MIDlet-Position

Descripcin reservado para uso por parte de Research In Motion reservado para uso por parte de RIM nombre del paquete de recursos del que depende la aplicacin del dispositivo BlackBerry el punto de colocacin sugerido del icono de la aplicacin en el dispositivo BlackBerry podra no ser el punto de colocacin real del icono en la pantalla de inicio

Corregir los tamaos de los archivos .cod indicados en un archivo .jad.


1. 2. 3. 4. Debe utilizar BlackBerry Integrated Development Environment para poder crear dos archivos de aplicaciones del dispositivo BlackBerry, por ejemplo, test.cod y test.jad. Utilice BlackBerry Signing Authority Tool para firmar el archivo .cod. En un smbolo del sistema, desplcese a la ubicacin de la herramienta Updatejad. Escriba un comando para corregir los tamaos de los archivos .cod indicados en test.jad.
updatejad.exe test.jad

Crear archivos .jad que hagan referencia a varios archivos .cod.


1. 2. 3. 4. 5. 6. Debe utilizar BlackBerry Integrated Development Environment para poder crear dos archivos de aplicaciones del dispositivo BlackBerry, por ejemplo, lib.cod y lib.jad. Utilice BlackBerry Signing Authority Tool para firmar el archivo .cod. Utilice BlackBerry IDE para crear otros dos archivos de aplicaciones del dispositivo BlackBerry que utilicen el archivo .jad, por ejemplo, test.cod y test.jad. Utilice BlackBerry Signing Authority Tool para firmar el nuevo archivo .cod. En un smbolo del sistema, desplcese a la ubicacin de la herramienta Updatejad. Escriba un comando para agregar nombres del archivo .cod desde el primer archivo .jad al nuevo.

51

Gua de desarrollo

Distribuir aplicaciones del dispositivo BlackBerry con BlackBerry Desktop Software

updatejad.exe test.jad lib.jad

Distribuir aplicaciones del dispositivo BlackBerry con BlackBerry Desktop Software


Elementos de un archivo .alx en una aplicacin del dispositivo BlackBerry
Elemento
application

Atributos
id platformVersion blackBerryVersion

Descripcin El elemento application contiene los elementos de una nica aplicacin del dispositivo BlackBerry. El elemento application tambin puede contener elementos application adicionales anidados. Este proceso de anidado le permite solicitar que cuando se cargue una aplicacin del dispositivo BlackBerry en el dispositivo BlackBerry, sus mdulos de requisitos previos se carguen tambin en el dispositivo BlackBerry. El atributo id especifica un identificador nico para la aplicacin del dispositivo BlackBerry. Para proporcionar la capacidad de exclusividad, utilice un ID que incluya el dominio de la compaa en el orden inverso. Por ejemplo, com.rim.samples. docs.helloworld. El atributo platformVersion especifica la versin del software del sistema operativo de un dispositivo BlackBerry que requiere la aplicacin del dispositivo BlackBerry. El atributo blackBerryVersion especifica la versin de BlackBerry Device Software que requiere la aplicacin del dispositivo BlackBerry. El elemento copyright proporciona informacin de copyright, que aparece en la herramienta Cargador de aplicaciones de BlackBerry Desktop Manager.

copyright

52

Gua de desarrollo

Distribuir aplicaciones del dispositivo BlackBerry con BlackBerry Desktop Software

Elemento
description

Atributos

Descripcin El elemento description proporciona una breve descripcin de la aplicacin del dispositivo BlackBerry, que aparece en la herramienta Cargador de aplicaciones de BlackBerry Desktop Manager. El elemento directory proporciona la ubicacin de un conjunto de archivos. El elemento directory es opcional. Si no especifica un directorio, los archivos deben estar en la misma ubicacin que el archivo .alx. El elemento directory especifica el directorio relativo a la ubicacin del archivo .alx. Los elementos directory son acumulativos dentro de la aplicacin del dispositivo BlackBerry. Por ejemplo:
<application id="com.abc.my.app"> <directory>MyCodFiles</directory> <fileset Java="1.0"> <files> a.cod //resolves to <.alx location> \MyCodFiles b.cod </files> </fileset> <directory>MyCodFiles</directory> <fileset Java="1.0"> <files> c.cod //resolves to <.alx location> \MyCodFiles\MyCodFiles d.cod </files> </fileset> </application>

directory

platformVersion blackBerryVersion

El atributo platformVersion especifica la versin del software del sistema operativo de un dispositivo BlackBerry que requiere la aplicacin del dispositivo BlackBerry. El atributo blackBerryVersion especifica la versin de BlackBerry Device Software que requiere la aplicacin del dispositivo BlackBerry.

53

Gua de desarrollo

Distribuir aplicaciones del dispositivo BlackBerry con BlackBerry Desktop Software

Elemento
files

Atributos

Descripcin El elemento files proporciona una lista de uno o ms archivos .cod de la aplicacin del dispositivo BlackBerry en un nico directorio, para cargarlos en el dispositivo BlackBerry. El elemento fileset incluye un elemento directory opcional y uno o ms elementos files. Especifica un conjunto de archivos .cod, en un nico directorio, para cargarlos en el dispositivo BlackBerry. Para cargar los archivos desde ms de un directorio, incluya uno o ms elementos fileset en el archivo .alx. El atributo Java especifica la versin mnima de BlackBerry Java Virtual Machine con la que son compatibles los archivos .cod. El atributo Java es obligatorio. El atributo radio le permite cargar diferentes aplicaciones o mdulos del dispositivo BlackBerry en el dispositivo BlackBerry dependiendo del tipo de red del dispositivo BlackBerry. Entre los valores posibles se encuentran: Mobitex, DataTAC, GPRS, CDMA e IDEN. El atributo radio es opcional. El atributo langid le permite cargar distintas aplicaciones o mdulos del dispositivo BlackBerry dependiendo de la compatibilidad de idioma que los usuarios del dispositivo BlackBerry agreguen al dispositivo BlackBerry. El valor es un cdigo langid de Win32, por ejemplo 0x0009 (ingls), 0x0007 (alemn), 0x000a (espaol) y 0x000c (francs). El atributo langid es opcional. El atributo colour le permite que cargar distintas aplicaciones o mdulos del dispositivo BlackBerry para visualizaciones en color o monocromticas. Se trata de un valor Booleano; true significa visualizacin en color y false significa monocromtica. El atributo platformVersion especifica la versin del software del sistema operativo de un dispositivo BlackBerry que requiere la aplicacin del dispositivo BlackBerry.

fileset

Java radio langid Colour platformVersion blackBerryVersion

54

Gua de desarrollo

Distribuir aplicaciones del dispositivo BlackBerry con BlackBerry Desktop Software

Elemento

Atributos

Descripcin El atributo blackBerryVersion especifica la versin de BlackBerry Device Software que requiere la aplicacin del dispositivo BlackBerry. El elemento hidden oculta un paquete para que no aparezca para los usuarios del dispositivo BlackBerry en el Cargado de aplicaciones. Para ocultar un paquete, agregue la siguiente lnea:
<hidden>true</hidden>.

hidden

Utilice este elemento junto con el elemento required para cargar la aplicacin del dispositivo BlackBerry de forma predeterminada, o bien configure la etiqueta requires para cargar este paquete en el caso de que exista otra aplicacin del dispositivo BlackBerry. Slo los administradores del sistema corporativo deberan utilizar la etiqueta hidden. El uso de esta etiqueta no est destinado a proveedores de software de otros fabricantes. BlackBerry Desktop Software versin 3.6 o posterior es compatible con este elemento. El elemento language le permite omitir el texto que aparece en el Cargador de aplicaciones cuando ste se ejecuta en el idioma que especifica el atributo langid. Para ofrecer compatibilidad con varios idiomas, debe especificar varios elementos language. Con el fin de especificar elementos name, description, version, vendor y copyright para cada idioma, anide estos elementos en el elemento language. Si no anida un elemento, el texto aparece en el idioma predeterminado. El atributo langid especifica el cdigo langid de Win32 para el idioma al cual se aplica esta informacin. Por ejemplo, algunos cdigos langid de Win32 son: 0x0009 (ingls), 0x0007 (alemn), 0x000a (espaol) y 0x000c (francs).

language

langid

55

Gua de desarrollo

Distribuir aplicaciones del dispositivo BlackBerry con BlackBerry Desktop Software

Elemento
library

Atributos
id

Descripcin Puede utilizar el elemento library en lugar del elemento application. Contiene los elementos de un solo mdulo de la biblioteca. No es posible anidar mdulos. De forma predeterminada, el mdulo de la biblioteca no aparece en la herramienta Cargador de aplicaciones de BlackBerry Desktop Manager. Normalmente, utiliza el elemento library como el destino del elemento <requires>, de forma que cuando una aplicacin particular del dispositivo BlackBerry se carga en el dispositivo BlackBerry, el elemento library necesario tambin se cargue en el dispositivo BlackBerry. BlackBerry Desktop Software versin 3.6 o superior tambin es compatible con este elemento. El elemento loader contiene uno o ms elementos application. El atributo version especifica la versin de la herramienta Cargador de aplicaciones de BlackBerry Desktop Manager. El elemento name proporciona un nombre descriptivo a la aplicacin del dispositivo BlackBerry, que aparece en la herramienta Cargador de aplicaciones de BlackBerry Desktop Manager. El elemento required le permite imponer a los usuarios que carguen una aplicacin. La herramienta Cargador de aplicaciones de BlackBerry Desktop Manager selecciona la aplicacin del dispositivo BlackBerry para la instalacin, el usuario del dispositivo BlackBerry no puede cambiar esta opcin. Agregue la siguiente lnea: <required>true</ required>. Slo los administradores del sistema corporativo deberan utilizar la etiqueta required. Los proveedores de software de otros fabricantes no debern utilizar esta etiqueta.

loader

version

nombre

required

56

Gua de desarrollo

Distribucin de aplicaciones a travs de una conexin de ordenador

Elemento

Atributos

Descripcin BlackBerry Desktop Software versin 3.5 o posterior es compatible con este elemento. El elemento requires es un elemento opcional que especifica el id del que depende esta aplicacin del dispositivo BlackBerry. Este elemento puede aparecer ms de una vez, si la aplicacin del dispositivo BlackBerry depende de ms de una aplicacin del dispositivo BlackBerry. Cuando una aplicacin del dispositivo BlackBerry se carga en el dispositivo BlackBerry, todos los paquetes que especifica la etiqueta <requires> se cargan tambin en el dispositivo BlackBerry. BlackBerry Desktop Software versin 3.6 o superior tambin es compatible con este elemento. El elemento vendor proporciona el nombre de la compaa que ha creado la aplicacin del dispositivo BlackBerry que aparece en la herramienta Cargador de aplicaciones de BlackBerry Desktop Manager. El elemento version proporciona el nmero de versin de la aplicacin del dispositivo BlackBerry, que aparece en la herramienta Cargador de aplicaciones de BlackBerry Desktop Manager. Este nmero de versin slo persigue fines informativos.

requires

id

vendor

version

Distribucin de aplicaciones a travs de una conexin de ordenador


Distribuir una aplicacin desde un ordenador
Puede utilizar la herramienta Cargador de aplicaciones en BlackBerry Desktop Manager para instalar aplicaciones en el dispositivo BlackBerry. La herramienta Cargador de aplicaciones ofrece a los usuarios un modo sencillo de descargar las aplicaciones desde sus ordenadores a sus dispositivos BlackBerry.

57

Gua de desarrollo

Distribuir una aplicacin desde un ordenador

Distribuir una aplicacin desde una pgina Web


Puede utilizar BlackBerry Application Web Loader para registrar la aplicacin compilada en un sitio Web. Los usuarios pueden utilizar Windows Internet Explorer en sus ordenadores para visitar la pgina Web e instalar la aplicacin en sus dispositivos BlackBerry. Cuando los usuarios de dispositivos BlackBerry visitan la pgina Web, BlackBerry Application Web Loader les solicita que conecten sus dispositivos al puerto USB. A continuacin, pueden instalar la aplicacin mediante un control ActiveX. BlackBerry Application Web Loader ofrece a los usuarios de dispositivos BlackBerry una manera sencilla de instalar las aplicaciones desde sus ordenadores sin ejecutar BlackBerry Desktop Manager.

Distribuir una aplicacin para la prueba


BlackBerry Java Development Environment incluye una herramienta de lnea de comandos denominada JavaLoader que se ubica en la carpeta BIN dentro de la carpeta BlackBerry JDE. Puede utilizar la herramienta JavaLoader para instalar y eliminar rpidamente los archivos de la aplicacin compilados en el dispositivo BlackBerry directamente a travs del puerto USB. No necesita ningn archivo de descriptor o pginas Web. La herramienta JavaLoader puede ser til si instala y elimina la aplicacin con frecuencia durante la prueba y desarrollo; sin embargo, la herramienta JavaLoader no se ha diseado para su uso por parte de usuarios de dispositivos BlackBerry.

Distribuir una aplicacin desde un ordenador Crear un archivo del Cargador de aplicaciones
Utilice un archivo del Cargador de aplicaciones para distribuir una aplicacin del dispositivo BlackBerry a travs de la herramienta Cargador de aplicaciones de BlackBerry Desktop Manager. 1. Cree un archivo .alx para cada aplicacin del dispositivo BlackBerry y, a continuacin, distribuya el archivo .alx con los archivos .cod a los usuarios de dispositivos BlackBerry. Consulte la Ayuda en lnea del Cargador de aplicaciones para obtener ms informacin acerca de los archivos .alx. En BlackBerry Integrated Development Environment, seleccione un proyecto. En el men Proyecto, haga clic en Generar archivo .alx.

2. 3.

Instalar una aplicacin del dispositivo BlackBerry en un dispositivo especfico


1. 2. 3. Abra un editor de texto. Ubique el archivo .alx de la aplicacin del dispositivo BlackBerry. En el archivo .alx, asegrese de que el atributo de serie en la etiqueta de apertura del conjunto de archivos se refiere al dispositivo BlackBerry en el cual desea instalar la aplicacin del dispositivo BlackBerry.

58

Gua de desarrollo

Especificar versiones compatibles de BlackBerry Device Software

<fileset series="8700" Java="1.0">

Para obtener ms informacin acerca del atributo de serie, consulte el archivo Platform.alx ubicado en el directorio del simulador del directorio de instalacin de BlackBerry Java Development Environment: 4. Archivos de programa\Research In Motion\BlackBerry JDE 4.6.0\simulator. Asegrese de que la etiqueta de los archivos contiene una referencia al archivo .cod para la aplicacin del dispositivo BlackBerry.
<files> My_application.cod </files>

5.

Actualice la aplicacin, la descripcin y el resto de etiquetas para reflejar el objetivo del archivo .alx.
<application id="Push only to 8700"> ... <description>This will push the COD only to 8700s</description>

Ejemplo de cdigo: cargar una aplicacin del dispositivo BlackBerry en un dispositivo BlackBerry especfico
<loader version="1.0"> <application id="Push only to 8700"> <name>Alien</name> <description>This will push the COD only to 8700s</description> <version>2006.02.14.1838</version> <vendor>RIM</vendor> <copyright>Copyright (c) 2001-2005</copyright> <fileset series="8700" Java="1.0"> <files> My_application.cod </files> </fileset> </application> </loader>

Especificar versiones compatibles de BlackBerry Device Software


Las aplicaciones del dispositivo BlackBerry que utilizan API que estn slo disponibles en versiones concretas de BlackBerry Device Software deben especificar las versiones compatibles del dispositivo BlackBerry mediante el atributo _blackberryVersion. Las aplicaciones del dispositivo BlackBerry que se utilizan en un dispositivo BlackBerry que ejecuta en una versin especfica de la plataforma deben especificar las versiones compatibles de la plataforma mediante el atributo _platformVersion. El atributo _platformVersion puede utilizarse dentro de la etiqueta del directorio, la etiqueta de la aplicacin, o la etiqueta del conjunto de archivos.

59

Gua de desarrollo

Especificar versiones compatibles de BlackBerry Device Software

Puede utilizar las siguientes reglas para especificar un intervalo de versiones para BlackBerry Device Software o para la versin de la plataforma: Los corchetes [] indican coincidencias de intervalo inclusivas (cerrado). Los parntesis () indican coincidencias de intervalo exclusivas (abierto). Intervalos inferiores ausentes implican 0. Intervalos superiores ausentes implican infinito.

Por ejemplo, [4.0,) indica cualquier versin entre 4.0 e infinito. Ejemplo de cdigo: evitar la carga de mdulos en versiones de BlackBerry Device Software anteriores a la versin 4.0.
<application id="application_id" _blackberryVersion="[4.0,)"> ... </application>

Ejemplo de cdigo: proporcionar mdulos alternativos para versiones diferentes de BlackBerry Device Software.
<application id="application_id>"> ... <fileset _blackberryVersion="(,4.0)"> ... modules for BlackBerry device software versions earlier than 4.0 </fileset> <fileset _blackberryVersion="[4.0,)"> ... modules for BlackBerry device software versions 4.0 and later </fileset> </application>

Ejemplo de cdigo: evitar la carga de mdulos en versiones de la plataforma anteriores a la versin 2.4.0.66.
<application id="application_id" _platformVersion="[2.4.0.66,)"> ... </application>

Ejemplo de cdigo: proporcionar mdulos alternativos para versiones diferentes de la plataforma.


<application id="application_id>"> ... <fileset _platformVersion="(,2.4.0.66)"> ... modules for BlackBerry OS plaform versions earlier than 2.4.0.66 </fileset> <fileset _platformVersion="[2.4.0.66,)"> ... modules for BlackBerry OS plaform versions 2.4.0.66 and later </fileset> </application>

60

Gua de desarrollo

Especificar una ubicacin para su aplicacin en un dispositivo BlackBerry

Especificar una ubicacin para su aplicacin en un dispositivo BlackBerry


Puede agregar su aplicacin del dispositivo BlackBerry a una de las carpetas de aplicaciones que est disponible con el tema en el dispositivo, a una carpeta de aplicaciones nueva que haya creado, o bien a la pantalla de inicio en el dispositivo. Por ejemplo, si desarrolla un juego, puede agregarlo a la carpeta Juegos del dispositivo BlackBerry. Si su aplicacin tiene distintos puntos de entrada, puede especificar una carpeta de aplicaciones para cada punto de entrada. Si no especifica una ubicacin, el dispositivo BlackBerry agregar la aplicacin a la carpeta de aplicaciones predeterminada (por ejemplo, la carpeta Descargas). Puede especificar la ubicacin de las aplicaciones instaladas en un dispositivo BlackBerry que ejecute BlackBerry Device Software 5.0 o posterior. Las siguientes carpetas de aplicaciones estn disponibles con el tema Precision en un dispositivo que ejecuta BlackBerry Device Software 5.0: Aplicaciones Descargas Juegos Mensajera instantnea Correo Multimedia Msica Configuracin

Si crea una carpeta de aplicaciones nueva, el nombre de la carpeta debe utilizar caracteres vlidos. Por ejemplo, no puede utilizar caracteres como el signo menor que (<) o mayor que (>). Para obtener una lista de los caracteres que no son vlidos, consulte la documentacin de la clase FilenameTextFilter en la referencia API de BlackBerry Java Development Environment. Un usuario puede cambiar la ubicacin de su aplicacin en el dispositivo. Si un usuario cambia la ubicacin de su aplicacin, el dispositivo siempre utiliza la ubicacin nueva. Por ejemplo, si un usuario instala, elimina y despus vuelve a instalar su aplicacin, el dispositivo agrega su aplicacin a la ubicacin especificada anteriormente por el usuario.

Especificar una ubicacin para una aplicacin en un dispositivo BlackBerry


Puede especificar una ubicacin que agregar a su aplicacin en un dispositivo BlackBerry agregando el atributo ContentFolder al archivo .jad para su aplicacin. Si especifica una carpeta de aplicaciones y sta no puede crearse, su aplicacin se agrega a la carpeta predeterminada (por ejemplo, la carpeta Descargas). Antes de comenzar: Compruebe que el dispositivo BlackBerry est ejecutando BlackBerry Device Software 5.0 o posterior. 1. 2. 3. En Eclipse, abra y compile su proyecto de aplicacin del dispositivo BlackBerry. En la vista Explorador de paquetes, abra el archivo .jad de la carpeta <carpeta_proyecto>/deliverables/Standard/ <x.x.x> . Si no ve la carpeta ni el archivo .jad, compruebe si ha compilado su proyecto. En un editor de texto, agregue una lnea nueva al final del archivo .jad y escriba lo siguiente: Para agregar su aplicacin a la pantalla de inicio de un dispositivo, escriba Content-Folder: /.

61

Gua de desarrollo

Especificar una ubicacin para su aplicacin en un dispositivo BlackBerry

Para agregar su aplicacin a una carpeta de aplicaciones, escriba Content-Folder: <nombre_carpeta>. Para especificar ubicaciones para los distintos puntos de entrada, para cada punto de entrada, escriba Content-Folderx: <nombre_carpeta>. Por ejemplo, escriba Content-Folder-1: Games para el primer punto de entrada y Content-Folder-2: Applications para el segundo punto de entrada. 4. 5. 6. 7. Guarde el archivo .jad. En Eclipse, en la vista Explorador de paquetes, arrastre el archivo .jad de la carpeta <carpeta_proyecto>/deliverables/ Standard/<x.x.x> a la carpeta raz de su proyecto de aplicacin. Compile su proyecto. Pruebe y distribuya su aplicacin mediante los nuevos archivos del paquete.

Ejemplo: agregar una aplicacin a la carpeta Juegos cambiando el archivo .jad


Manifest-Version: 1.0 MIDlet-Version: 1.0.0 MIDlet-Jar-Size: 2912 MicroEdition-Configuration: CLDC-1.1 MIDlet-Jar-URL: MyGame.jar RIM-COD-Module-Dependencies: net_rim_cldc RIM-MIDlet-Flags-1: 0 RIM-COD-Module-Name: MyGame MIDlet-Name: MyGame RIM-COD-Size: 1504 RIM-COD-Creation-Time: 1272372497 MIDlet-1: My Game,img/mygame.png, RIM-COD-URL: MyGame.cod RIM-COD-SHA1: 82 2f 22 b6 e6 34 ef c3 2b 0e a4 96 22 08 c0 60 39 4d db aa MicroEdition-Profile: MIDP-2.0 MIDlet-Vendor: Research In Motion Ltd. Content-Folder: Games

62

Gua de desarrollo

Localizar aplicaciones del dispositivo BlackBerry

Localizar aplicaciones del dispositivo BlackBerry


Compatibilidad de varios idiomas

BlackBerry Integrated Development Environment incluye un mecanismo de recursos para crear recursos de cadena. La API de localizacin forma parte del paquete net.rim.device.api.i18n. Las aplicaciones MIDP no son compatibles con la localizacin. BlackBerry Integrated Development Environment almacena los recursos de una configuracin regional en un objeto ResourceBundle. Un objeto ResourceBundleFamily contiene una recopilacin de ResourceBundles, que agrupa los recursos de una aplicacin. La aplicacin puede cambiar los idiomas, dependiendo de la configuracin regional del usuario del dispositivo BlackBerry, sin requerir nuevos paquetes de recursos. Puede utilizar BlackBerry Integrated Development Environment para compilar cada paquete de recursos en un archivo .cod compilado independientemente. Puede cargar los archivos .cod apropiados en los dispositivos BlackBerry con los otros archivos .cod de la aplicacin. Los recursos se organizan segn una jerarqua basada en la capacidad heredable. Si una cadena no est definida en una configuracin regional, se utiliza una cadena de la configuracin regional siguiente ms cercana.

Archivos necesarios para la localizacin


Archivo necesario para la localizacin Archivo de encabezado de recursos Descripcin Ejemplo

Archivo de contenido de recursos (configuracin regional raz)

Este archivo define claves descriptivas para cada cadena localizada. AppName.rrh Cuando BlackBerry Integrated Development Environment compila un proyecto, crea una interfaz de recursos con Resource agregado al nombre del archivo .rrh. Por ejemplo, si crea AppName.rrh, la interfaz se denominar AppNameResource. Este archivo asigna claves de recursos a los valores de cadena de la AppName.rrc configuracin regional (global) raz. Tiene el mismo nombre que el archivo de encabezado de recursos.

63

Gua de desarrollo

Administrar archivos de localizacin para un conjunto de aplicaciones del dispositivo BlackBerry

Archivo necesario para la localizacin Archivo de contenido de recursos (configuraciones regionales especficas)

Descripcin

Ejemplo

Este archivo asigna claves de recursos a los valores de cadena de las AppName_en.rrc configuraciones regionales especficas (idioma y pas). Los archivos AppName_en_GB.rrc tienen el mismo nombre que el archivo de encabezado de recursos, AppName_fr.rrc seguido por un carcter de subrayado (_) y el cdigo de idioma y, a continuacin, opcionalmente, un carcter de subrayado (_) y el cdigo de pas. Guarde archivos de contenido de recursos en la carpeta donde se encuentra el archivo .jad. Por ejemplo, en la carpeta que contiene CountryInfo.java, guarde CountryInfo.rrc (configuracin regional raz), CountryInfo_en.rrc (ingls) y CountryInfo_fr.rrc (francs). Este archivo inicializa el mecanismo del paquete de recursos. Este init.java archivo slo es necesario cuando se compilan los recursos como proyecto separado.

Archivo de inicializacin

Administrar archivos de localizacin para un conjunto de aplicaciones del dispositivo BlackBerry


Si crea un conjunto de aplicaciones del dispositivo BlackBerry, deber organizar los recursos en proyectos independientes para cada configuracin regional. BlackBerry Integrated Development Environment proporciona un mecanismo de inicializacin integrado. Slo es necesario que cree una clase de inicializacin vaca con un objeto main(). Si su configuracin es compatible con un amplio nmero de configuraciones regionales, cree un nico proyecto de biblioteca para todos los archivos de encabezados de recursos (.rrh) y configure el tipo de proyecto en Library. Para cada configuracin regional de recursos en la biblioteca, defina una dependencia entre los proyectos. 1. Abra BlackBerry Integrated Development Environment. 2. Cree un proyecto para cada paquete de recursos (configuracin regional), incluyendo la configuracin regional raz. 3. D a los proyectos de cada configuracin regional de recursos el mismo nombre que al proyecto de la configuracin regional raz, seguido de un carcter de subrayado doble (__), el cdigo del idioma y, opcionalmente, un carcter de subrayado (_) seguido del cdigo del pas. Por ejemplo, si el proyecto de la configuracin regional raz de denomina com_company_app, los proyectos de cada configuracin local se denominarn com_company_app__en, com_company_app__en_GB y com_company_app__fr. 4. Haga clic con el botn derecho y seleccione Propiedades. 5. En la ficha Compilar, en el campo Nombre del archivo de salida, escriba un nombre para el archivo compilado, sin una extensin de nombre de archivo.

64

Gua de desarrollo

Administrar archivos de localizacin para un conjunto de aplicaciones del dispositivo BlackBerry

6.

Cree un archivo de inicializacin.


package com.rim.samples.device.resource; import net.rim.device.api.i18n.*; public class init { public static void main (String[] args) { } }

7. 8. 9. 10. 11. 12.

Cree un archivo de encabezado de recursos para cada aplicacin del dispositivo BlackBerry. Copie los archivos de encabezado de recursos (.rrh) en el proyecto para cada aplicacin del dispositivo BlackBerry. Copie los archivos de encabezado de recursos en cada proyecto de la configuracin regional de recursos. Cree un archivo de contenido de recursos para cada aplicacin del dispositivo BlackBerry. Cree un archivo de contenido de recursos para cada configuracin regional compatible. En cada proyecto de configuracin regional de recursos, haga clic con el botn derecho en cada archivo .rrh y, a continuacin, haga clic en Propiedades. 13. Seleccione Slo dependencia. No compilar. 14. Agregue los archivos de contenido de recursos (.rrc) a los archivos de las configuraciones regionales adecuadas.

65

Gua de desarrollo

Autenticacin personalizada del usuario

Autenticacin personalizada del usuario

Para iniciar sesin en un dispositivo BlackBerry, el usuario debe generar un identificador de seguridad. De forma predeterminada, los usuarios del dispositivo BlackBerry escriben una contrasea para autenticar su identidad y para generar el correspondiente identificador de seguridad. Los dispositivos BlackBerry que ejecutan BlackBerry Device Software 5.0 o posterior tambin son compatibles con los mdulos de autenticacin personalizada del usuario. Debe crear un mdulo de autenticacin del usuario para utilizar hardware adicional, como una tarjeta inteligente o dispositivo biomtrico, con el fin de realizar la autenticacin. El marco de seguridad en el dispositivo BlackBerry utiliza su mdulo de autenticacin de usuario para interactuar con el hardware. Para obtener ms informacin acerca de la autenticacin personalizada del usuario y de la clase net.rim.device.api.userauthenticator, consulte la referencia de API de BlackBerry Java Development Environment.

66

Gua de desarrollo

Glosario

Glosario
3GPP Third Generation Partnership Project (Proyecto de asociacin de tercera generacin) AES Advanced Encryption Standard (Estndar de cifrado avanzado) API Application Programming Interface (Interfaz de programacin de aplicaciones) APN access point name (nombre de punto de acceso) ASCII American National Standards Institute (Instituto nacional estadounidense de normalizacin)

Archivo .alx Un archivo .alx es el descriptor de aplicacin que ofrece informacin sobre una aplicacin BlackBerry Java Application y la ubicacin de los archivos .cod de la aplicacin a un dispositivo BlackBerry. BlackBerry MDS BlackBerry Mobile Data System CDMA Code Division Multiple Access (Acceso mltiple por divisin de cdigos) Puerto COM puerto de comunicaciones EDGE Enhanced Data Rates for Global Evolution (Velocidad de datos mejorada para una evolucin global) EVDO Evolution Data Optimized (Datos de evolucin optimizada) GAN generic access network (red de acceso genrico) GERAN Red de acceso radio para GSM-EDGE GPRS

67

Gua de desarrollo

Glosario

General Packet Radio Service GSM Global System for Mobile communications HTTP Hypertext Transfer Protocol HTTPS Hypertext Transfer Protocol over Secure Sockets Layer (Protocolo de transferencia de hipertexto a travs de un nivel de socket seguro) IPPP Internet Protocol Proxy Protocol (Protocolo proxy de protocolo de Internet) JSR Java Specification Request MIDP Mobile Information Device Profile (Perfil de dispositivo mvil de informacin) PAP Push Access Protocol (Protocolo de acceso push) PIN nmero de identificacin personal RAPC RIM Application Program Compiler (Compilador de programas de aplicaciones de RIM) libros de servicios Los libros de servicios permiten determinar qu servicios estarn disponibles en los dispositivos BlackBerry o habilitados para BlackBerry. SSID service set identifier (identificador de servicios) TCP Transmission Control Protocol TLS Transport Layer Security (Seguridad de capa de transporte) Triple DES Triple Data Encryption Standard (Estndar de cifrado triple de datos)

68

Gua de desarrollo

Glosario

UDP User Datagram Protocol UMTS Sistema Universal de Telecomunicaciones Mviles UTRAN Red de acceso radio terrestre para UMTS WAP Wireless Application Protocol (Protocolo de aplicaciones inalmbricas) WLAN wireless local area network

69

Gua de desarrollo

Comentarios

Comentarios
Para ofrecer comentarios acerca de este documento, visite www.blackberry.com/docsfeedback.

10

70

Gua de desarrollo

Recursos relacionados

Recursos relacionados
Para obtener ms informacin acerca del desarrollo de aplicaciones para dispositivos BlackBerry, consulte los recursos siguientes. Gua de conceptos bsicos de BlackBerry Java Application Gua de desarrollo de interfaz de usuario y navegacin de BlackBerry Java Application Gua de desarrollo de integracin de BlackBerry Java Application Gua de desarrollo multimedia de BlackBerry Java Application Gua de desarrollo de accesibilidad de BlackBerry Java Application Nota tcnica de desarrollo Transicin a la pantalla tctil de BlackBerry Java Application Gua de desarrollo de BlackBerry Browser Zona para desarrolladores de BlackBerry en www.blackberry.com/developers Referencia API para BlackBerry Java Development Environment

11

71

Gua de desarrollo

Historial de revisin del documento

Historial de revisin del documento


Fecha 27 de abril de 2010 6 de abril de 2010 Descripcin

12

Se cambi el tema Especificar una ubicacin para una aplicacin en un dispositivo BlackBerry . Se aadieron los temas siguientes: Autenticacin personalizada del usuario Se han actualizado los temas siguientes: Conexiones de red y tipos de transporte Sistemas y rutas de archivo Se aadieron los siguientes ejemplos de cdigo: Ejemplo de cdigo: leer secciones de un archivo binario

8 de octubre de 2009

Se aadieron los temas siguientes: Especificar una ubicacin para su aplicacin en un dispositivo BlackBerry Especificar una ubicacin para una aplicacin en un dispositivo BlackBerry Temas y ejemplos de cdigo agregados que muestran cmo utilizar las caractersticas de la API de red. Se ha aadido informacin de referencia de sistemas y rutas de archivo. Se ha cambiado el tema de requisitos del sistema.

20 de agosto de 2009

14 de agosto de 2009

72

Gua de desarrollo

Aviso legal

Aviso legal

13

2010 Research In Motion Limited. Todos los derechos reservados. BlackBerry, RIM, Research In Motion, SureType, SurePress y las marcas comerciales, nombres y logotipos relacionados son propiedad de Research In Motion Limited y estn registrados y/o se utilizan en EE.UU. y en diferentes pases del mundo. 802.11a, 802.11b y 802.11g son marcas comerciales del Institute of Electrical and Electronics Engineers, Inc. es una marca comercial de Bluetooth SIG. es una marca comercial de Bluetooth SIG. Eclipse es una marca comercial de Eclipse Foundation, Inc. Global System for Mobile communications es una marca comercial de GSM MOU Association. iDEN es una marca comercial de Motorola, Inc. Microsoft, ActiveX, Internet Explorer y Windows son marcas comerciales de Microsoft Corporation. Java is a trademark of Sun Microsystems, Inc. UMTS es una marca comercial del European Telecommunications Standard Institute. Wi-Fi es una marca comercial de Wi-Fi Alliance.. Todas las dems marcas comerciales son propiedad de sus respectivos propietarios. Esta documentacin, incluida cualquier documentacin que se incorpore mediante referencia como documento proporcionado o disponible en www.blackberry.com/go/docs, se proporciona o se pone a disposicin "TAL CUAL" y "SEGN SU DISPONIBILIDAD" sin ninguna condicin, responsabilidad o garanta de ningn tipo por Research In Motion Limited y sus empresas afiliadas ("RIM") y RIM no asume ninguna responsabilidad por los errores tipogrficos, tcnicos o cualquier otra imprecisin, error u omisin contenidos en esta documentacin. Con el fin de proteger la informacin confidencial y propia de RIM, as como los secretos comerciales, la presente documentacin describe algunos aspectos de la tecnologa de RIM en lneas generales. RIM se reserva el derecho a modificar peridicamente la informacin que contiene esta documentacin, si bien tampoco se compromete en modo alguno a proporcionar cambios, actualizaciones, ampliaciones o cualquier otro tipo de informacin que se pueda agregar a esta documentacin. Esta documentacin puede contener referencias a fuentes de informacin, hardware o software, productos o servicios, incluidos componentes y contenido como, por ejemplo, el contenido protegido por copyright y/o sitios Web de terceros (conjuntamente, los "Productos y servicios de terceros"). RIM no controla ni es responsable de ningn tipo de Productos y servicios de terceros, incluido, sin restricciones, el contenido, la exactitud, el cumplimiento de copyright, la compatibilidad, el rendimiento, la honradez, la legalidad, la decencia, los vnculos o cualquier otro aspecto de los Productos y servicios de terceros. La inclusin de una referencia a los Productos y servicios de terceros en esta documentacin no implica que RIM se haga responsable de dichos Productos y servicios de terceros o de dichos terceros en modo alguno. EXCEPTO EN LA MEDIDA EN QUE LO PROHBA ESPECFICAMENTE LA LEY DE SU JURISDICCIN, QUEDAN EXCLUIDAS POR LA PRESENTE TODAS LAS CONDICIONES, APROBACIONES O GARANTAS DE CUALQUIER TIPO, EXPLCITAS O IMPLCITAS, INCLUIDA, SIN NINGN TIPO DE LIMITACIN, CUALQUIER CONDICIN, APROBACIN, GARANTA, DECLARACIN DE GARANTA DE DURABILIDAD, IDONEIDAD PARA UN FIN O USO DETERMINADO, COMERCIABILIDAD, CALIDAD COMERCIAL, ESTADO DE NO INFRACCIN, CALIDAD SATISFACTORIA O TITULARIDAD, O QUE SE DERIVE DE UNA LEY O COSTUMBRE O UN CURSO DE LAS NEGOCIACIONES O USO DEL COMERCIO, O RELACIONADO CON LA DOCUMENTACIN O SU USO O RENDIMIENTO O NO RENDIMIENTO DE CUALQUIER SOFTWARE, HARDWARE, SERVICIO O CUALQUIER PRODUCTO O SERVICIO DE TERCEROS MENCIONADOS AQU. TAMBIN PODRA TENER OTROS DERECHOS QUE VARAN SEGN EL ESTADO O PROVINCIA. ES POSIBLE QUE ALGUNAS JURISDICCIONES NO PERMITAN LA EXCLUSIN O LA LIMITACIN DE GARANTAS IMPLCITAS Y CONDICIONES. EN LA MEDIDA EN QUE LO PERMITA LA LEY, CUALQUIER GARANTA IMPLCITA O CONDICIONES EN RELACIN CON LA DOCUMENTACIN NO SE PUEDEN EXCLUIR TAL Y COMO SE HA EXPUESTO ANTERIORMENTE, PERO PUEDEN SER LIMITADAS, Y POR LA PRESENTE ESTN LIMITADAS A NOVENTA (90) DAS DESDE DE LA FECHA QUE ADQUIRI LA DOCUMENTACIN O EL ELEMENTO QUE ES SUJETO DE LA RECLAMACIN.

73

Gua de desarrollo

Aviso legal

EN LA MEDIDA MXIMA EN QUE LO PERMITA LA LEY DE SU JURISDICCIN, EN NINGN CASO RIM ASUMIR RESPONSABILIDAD ALGUNA POR CUALQUIER TIPO DE DAOS RELACIONADOS CON ESTA DOCUMENTACIN O SU USO, O RENDIMIENTO O NO RENDIMIENTO DE CUALQUIER SOFTWARE, HARDWARE, SERVICIO O PRODUCTOS Y SERVICIOS DE TERCEROS AQU MENCIONADOS INCLUIDOS SIN NINGN TIPO DE LIMITACIN CUALQUIERA DE LOS SIGUIENTES DAOS: DIRECTOS, RESULTANTES, EJEMPLARES, INCIDENTALES, INDIRECTOS, ESPECIALES, PUNITIVOS O AGRAVADOS, DAOS POR PRDIDA DE BENEFICIOS O INGRESOS, IMPOSIBILIDAD DE CONSEGUIR LOS AHORROS ESPERADOS, INTERRUPCIN DE LA ACTIVIDAD COMERCIAL, PRDIDA DE INFORMACIN COMERCIAL, PRDIDA DE LA OPORTUNIDAD DE NEGOCIO O CORRUPCIN O PRDIDA DE DATOS, IMPOSIBILIDAD DE TRANSMITIR O RECIBIR CUALQUIER DATO, PROBLEMAS ASOCIADOS CON CUALQUIER APLICACIN QUE SE UTILICE JUNTO CON PRODUCTOS Y SERVICIOS DE RIM, COSTES DEBIDOS AL TIEMPO DE INACTIVIDAD, PRDIDA DE USO DE LOS PRODUCTOS Y SERVICIOS DE RIM O PARTE DE L O DE CUALQUIER SERVICIO DE USO, COSTE DE SERVICIOS SUSTITUTIVOS, COSTES DE COBERTURA, INSTALACIONES O SERVICIOS, COSTE DEL CAPITAL O CUALQUIER OTRA PRDIDA MONETARIA SIMILAR, TANTO SI DICHOS DAOS SE HAN PREVISTO O NO, Y AUNQUE SE HAYA AVISADO A RIM DE LA POSIBILIDAD DE DICHOS DAOS. EN LA MEDIDA MXIMA EN QUE LO PERMITA LA LEY DE SU JURISDICCIN, RIM NO TENDR NINGN OTRO TIPO DE OBLIGACIN O RESPONSABILIDAD CONTRACTUAL, EXTRACONTRACTUAL O CUALQUIER OTRA, INCLUIDA CUALQUIER RESPONSABILIDAD POR NEGLIGENCIA O RESPONSABILIDAD ESTRICTA. LAS LIMITACIONES, EXCLUSIONES Y DESCARGOS DE RESPONSABILIDAD SE APLICARN: (A) INDEPENDIENTEMENTE DE LA NATURALEZA DE LA CAUSA DE LA ACCIN, DEMANDA O ACCIN SUYA, INCLUIDA PERO NO LIMITADA AL INCUMPLIMIENTO DEL CONTRATO, NEGLIGENCIA, AGRAVIO, EXTRACONTRACTUAL, RESPONSABILIDAD ESTRICTA O CUALQUIER OTRA TEORA DEL DERECHO Y DEBERN SOBREVIVIR A UNO O MS INCUMPLIMIENTOS ESENCIALES O AL INCUMPLIMIENTO DEL PROPSITO ESENCIAL DE ESTE CONTRATO O CUALQUIER SOLUCIN CONTENIDA AQU; Y (B) A RIM Y A SUS EMPRESAS AFILIADAS, SUS SUCESORES, CESIONARIOS, AGENTES, PROVEEDORES (INCLUIDOS LOS PROVEEDORES DE SERVICIOS DE USO), DISTRIBUIDORES AUTORIZADOS POR RIM (INCLUIDOS TAMBIN LOS PROVEEDORES DE SERVICIOS DE USO) Y SUS RESPECTIVOS DIRECTORES, EMPLEADOS Y CONTRATISTAS INDEPENDIENTES. ADEMS DE LAS LIMITACIONES Y EXCLUSIONES MENCIONADAS ANTERIORMENTE, EN NINGN CASO NINGN DIRECTOR, EMPLEADO, AGENTE, DISTRIBUIDOR, PROVEEDOR, CONTRATISTA INDEPENDIENTE DE RIM O CUALQUIER AFILIADO DE RIM ASUMIR NINGUNA RESPONSABILIDAD DERIVADA DE O RELACIONADA CON LA DOCUMENTACIN. Antes de instalar, usar o suscribirse a cualquiera de los Productos y servicios de terceros, es su responsabilidad asegurarse de que su proveedor de servicios de uso ofrezca compatibilidad con todas sus funciones. Puede que algunos proveedores de servicios de uso no ofrezcan las funciones de exploracin de Internet con una suscripcin al servicio BlackBerry Internet Service. Consulte con su proveedor de servicios acerca de la disponibilidad, arreglos de itinerancia, planes de servicio y funciones. La instalacin o el uso de los Productos y servicios de terceros con productos y servicios de RIM puede precisar la obtencin de una o ms patentes, marcas comerciales, derechos de autor u otras licencias para evitar que se vulneren o violen derechos de terceros. Usted es el nico responsable de determinar si desea utilizar Productos y servicios de terceros y si se necesita para ello cualquier otra licencia de terceros. En caso de necesitarlas, usted es el nico responsable de su adquisicin. No instale o utilice Productos y servicios de terceros hasta que se hayan adquirido todas las licencias necesarias. Cualquier tipo de Productos y servicios de terceros que se proporcione con los productos y servicios de RIM se le facilita para su comodidad "TAL CUAL" sin ninguna condicin expresa e implcita, aprobacin, garanta de cualquier tipo por RIM y RIM no sume ninguna responsabilidad en relacin con ello. El uso de los Productos y servicios de terceros se regir y estar sujeto a la aceptacin de los trminos de licencias independientes aplicables en este caso con terceros, excepto en los casos cubiertos expresamente por una licencia u otro acuerdo con RIM.

74

Gua de desarrollo

Aviso legal

Algunas funciones mencionadas en esta documentacin requieren una versin mnima del software de BlackBerry Enterprise Server, BlackBerry Desktop Software y/o BlackBerry Device Software. Los trminos de uso de cualquier producto o servicio de RIM se presentan en una licencia independiente o en otro acuerdo con RIM que se aplica en este caso. NINGUNA PARTE DE LA PRESENTE DOCUMENTACIN EST PENSADA PARA PREVALECER SOBRE CUALQUIER ACUERDO EXPRESO POR ESCRITO O GARANTA PROPORCIONADA POR RIM PARA PARTES DE CUALQUIER PRODUCTO O SERVICIO DE RIM QUE NO SEA ESTA DOCUMENTACIN. Research In Motion Limited 295 Phillip Street Waterloo, ON N2L 3W8 Canad Research In Motion UK Limited Centrum House 36 Station Road Egham, Surrey TW20 9LF Reino Unido Publicado en Canad

75

Вам также может понравиться