java.lang.Object | |
↳ | android.net.VpnService.Builder |
Helper class to create a VPN interface. This class should be always
used within the scope of the outer VpnService
.
Public Constructors | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Public Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Convenience method to add a network address to the VPN interface
using a numeric address string.
| |||||||||||
Add a network address to the VPN interface.
| |||||||||||
Add a DNS server to the VPN connection.
| |||||||||||
Convenience method to add a DNS server to the VPN connection
using a numeric address string.
| |||||||||||
Add a network route to the VPN interface.
| |||||||||||
Convenience method to add a network route to the VPN interface
using a numeric address string.
| |||||||||||
Add a search domain to the DNS resolver.
| |||||||||||
Create a VPN interface using the parameters supplied to this
builder.
| |||||||||||
Set the
PendingIntent to an activity for users to
configure the VPN connection. | |||||||||||
Set the maximum transmission unit (MTU) of the VPN interface.
| |||||||||||
Set the name of this session.
|
[Expand]
Inherited Methods | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
From class
java.lang.Object
|
Convenience method to add a network address to the VPN interface
using a numeric address string. See InetAddress
for the
definitions of numeric address formats.
IllegalArgumentException | if the address is invalid. |
---|
Add a network address to the VPN interface. Both IPv4 and IPv6
addresses are supported. At least one address must be set before
calling establish()
.
IllegalArgumentException | if the address is invalid. |
---|
Add a DNS server to the VPN connection. Both IPv4 and IPv6 addresses are supported. If none is set, the DNS servers of the default network will be used.
IllegalArgumentException | if the address is invalid. |
---|
Convenience method to add a DNS server to the VPN connection
using a numeric address string. See InetAddress
for the
definitions of numeric address formats.
IllegalArgumentException | if the address is invalid. |
---|
Add a network route to the VPN interface. Both IPv4 and IPv6 routes are supported.
IllegalArgumentException | if the route is invalid. |
---|
Convenience method to add a network route to the VPN interface
using a numeric address string. See InetAddress
for the
definitions of numeric address formats.
IllegalArgumentException | if the route is invalid. |
---|
Add a search domain to the DNS resolver.
Create a VPN interface using the parameters supplied to this
builder. The interface works on IP packets, and a file descriptor
is returned for the application to access them. Each read
retrieves an outgoing packet which was routed to the interface.
Each write injects an incoming packet just like it was received
from the interface. The file descriptor is put into non-blocking
mode by default to avoid blocking Java threads. To use the file
descriptor completely in native space, see
detachFd()
. The application MUST
close the file descriptor when the VPN connection is terminated.
The VPN interface will be removed and the network will be
restored by the system automatically.
To avoid conflicts, there can be only one active VPN interface at the same time. Usually network parameters are never changed during the lifetime of a VPN connection. It is also common for an application to create a new file descriptor after closing the previous one. However, it is rare but not impossible to have two interfaces while performing a seamless handover. In this case, the old interface will be deactivated when the new one is created successfully. Both file descriptors are valid but now outgoing packets will be routed to the new interface. Therefore, after draining the old file descriptor, the application MUST close it and start using the new file descriptor. If the new interface cannot be created, the existing interface and its file descriptor remain untouched.
An exception will be thrown if the interface cannot be created
for any reason. However, this method returns null
if the
application is not prepared or is revoked. This helps solve
possible race conditions between other VPN applications.
ParcelFileDescriptor
of the VPN interface, or
null
if the application is not prepared.IllegalArgumentException | if a parameter is not accepted by the operating system. |
---|---|
IllegalStateException | if a parameter cannot be applied by the operating system. |
SecurityException | if the service is not properly declared
in AndroidManifest.xml . |
Set the PendingIntent
to an activity for users to
configure the VPN connection. If it is not set, the button
to configure will not be shown in system-managed dialogs.
Set the maximum transmission unit (MTU) of the VPN interface. If it is not set, the default value in the operating system will be used.
IllegalArgumentException | if the value is not positive. |
---|
Set the name of this session. It will be displayed in system-managed dialogs and notifications. This is recommended not required.