public class GatewayDevice extends DirectlyConnectedDevice
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
DEVICE_CLASS
The
deviceClass attribute. |
static java.lang.String |
MANUFACTURER
The
manufacturer attribute. |
static java.lang.String |
MODEL_NUMBER
The
modelNumber attribute. |
static java.lang.String |
PROTOCOL
The
protocol attribute. |
static java.lang.String |
PROTOCOL_DEVICE_CLASS
The
protocolDeviceClass attribute. |
static java.lang.String |
PROTOCOL_DEVICE_ID
The
protocolDeviceId attribute. |
static java.lang.String |
SERIAL_NUMBER
The
serialNumber attribute. |
Constructor and Description |
---|
GatewayDevice()
Constructs a new
GatewayDevice instance that will use a
custom or default TrustedAssetsManager to store, load and handle the device
configuration. |
GatewayDevice(java.lang.Object context)
Constructs a new
GatewayDevice instance with a
platform specific context. |
GatewayDevice(java.lang.String configFilePath,
java.lang.String configFilePassword)
Constructs a new
GatewayDevice instance that will load
the device configuration from the given file path and password. |
GatewayDevice(java.lang.String configFilePath,
java.lang.String configFilePassword,
java.lang.Object context)
Constructs a new
GatewayDevice instance with platform
specific context. |
Modifier and Type | Method and Description |
---|---|
java.lang.String |
registerDevice(boolean restricted,
java.lang.String hardwareId,
java.util.Map<java.lang.String,java.lang.String> metaData,
java.lang.String... deviceModels)
Register an indirectly-connected device with the cloud service and specify whether
the gateway device is required to have the appropriate credentials for activating
the indirectly-connected device.
|
java.lang.String |
registerDevice(java.lang.String hardwareId,
java.util.Map<java.lang.String,java.lang.String> metaData,
java.lang.String... deviceModels)
Register an indirectly-connected device with the cloud service.
|
activate, close, createStorageObject, createVirtualDevice, getDeviceModel, getEndpointId, isActivated
public static final java.lang.String MANUFACTURER
manufacturer
attribute. This attribute is to be used
when setting the manufacturer
value in the meta-data.public static final java.lang.String MODEL_NUMBER
modelNumber
attribute. This attribute is to be used
when setting the modelNumber
value in the meta-data.public static final java.lang.String SERIAL_NUMBER
serialNumber
attribute. This attribute is to be used
when setting the serialNumber
value in the meta-data.public static final java.lang.String DEVICE_CLASS
deviceClass
attribute. This attribute is to be used
when setting the deviceClass
value in the meta-data.public static final java.lang.String PROTOCOL
protocol
attribute. This attribute is to be used
when setting the protocol
value in the meta-data.public static final java.lang.String PROTOCOL_DEVICE_CLASS
protocolDeviceClass
attribute. This attribute is to be used
when setting the protocolDeviceClass
value in the meta-data.public static final java.lang.String PROTOCOL_DEVICE_ID
protocolDeviceId
attribute. This attribute is to be used
when setting the protocolDeviceId
value in the meta-data.public GatewayDevice() throws java.security.GeneralSecurityException
GatewayDevice
instance that will use a
custom or default TrustedAssetsManager
to store, load and handle the device
configuration.java.security.GeneralSecurityException
- if the configuration could not be loaded.public GatewayDevice(java.lang.String configFilePath, java.lang.String configFilePassword) throws java.security.GeneralSecurityException
GatewayDevice
instance that will load
the device configuration from the given file path and password.
See configuration for details.configFilePath
- the path of the configuration fileconfigFilePassword
- the configuration file password,
or null
if the configurationFile is not encryptedjava.security.GeneralSecurityException
- if the configuration could not be
loaded.public GatewayDevice(java.lang.Object context) throws java.security.GeneralSecurityException
GatewayDevice
instance with a
platform specific context. A custom or default TrustedAssetsManager
will be used to store, load and handle the device trust material.
See configuration for details.context
- a platform specific object (e.g. application context),
that needs to be associated with this client. In
the case of Android, this is an android.content.Context
provided by the application or service. In the case of Java SE,
the parameter is not used and the value may be null
.java.security.GeneralSecurityException
- if the trust material could not be
loaded.public GatewayDevice(java.lang.String configFilePath, java.lang.String configFilePassword, java.lang.Object context) throws java.security.GeneralSecurityException
GatewayDevice
instance with platform
specific context. The device configuration will be loaded
from the given file path and password.
See configuration for details.configFilePath
- the path of the configuration fileconfigFilePassword
- the configuration file password,
or null
if the configurationFile is not encryptedcontext
- a platform specific object (e.g. application context),
that needs to be associated with this client. In
the case of Android, this is an android.content.Context
provided by the application or service. In the case of Java SE,
the parameter is not used and the value may be null
.java.security.GeneralSecurityException
- if the configuration could not be
loaded.public java.lang.String registerDevice(java.lang.String hardwareId, java.util.Map<java.lang.String,java.lang.String> metaData, java.lang.String... deviceModels) throws java.io.IOException, java.security.GeneralSecurityException
registerDevice(false, hardwareId, metaData, deviceModels)
.hardwareId
- an identifier unique within the cloud service instancemetaData
- The meta-data of the devicedeviceModels
- should contain the device model type URNs supported by the indirectly connected device.
The deviceModels
parameter is one or more, comma separated, device model URNs.java.io.IOException
- if the message could not be sentjava.security.GeneralSecurityException
- when key or signature algorithm class
cannot be loaded, or the key is not in
the trusted assets store, or the
private key is invalidjava.lang.IllegalArgumentException
- if hardwareId
is null,
or deviceModels
is null or zero lengthregisterDevice(boolean, String, Map, String...)
public java.lang.String registerDevice(boolean restricted, java.lang.String hardwareId, java.util.Map<java.lang.String,java.lang.String> metaData, java.lang.String... deviceModels) throws java.io.IOException, java.security.GeneralSecurityException
The restricted
parameter controls whether or not the client
library is required to supply credentials for activating
the indirectly-connected device. The client library will
always supply credentials for an indirectly-connected
device whose trusted assets have been provisioned to the client.
If, however, the trusted assets of the indirectly-connected device
have not been provisioned to the client, the client library can
create credentials that attempt to restrict the indirectly connected
device to this gateway device.
Pass true
for the restricted
parameter
to ensure the indirectly-connected device cannot be activated
by this gateway device without presenting credentials. If restricted
is true
, the client library will provide credentials to the server.
The server will reject the activation request if the indirectly connected
device is not allowed to roam to this gateway device.
Pass false
to allow the indirectly-connected device to be activated
without presenting credentials if the trusted assets of the
indirectly-connected device have not been provisioned to the client.
If restricted
is false
, the client library will provide
credentials if, and only if, the credentials have been provisioned to the
client. The server will reject the activation if credentials are required
but not supplied, or if the provisioned credentials do not allow the
indirectly connected device to roam to this gateway device.
The hardwareId
is a unique identifier within the cloud service
instance and may not be null
. If one is not present for the device,
it should be generated based on other metadata such as: model, manufacturer,
serial number, etc.
The metaData
Map should typically contain all the standard
metadata (the constants documented in this class) along with any other
vendor defined metadata.
restricted
- indicate whether or not credentials are required for
activating the indirectly connected devicehardwareId
- an identifier unique within the Cloud Service instancemetaData
- The metadata of the devicedeviceModels
- should contain the device model type URNs supported by the indirectly connected device.
The deviceModels
parameter is one or more, comma separated, device model URNs.java.io.IOException
- if the message could not be sentjava.security.GeneralSecurityException
- when key or signature algorithm class
cannot be loaded, or the key is not in
the trusted assets store, or the
private key is invalidjava.lang.IllegalArgumentException
- if hardwareId
is null,
or deviceModels
is null or zero length