Exemplo n.º 1
0
 public long rfServerAcceptAndOpenRfServerConnection(long handle) throws IOException {
   EmulatorRFCOMMService s = ((EmulatorRFCOMMService) activeLocalDevice().getConnection(handle));
   if (!localDevice.isConnectable()) {
     throw new BluetoothStateException("Local device is not connectable");
   }
   long clientHandle = 0;
   boolean success = false;
   while (!success) {
     long connectionHandle = s.accept();
     try {
       long remoteAddress =
           localDevice
               .getDeviceManagerService()
               .getRemoteAddress(localDevice.getAddress(), connectionHandle);
       EmulatorRFCOMMClient c = localDevice.createRFCOMMClient(remoteAddress);
       c.connect(remoteAddress, connectionHandle);
       localDevice
           .getDeviceManagerService()
           .connectionAccepted(localDevice.getAddress(), connectionHandle);
       success = true;
       clientHandle = c.getHandle();
     } catch (IOException e) {
       DebugLog.debug("fail to accept connection", e);
       continue;
     } finally {
       if (!success) {
         localDevice
             .getDeviceManagerService()
             .closeConnection(localDevice.getAddress(), connectionHandle);
       }
     }
   }
   return clientHandle;
 }
Exemplo n.º 2
0
 public void connectionRfCloseClientConnection(long handle) throws IOException {
   assertClosed();
   if (localDevice == null) {
     return;
   }
   EmulatorRFCOMMClient c = ((EmulatorRFCOMMClient) localDevice.getConnection(handle));
   try {
     c.close();
   } finally {
     if (localDevice != null) {
       localDevice.removeConnection(c);
     }
   }
 }
Exemplo n.º 3
0
 public long connectionRfOpenClientConnection(BluetoothConnectionParams params)
     throws IOException {
   EmulatorRFCOMMClient c = activeLocalDevice().createRFCOMMClient(params.address);
   boolean success = false;
   try {
     c.connect(params);
     success = true;
   } finally {
     if (!success) {
       localDevice.removeConnection(c);
     }
   }
   return c.getHandle();
 }