Abrir una conexión de red mediante la API de red

PRECAUCIÓN:
El método de ConnectionFactory.getConnection() bloquea la ejecución del subproceso. Debe crear un subproceso separado para llamar a getConnection().
  1. Importe las clases y las interfaces necesarias.
    import net.rim.device.api.io.transport.*;
    import net.rim.device.api.io.transport.options.*;
    import net.rim.device.api.io.transport.TransportInfo;
    import net.rim.device.api.ui.UiApplication;
  2. Cree una lista ordenada de transportes preferidos.
    int[] intTransports =
    { TransportInfo.TRANSPORT_TCP_WIFI,
      TransportInfo.TRANSPORT_WAP2,
      TransportInfo.TRANSPORT_TCP_CELLULAR
    }
  3. Configure las opciones para el transporte TCP móvil si se aplica.
    TcpCellularOptions tcpOptions = new TcpCellularOptions();
    if(!TcpCellularOptions.isDefaultAPNSet())
    {
        tcpOptions.setApn("My APN");
        tcpOptions.setTunnelAuthUsername("user");
        tcpOptions.setTunnelAuthPassword("password");
    }
  4. Cree un objeto de ConnectionFactory.
    ConnectionFactory factory = new ConnectionFactory();
  5. Configure cualquier otra opción de ConnectionFactory aplicable a su aplicación. En este caso, TCP móvil es uno de los transportes preferidos, así que configrue las opciones de transporte TCP móvil.
    factory.setTransportTypeOptions(TransportInfo.TRANSPORT_TCP_CELLULAR, tcpOptions);
    factory.setAttemptsLimit(5);
  6. Cree un subproceso para recuperar la conexión. Si logró establecer la conexión, a continuación ConnectionFactory devuelve un objeto de ConnectionDescriptor que puede utilizar. En este paso, pase el objeto de ConnectionDescriptor método (displayContent()) que será responsable de mostrar el contenido.
    Thread t = new Thread(new Runnable()
    {
        public void run()
        {
            ConnectionDescriptor cd = _factory.getConnection
                                           ("http://www.blackberry.com");
            if(cd != null) 
            {
                Connection c = cd.getConnection();
                displayContent(c);
            }
         }
    });
    t.start();
    
  7. Implemente displayContent(). En este caso, envíe una pantalla que utilice un parámetro de Connection para recuperar y mostrar el contenido, después de que el subproceso de recuperación de la conexión finalice.
    private void displayContent(final Connection conn) 
    {
        UiApplication.getUiApplication().invokeLater(new Runnable()
        {
            public void run() {
                UiApplication.getUiApplication().pushScreen(new HTTPOutputScreen(conn));
            }
        });
    }
Después de terminar: Para obtener más información acerca cómo usar una conexión e implementar la clase de HTTPOutputScreen, consulte "Enviar y recibir datos mediante una conexión de red".

Para ver una muestra de código completo, consulte "Muestra de código: recuperar una página Web mediante la API de red".


¿Le ha resultado útil esta información? Envíenos sus comentarios.