Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Versin: 5.0
Gua de desarrollo
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
2.
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.
Gua de desarrollo
Control de la aplicacin
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.
2. 3. 4.
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
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]);
Gua de desarrollo
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.
Gua de desarrollo
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.
10
Gua de desarrollo
11
Gua de desarrollo
} 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(); } } }
12
Gua de desarrollo
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 ); }
2. 3.
13
Gua de desarrollo
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.
2. 3.
3.
14
Gua de desarrollo
2.
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.
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
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
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 ); }
3. 4.
Invoque CollectionListener.elementRemoved().
18
Gua de desarrollo
2.
Invoque RuntimeStore.getRuntimeStore().
RuntimeStore store = RuntimeStore.getRuntimeStore();
2. 3.
2. 3.
19
Gua de desarrollo
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) { }
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.
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.
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.
Invoque HttpConnection.getResponseCode().
int status = httpConn.getResponseCode();
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.
23
Gua de desarrollo
Conexiones
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));
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
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.
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();
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);
9.
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
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.
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.
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.
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).
31
Gua de desarrollo
Conexiones Wi-Fi
Si el dispositivo BlackBerry no se conecta a un punto del acceso, el mtodo WLANInfo.getAPInfo() devuelve un valor null.
2.
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);
2. 3. 4.
2. 3. 4.
33
Gua de desarrollo
34
Gua de desarrollo
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
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
setTitle("HTTP First Sample"); add(new RichTextField("Trying to make HTTP connection... \n")); ConnectionThread ct = new ConnectionThread(); ct.start();
37
Gua de desarrollo
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.
38
Gua de desarrollo
net.rim.device.api.system
39
Gua de desarrollo
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
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
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.
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.
41
Gua de desarrollo
e. f. g. h.
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.
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.
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
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
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.
45
Gua de desarrollo
Emita un comando siguiendo el siguiente formato: javaloader save [-g] mdulo Por ejemplo: javaloader.exe save -g MyApplication
46
Gua de desarrollo
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
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
48
Gua de desarrollo
49
Gua de desarrollo
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.
Descripcin hora de creacin del archivo .cod lista de mdulos que requiere el archivo .cod
50
Gua de desarrollo
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
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
51
Gua de desarrollo
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
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
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
54
Gua de desarrollo
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
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
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
57
Gua de desarrollo
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.
58
Gua de desarrollo
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>
59
Gua de desarrollo
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>
60
Gua de desarrollo
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.
61
Gua de desarrollo
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.
62
Gua de desarrollo
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.
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
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
64
Gua de desarrollo
6.
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
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
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