|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectandroid.content.BroadcastReceiver
org.teleal.cling.android.AndroidWifiSwitchingRouter
public class AndroidWifiSwitchingRouter
Wrapping a regular RouterImpl
, making it on/off switchable.
This implementation listens to connectivity changes in an Android environment (register for
intent "android.net.conn.CONNECTIVITY_CHANGE"
). It then enables/disables UPnP
network transport whenever the WiFi network interface is turned on/off.
While WiFi is switched off, only mock responses (mostly null
) will be returned
from this network transport layer, and all operations are NOOPs.
If the router can't be switched on after a connectivity change (e.g. an exception occurs during
socket binding), a warning log message will be printed. You can customize this behavior by
overriding handleRouterFailure(org.teleal.cling.transport.spi.InitializationException)
.
Constructor Summary | |
---|---|
AndroidWifiSwitchingRouter(UpnpServiceConfiguration configuration,
ProtocolFactory protocolFactory,
android.net.wifi.WifiManager wifiManager,
android.net.ConnectivityManager connectivityManager)
|
Method Summary | |
---|---|
void |
broadcast(byte[] bytes)
Call this method to broadcast a UDP message to all hosts on the network. |
UpnpServiceConfiguration |
getConfiguration()
|
protected android.net.ConnectivityManager |
getConnectivityManager()
|
int |
getLocalStreamPort(InetAddress address)
|
NetworkAddressFactory |
getNetworkAddressFactory()
|
ProtocolFactory |
getProtocolFactory()
|
protected android.net.wifi.WifiManager |
getWifiManager()
|
protected void |
handleRouterFailure(InitializationException ex)
|
void |
onReceive(android.content.Context c,
android.content.Intent intent)
|
void |
received(IncomingDatagramMessage msg)
This method is called internally by the transport layer when a datagram, either unicast or multicast, has been received. |
void |
received(UpnpStream stream)
This method is called internally by the transport layer when a TCP stream connection has been made and a response has to be returned to the sender. |
void |
send(OutgoingDatagramMessage msg)
Call this method to send a UDP datagram message. |
StreamResponseMessage |
send(StreamRequestMessage msg)
Call this method to send a TCP (HTTP) stream message. |
void |
shutdown()
Unbinds all sockets and stops all listening threads for datagrams and streams. |
Methods inherited from class android.content.BroadcastReceiver |
---|
abortBroadcast, clearAbortBroadcast, getAbortBroadcast, getDebugUnregister, getResultCode, getResultData, getResultExtras, isInitialStickyBroadcast, isOrderedBroadcast, peekService, setDebugUnregister, setOrderedHint, setResult, setResultCode, setResultData, setResultExtras |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public AndroidWifiSwitchingRouter(UpnpServiceConfiguration configuration, ProtocolFactory protocolFactory, android.net.wifi.WifiManager wifiManager, android.net.ConnectivityManager connectivityManager)
Method Detail |
---|
public UpnpServiceConfiguration getConfiguration()
getConfiguration
in interface Router
public ProtocolFactory getProtocolFactory()
getProtocolFactory
in interface Router
protected android.net.wifi.WifiManager getWifiManager()
protected android.net.ConnectivityManager getConnectivityManager()
public void onReceive(android.content.Context c, android.content.Intent intent)
onReceive
in class android.content.BroadcastReceiver
protected void handleRouterFailure(InitializationException ex)
public NetworkAddressFactory getNetworkAddressFactory()
getNetworkAddressFactory
in interface Router
public int getLocalStreamPort(InetAddress address)
getLocalStreamPort
in interface Router
address
- A bound address of a local network interface.
0
if
the given address was not managed by this router.public void shutdown()
Router
shutdown
in interface Router
public void received(IncomingDatagramMessage msg)
Router
This method is called internally by the transport layer when a datagram, either unicast or multicast, has been received. An implementation of this interface has to handle the received message, e.g. selecting and executing a UPnP protocol. This method should not block until the execution completes, the calling thread should be free to handle the next reception as soon as possible.
received
in interface Router
msg
- The received datagram message.public void received(UpnpStream stream)
Router
This method is called internally by the transport layer when a TCP stream connection has been made and a response has to be returned to the sender. An implementation of this interface has to handle the received stream connection and return a response, e.g. selecting and executing a UPnP protocol. This method should not block until the execution completes, the calling thread should be free to process the next reception as soon as possible. Typically this means starting a new thread of execution in this method.
received
in interface Router
public void send(OutgoingDatagramMessage msg)
Router
Call this method to send a UDP datagram message.
send
in interface Router
msg
- The UDP datagram message to send.public StreamResponseMessage send(StreamRequestMessage msg)
Router
Call this method to send a TCP (HTTP) stream message.
send
in interface Router
msg
- The TCP (HTTP) stream message to send.
public void broadcast(byte[] bytes)
Router
Call this method to broadcast a UDP message to all hosts on the network.
broadcast
in interface Router
bytes
- The byte payload of the UDP datagram.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |