# Class IncomingConnection

java.lang.Object
com.codename1.nearby.transport.IncomingConnection

public final class IncomingConnection extends Object

An incoming request from another device that wants to connect, delivered to `TransportListener.connectionRequested(IncomingConnection)`.

Named `IncomingConnection` rather than the obvious `ConnectionRequest` because `com.codename1.io.ConnectionRequest` is one of the most widely used classes in the framework, and an app doing both networking and nearby transport -- which is most of them -- would have had to qualify one of the two at every mention.

Answer it with `accept()` or `reject()`. A request that is never answered times out on the far side, so answer every one -- and answer it promptly, because both platforms hold radio resources open meanwhile.

##### Show the token

`getAuthenticationToken()` is a short string both devices compute from the connection, and it is the only defense against a device in the middle pretending to be the one the user meant. Showing it on both screens and asking "do these match?" is what makes the pairing trustworthy; skipping that step is a choice to trust whoever answered first.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `accept()`
  Accepts the connection.
  `String`
  `getAuthenticationToken()`
  The short string both devices derive from this connection's key exchange.
  `Endpoint`
  `getEndpoint()`
  Who is asking.
  `boolean`
  `isAnswered()`
  Whether `accept()` or `reject()` has already been called.
  `void`
  `reject()`
  Rejects the connection.
  `String`
  `toString()`
  Returns a string representation of the object.

  ### Methods inherited from class Object

  `clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Method Details

  - ### getEndpoint

    public Endpoint getEndpoint()
    Who is asking.

  - ### getAuthenticationToken

    public String getAuthenticationToken()

    The short string both devices derive from this connection's key exchange. Identical on both sides when nothing is in the middle.

    Never null, and empty on iOS: MultipeerConnectivity offers no material to bind a token to, and inventing one from the service name and display names would produce matching digits at both ends of a relay. Treat empty as "this platform cannot answer the question".

  - ### isAnswered

    public boolean isAnswered()
    Whether `accept()` or `reject()` has already been called.

  - ### accept

    public void accept()
    Accepts the connection. The result arrives as `TransportListener.connected(Endpoint)` or `TransportListener.connectionFailed(Endpoint, NearbyException)`, because the far side has to accept too. Calling this twice, or after `reject()`, does nothing.

  - ### reject

    public void reject()
    Rejects the connection. Calling this twice, or after `accept()`, does nothing.

  - ### toString

    public String toString()
    Description copied from class: `Object`
    Returns a string representation of the object. In general, the toString method returns a string that "textually represents" this object. The result should be a concise but informative representation that is easy for a person to read. It is recommended that all subclasses override this method. The toString method for class Object returns a string consisting of the name of the class of which the object is an instance, the at-sign character `@', and the unsigned hexadecimal representation of the hash code of the object. In other words, this method returns a string equal to the value of: getClass().getName() + '@' + Integer.toHexString(hashCode())
    Overrides:
      `toString` in class `Object`