Class ArcGISRuntimeEnvironment
- java.lang.Object
-
- com.esri.arcgisruntime.ArcGISRuntimeEnvironment
-
public class ArcGISRuntimeEnvironment extends Object
Defines an ArcGIS Runtime Environment object.Contains methods that are global and affect the entire runtime environment. Also contains static methods to set up deployment licensing for an application.
The use of some members in the ArcGIS Runtime API requires a specific license level. Please refer to Licensing details by class.
- Since:
- 100.0.0
-
-
Constructor Summary
Constructors Constructor Description ArcGISRuntimeEnvironment()
-
Method Summary
All Methods Static Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static void
addArcadeConsoleMessageListener(ArcadeConsoleMessageListener listener)
Adds anArcadeConsoleMessageListener
that gets invoked whenever a console message is sent from any Arcade script.static String
getApiKey()
Gets the default API key to access API key enabled services and resources in ArcGIS Online.static String
getAPILabel()
Deprecated, for removal: This API element is subject to removal in a future version.As of 100.1.0, no replacement.static String
getApiVersion()
Returns the current API version.static String
getAPIVersion()
Deprecated, for removal: This API element is subject to removal in a future version.since 100.14.0.static float
getJavaVersion()
Deprecated, for removal: This API element is subject to removal in a future version.As of 100.1.0, the version of JVM can be obtained from the system property "java.version".static License
getLicense()
Gets the license details about the application.static File
getResourcesDirectory()
Returns the resources directory.static ServiceCurveGeometryMode
getServiceCurveGeometryMode()
Determines if curve geometries are fetched from and sent to services that support them.static void
initialize()
Initializes the runtime by loading dependencies such as the runtime and other client libraries.static boolean
isInitialized()
Indicates whether initialization was successful.static boolean
isLinux()
Checks if os.name contains Linux.static boolean
isOsx()
Checks if os.name contains os x.static boolean
isWindows()
Checks if os.name contains win.static boolean
removeArcadeConsoleMessageListener(ArcadeConsoleMessageListener listener)
Removes the givenArcadeConsoleMessageListener
if it is present.static void
setApiKey(String apiKey)
Sets the default API key to access API key enabled services and resources in ArcGIS Online.static void
setInstallDirectory(String installDirectory)
Sets the directory containing the runtime libraries and resources.static LicenseResult
setLicense(LicenseInfo licenseInfo)
Licenses the application using the given LicenseInfo, and returns aLicenseResult
indicating the outcome of the license operation.static LicenseResult
setLicense(String licenseKey)
Licenses the application for deployment using the given license string, and returns aLicenseResult
indicating the outcome of the license operation.static LicenseResult
setLicense(String licenseKey, List<String> extensions)
Licenses an application for deployment using an ESRI license string and one or more extension license strings.static void
setServiceCurveGeometryMode(ServiceCurveGeometryMode serviceCurveGeometryMode)
Determines if curve geometries are fetched from and sent to services that support them.
-
-
-
Method Detail
-
getJavaVersion
@Deprecated(since="100.1.0", forRemoval=true) public static float getJavaVersion()
Deprecated, for removal: This API element is subject to removal in a future version.As of 100.1.0, the version of JVM can be obtained from the system property "java.version".This property is deprecated and always returns 0.0.The version of JVM can be obtained from the system property "java.version".
- Returns:
- 0.0
-
getResourcesDirectory
public static File getResourcesDirectory()
Returns the resources directory. A resources directory is not always required by the Runtime so this method may return a value that does not exist.- Returns:
- the resources directory
- Throws:
IllegalStateException
- if the runtime has not been initialized- Since:
- 100.0.0
-
initialize
public static void initialize()
Initializes the runtime by loading dependencies such as the runtime and other client libraries.- Throws:
RuntimeException
- if there is a failure- Since:
- 100.0.0
-
isInitialized
public static boolean isInitialized()
Indicates whether initialization was successful.- Returns:
- true, if initialized; false otherwise
-
setInstallDirectory
public static void setInstallDirectory(String installDirectory)
Sets the directory containing the runtime libraries and resources. This is an optional call, used if you want to override the standard locations for a runtime install.- Parameters:
installDirectory
- directory containing the runtime libraries and resources- Throws:
RuntimeException
- if this is called after runtime has initializedNullPointerException
- if the input value is null- Since:
- 100.0.0
-
isLinux
public static boolean isLinux()
Checks if os.name contains Linux.- Returns:
- true, if is Linux
-
isWindows
public static boolean isWindows()
Checks if os.name contains win.- Returns:
- true, if is Windows
-
isOsx
public static boolean isOsx()
Checks if os.name contains os x.- Returns:
- true, if is OSX
-
getApiVersion
public static String getApiVersion()
Returns the current API version.- Returns:
- the API version
- Since:
- 100.14.0
-
getAPIVersion
@Deprecated(since="100.14.0", forRemoval=true) public static String getAPIVersion()
Deprecated, for removal: This API element is subject to removal in a future version.since 100.14.0. UsegetApiVersion()
instead.Returns the current API version.- Returns:
- the API version.
-
getAPILabel
@Deprecated(since="100.1.0", forRemoval=true) public static String getAPILabel()
Deprecated, for removal: This API element is subject to removal in a future version.As of 100.1.0, no replacement.Returns a label to identify this version of the API.- Returns:
- the API label
- Since:
- 100.0.0
-
setLicense
public static LicenseResult setLicense(String licenseKey)
Licenses the application for deployment using the given license string, and returns aLicenseResult
indicating the outcome of the license operation. TheLicenseResult
contains aLicenseStatus
ofINVALID
,EXPIRED
, orVALID
. A deployed application must call this method, which removes the watermark associated withLicenseLevel.DEVELOPER
.Note: If any licensed functionality (license level
LITE
,BASIC
,STANDARD
, orADVANCED
) is accessed before setting the license, an exception will be thrown.- Parameters:
licenseKey
- the ESRI license string. The license will have one of the following levels, defined in theLicenseLevel
enum:LITE
,BASIC
,STANDARD
, orADVANCED
.- Returns:
- the license result of attempting to set the main license
- Since:
- 100.0.0
- See Also:
setLicense(LicenseInfo)
,setLicense(String, List)
-
setLicense
public static LicenseResult setLicense(LicenseInfo licenseInfo)
Licenses the application using the given LicenseInfo, and returns aLicenseResult
indicating the outcome of the license operation.License info is for named-user access. A
LicenseInfo
can be obtained from a portal for the current logged in user by callingPortal.fetchLicenseInfoAsync()
. TheLicenseInfo
instance is only valid for 30 days, so the user will be required to log into the portal again when this expires.The
LicenseResult
returned by this method contains the license status, which will be one of the following values defined in theLicenseStatus
enum:VALID
,INVALID
,EXPIRED
(if the user's subscription on the portal has expired), orLOGIN_REQUIRED
(if the user needs to log in to the portal to renew theLicenseInfo
).- Parameters:
licenseInfo
- license information used for named-user access. Obtained from a portal.- Returns:
- the license result of attempting to set the main license
- Throws:
IllegalArgumentException
- if licenseInfo is null- Since:
- 100.0.0
- See Also:
setLicense(String)
,setLicense(String, List)
,LicenseStatus
-
setLicense
public static LicenseResult setLicense(String licenseKey, List<String> extensions)
Licenses an application for deployment using an ESRI license string and one or more extension license strings.- Parameters:
licenseKey
- the ESRI license string. The license will have one of the following levels, defined in theLicenseLevel
enum:LITE
,BASIC
,STANDARD
, orADVANCED
.extensions
- a list of extension license strings- Returns:
- the license result of attempting to set the main license
- Throws:
IllegalArgumentException
- if extensions is null- Since:
- 100.0.0
- See Also:
setLicense(String)
,setLicense(LicenseInfo)
-
getLicense
public static License getLicense()
Gets the license details about the application.The license details includes the
LicenseStatus
,LicenseLevel
, andLicenseType
values for the licensed application. It also contains the expiry date of the license or whether the provided license is perpetual.- Returns:
- the license details about the application
- Since:
- 100.0.0
- See Also:
setLicense(String)
,setLicense(LicenseInfo)
,setLicense(String, List)
-
setApiKey
public static void setApiKey(String apiKey)
Sets the default API key to access API key enabled services and resources in ArcGIS Online.An API key is a unique key used to authorize access to specific services and resources in ArcGIS Online. It is also used to monitor access to those services. An API key is created and managed in the ArcGIS developer dashboard and is tied to a specific ArcGIS account.
In addition to setting an API key at a global level for your application using
ArcGISRuntimeEnvironment.setApiKey(String)
, you can callApiKeyResource.setApiKey(String)
on any ArcGIS Runtime class that implementsApiKeyResource
. When you callsetApiKey(String)
on anAPIKeyResource
, it will override the default key at the global level (the key returned byArcGISRuntimeEnvironment.getApiKey()
, in other words), enabling more granular usage telemetry and management for ArcGIS Online resources used by your app.Classes that expose an API key property by implementing
APIKeyResource
include:- Parameters:
apiKey
- the default API key to access API key enabled services and resources in ArcGIS Online- Since:
- 100.10.0
- See Also:
getApiKey()
-
getApiKey
public static String getApiKey()
Gets the default API key to access API key enabled services and resources in ArcGIS Online.An API key is a unique key used to authorize access to specific services and resources in ArcGIS Online. It is also used to monitor access to those services. An API key is created and managed in the ArcGIS developer dashboard and is tied to a specific ArcGIS account.
In addition to setting an API key at a global level for your application using
ArcGISRuntimeEnvironment.setApiKey(String)
, you can callApiKeyResource.setApiKey(String)
on any ArcGIS Runtime class that implementsApiKeyResource
. When you callsetAPIKey(String)
on anAPIKeyResource
, it will override the default key at the global level (the key returned byArcGISRuntimeEnvironment.getApiKey()
, in other words), enabling more granular usage telemetry and management for ArcGIS Online resources used by your app.Classes that expose an API key property by implementing
APIKeyResource
include:- Returns:
- the default API key to access API key enabled services and resources in ArcGIS Online
- Since:
- 100.10.0
- See Also:
setApiKey(String)
-
getServiceCurveGeometryMode
public static ServiceCurveGeometryMode getServiceCurveGeometryMode()
Determines if curve geometries are fetched from and sent to services that support them.By default, curve geometries are not fetched from services that support curves, meaning that densified versions of any curve geometries are fetched from the service. To instead fetch original geometries with curve segments (those where
Geometry.hasCurves()
is true), set this property toServiceCurveGeometryMode.FETCH_CURVES
. Ensure that you do this before any calls to services are made, as it cannot be changed after the first request has begun.By default, Runtime indicates that is it not a true curve capable client when sending updates to services that support curves. This means that curve geometries stored in services where
ArcGISFeatureServiceInfo.isOnlyAllowTrueCurveUpdatesByTrueCurveClients()
is true cannot be updated by default. To update such geometries, ensure your app correctly handles curve segments (whereSegment.isCurve()
is true) in geometries throughout the workflow and set this property toServiceCurveGeometryMode.TRUE_CURVE_CLIENT
. You must do this before any calls to services are made - it cannot be changed after making the first request.For details of curve support in services, see ArcGIS REST API documentation.
For services that don't support curves, this value has no effect. It also has no effect on local data sources that may contain curve geometries, such as mobile geodatabases or mobile map packages created using ArcGIS Pro.
Some geometry operations do not support curve geometries; see
GeometryEngine
for details of curve support.SketchEditor
does not support curve geometries.- Returns:
- determines if curve geometries are fetched from and sent to services that support them
- Since:
- 100.12.0
- See Also:
Geometry.hasCurves()
-
setServiceCurveGeometryMode
public static void setServiceCurveGeometryMode(ServiceCurveGeometryMode serviceCurveGeometryMode)
Determines if curve geometries are fetched from and sent to services that support them.By default, curve geometries are not fetched from services that support curves, meaning that densified versions of any curve geometries are fetched from the service. To instead fetch original geometries with curve segments (those where
Geometry.hasCurves()
is true), set this property toServiceCurveGeometryMode.FETCH_CURVES
. Ensure that you do this before any calls to services are made, as it cannot be changed after the first request has begun.By default, Runtime indicates that is it not a true curve capable client when sending updates to services that support curves. This means that curve geometries stored in services where
ArcGISFeatureServiceInfo.isOnlyAllowTrueCurveUpdatesByTrueCurveClients()
is true cannot be updated by default. To update such geometries, ensure your app correctly handles curve segments in geometries throughout the workflow and set this property toServiceCurveGeometryMode.TRUE_CURVE_CLIENT
. You must do this before any calls to services are made - it cannot be changed after making the first request.For details of curve support in services, see ArcGIS REST API documentation.
For services that don't support curves, this value has no effect. It also has no effect on local data sources that may contain curve geometries, such as mobile geodatabases or mobile map packages created using ArcGIS Pro.
Some geometry operations do not support curve geometries; see
GeometryEngine
for details of curve support.SketchEditor
does not support curve geometries.- Parameters:
serviceCurveGeometryMode
- determines if curve geometries are fetched from and sent to services that support them- Throws:
IllegalArgumentException
- if serviceCurveGeometryMode is nullArcGISRuntimeException
- if attempt was made too late to change if curves are fetched from or sent to services- Since:
- 100.12.0
- See Also:
Geometry.hasCurves()
-
addArcadeConsoleMessageListener
public static void addArcadeConsoleMessageListener(ArcadeConsoleMessageListener listener)
Adds anArcadeConsoleMessageListener
that gets invoked whenever a console message is sent from any Arcade script.This callback allows clients to retrieve messages from evaluating an Arcade script expression in an attribute rule, labeling, popup, dictionary renderer, geotrigger, and more.
Adding this listener on the UI thread will cause it to be invoked on the UI thread, otherwise it is not guaranteed on which thread the listener is invoked.
- Parameters:
listener
- anArcadeConsoleMessageListener
that gets invoked whenever a console message is sent- Throws:
IllegalArgumentException
- if listener is null- Since:
- 100.14.0
- See Also:
removeArcadeConsoleMessageListener(ArcadeConsoleMessageListener)
-
removeArcadeConsoleMessageListener
public static boolean removeArcadeConsoleMessageListener(ArcadeConsoleMessageListener listener)
Removes the givenArcadeConsoleMessageListener
if it is present.- Parameters:
listener
- theArcadeConsoleMessageListener
to remove- Returns:
- true if the listener has been removed, otherwise false
- Throws:
IllegalArgumentException
- if listener is null- Since:
- 100.14.0
- See Also:
addArcadeConsoleMessageListener(ArcadeConsoleMessageListener)
-
-