# Print output for @column tags ?>
public
abstract
class
SocketKeepalive
extends Object
implements
AutoCloseable
java.lang.Object | |
↳ | android.net.SocketKeepalive |
Allows applications to request that the system periodically send specific packets on their
behalf, using hardware offload to save battery power.
To request that the system send keepalives, call one of the methods that return a
SocketKeepalive
object, such as ConnectivityManager#createSocketKeepalive
,
passing in a non-null callback. If the SocketKeepalive
is successfully
started, the callback's onStarted
method will be called. If an error occurs,
onError
will be called, specifying one of the ERROR_*
constants in this
class.
To stop an existing keepalive, call SocketKeepalive#stop
. The system will call
SocketKeepalive.Callback#onStopped
if the operation was successful or
SocketKeepalive.Callback#onError
if an error occurred.
For cellular, the device MUST support at least 1 keepalive slot.
For WiFi, the device SHOULD support keepalive offload. If it does not, it MUST reply with
SocketKeepalive.Callback#onError
with ERROR_UNSUPPORTED
to any keepalive offload
request. If it does, it MUST support at least 3 concurrent keepalive slots.
Nested classes | |
---|---|
class |
SocketKeepalive.Callback
The callback which app can use to learn the status changes of |
Constants | |
---|---|
int |
ERROR_HARDWARE_ERROR
The hardware returned an error. |
int |
ERROR_INSUFFICIENT_RESOURCES
The limitation of resource is reached. |
int |
ERROR_INVALID_INTERVAL
The packet transmission interval is invalid (e.g., too short). |
int |
ERROR_INVALID_IP_ADDRESS
The specified IP addresses are invalid. |
int |
ERROR_INVALID_LENGTH
The packet length is invalid (e.g., too long). |
int |
ERROR_INVALID_NETWORK
The specified |
int |
ERROR_INVALID_PORT
The requested port is invalid. |
int |
ERROR_INVALID_SOCKET
The target socket is invalid. |
int |
ERROR_SOCKET_NOT_IDLE
The target socket is not idle. |
int |
ERROR_UNSUPPORTED
The device does not support this request. |
Public methods | |
---|---|
final
void
|
close()
Deactivate this |
final
void
|
start(int intervalSec)
Request that keepalive be started with the given |
final
void
|
stop()
Requests that keepalive be stopped. |
Inherited methods | |
---|---|
public static final int ERROR_HARDWARE_ERROR
The hardware returned an error.
Constant Value: -31 (0xffffffe1)
public static final int ERROR_INSUFFICIENT_RESOURCES
The limitation of resource is reached.
Constant Value: -32 (0xffffffe0)
public static final int ERROR_INVALID_INTERVAL
The packet transmission interval is invalid (e.g., too short).
Constant Value: -24 (0xffffffe8)
public static final int ERROR_INVALID_IP_ADDRESS
The specified IP addresses are invalid. For example, the specified source IP address is
not configured on the specified Network
.
Constant Value: -21 (0xffffffeb)
public static final int ERROR_INVALID_LENGTH
The packet length is invalid (e.g., too long).
Constant Value: -23 (0xffffffe9)
public static final int ERROR_INVALID_NETWORK
The specified Network
is not connected.
Constant Value: -20 (0xffffffec)
public static final int ERROR_INVALID_PORT
The requested port is invalid.
Constant Value: -22 (0xffffffea)
public static final int ERROR_INVALID_SOCKET
The target socket is invalid.
Constant Value: -25 (0xffffffe7)
public static final int ERROR_SOCKET_NOT_IDLE
The target socket is not idle.
Constant Value: -26 (0xffffffe6)
public static final int ERROR_UNSUPPORTED
The device does not support this request.
Constant Value: -30 (0xffffffe2)
public final void close ()
Deactivate this SocketKeepalive
and free allocated resources. The instance won't be
usable again if close()
is called.
public final void start (int intervalSec)
Request that keepalive be started with the given intervalSec
. See
SocketKeepalive
. If the remote binder dies, or the binder call throws an exception
when invoking start or stop of the SocketKeepalive
, a RemoteException
will be
thrown into the executor
. This is typically not important to catch because the remote
party is the system, so if it is not in shape to communicate through binder the system is
probably going down anyway. If the caller cares regardless, it can use a custom
Executor
to catch the RemoteException
.
Parameters | |
---|---|
intervalSec |
int : The target interval in seconds between keepalive packet transmissions.
The interval should be between 10 seconds and 3600 seconds, otherwise
ERROR_INVALID_INTERVAL will be returned.
Value is between MIN_INTERVAL_SEC and MAX_INTERVAL_SEC inclusive |
public final void stop ()
Requests that keepalive be stopped. The application must wait for Callback#onStopped
before using the object. See SocketKeepalive
.