Migration Notes
Migrate to 9.3
- Minimum Android SDK Version was raised to Android 5.1 (API level 22)
- Update
minSdkVersion
to 22 inbuild.gradle
or the manifest of your app.
- Update
Migrate from 8.9.1 to 8.10
- Minimum Android SDK Version was raised to Android 5.0 (API level 21)
- Update
minSdkVersion
to 21 inbuild.gradle
or the manifest of your app.
- Update
Migrate from 8.3.2 to 8.4
ArchitectView
- deprecated:
getSupportedFeaturesForDevice(Context)
isDeviceSupported(Context)
isDeviceSupported(Context, int)
- added:
isDeviceSupporting(Context, EnumSet<Feature>)
is now the preferred way to check if the current device supports the required features
- deprecated:
Migrate from 8.2 to 8.3
ArchitectView
changed:
onCreate
:- may throw
MissingFeatureException
when the features set in theStartupConfiguration
are not supported by the device. - may throw
CamNotAccessibleException
when no camera could be found or accessed
- may throw
onResume
:- may throw
CamNotAccessibleException
when camera permissions are not granted or no camera could be found or accessed
- may throw
- The following methods may only be called after
onCreate
and beforeonDestroy
:clearCache
callJavascript
destroyObjects
onLowMemory
setCullingDistance
getCullingDistance
setLocation
registerWorldLoadedListener
- The following methods may only be called after
onPostCreate
and beforeonDestroy
:captureScreen
load
registerSensorAccuracyChangeListener
unregisterSensorAccuracyChangeListener
removed:
getAvailableCameraFocusModes
getAvailableCameraPositions
getCameraFocusMode
getCameraManualFocusDistance
getCameraMaxZoomLevel
getCameraZoomLevel
setCameraLifecycleListener
setCameraManualFocusDistance
setCameraPositionSimple
setFlashEnabled
Use
AR.hardware.camera.*
of the JS API instead of the removed java methods
Migrate from 8.1 to 8.2
- JS API:
AR.ImageTrackable
onDragBegan
,onDragChanged
,onDragEnded
now receive ray-plane-intersection coordinates as two additional input float parameters - these parameters allow the drag gesture to be rotationally invariant and provide absolute positions for it
AR.ObjectTrackable
onDragBegan
,onDragChanged
,onDragEnded
now receive ray-plane-intersection coordinates as two additional input float parameters - these parameters allow the drag gesture to be rotationally invariant and provide absolute positions for it
Migrage from 7.2 to 8.0
ArchitectStartupConfiguration
:Features
;- removed:
Tracking2D
useImageTracking
instead
- removed:
ArchitectView
- removed:
registerUrlListener
useaddArchitectJavascriptInterfaceListener
insteadonCreate(String)
useonCreate(ArchitectStartupConfiguration)
insteadgetSdkVersion
usegetSDKVersion
insteadclearAppCache
useclearCache
insteadsetDisplayMode3dInCore
useWearableArchitectView.setStereoscopic3dRenderingEnabled
insteadregisterPlugin(Plugin)
registerPlugin(Plugin, PluginErrorCallback)
registerNativePlugins(String)
registerNativePlugins(String, String)
getRegisteredPlugins
- removed:
- ARCore support:
com.google.ar:core:1.1.0+
has to be added as dependency of the app<meta-data android:name="com.google.ar.core" android:value="optional"/>
or<meta-data android:name="com.google.ar.core" android:value="required"/>
have to be added to the manifest.- minimum ARCore version 1.1.
Migrate from 7.1 to 7.2
- JS API:
AR.InstantTracker
- new method
canStartTracking
- new constructor parameter
smartEnabled
- when running with platform assisted tracking, some functionality is not available; these functions will raise an error through the error callback when called regardless
trackingplaneOrientation
- new method
AR.hardware.camera
- new property
AR.hardware.smart.deviceSupported
- should be used to guard methods that are not available when running with platform assisted tracking
- when running with platform assisted tracking, some functionality is not available; these functions will raise an error through the error callback when called regardless
enabled
features
flashLight
flashlightAvailable
focusDistance
focusMode
manualFocusAvailable
position
zoom
- new property
Migrate from 7.0 to 7.1
- no changes required
Migrate from 6.1 to 7.0
- Minimum Android SDK Version was raised to Android 4.4(19)
- Update
minSdkVersion
to 19 in build.gradle or the manifest of your App.
- Update
- Plugins API:
- Plugin.h
- deprecated:
void update(const std::list<RecognizedTarget>& recognizedTargets_)
. Usevoid update(const RecognizedTargetsBucket& recognizedTargetsBucket_)
instead.
- deprecated:
- RecognizedTarget.h
- deprecated class
RecognizedTarget
. UseImageTarget
instead.
- deprecated class
- Plugin.h
Migrate from 6.0 to 6.1
ArchitectView
:- deprecated:
- added:
registerPlugin(Plugin plugin, PluginManager.PluginErrorCallback pluginCallback)
registerNativePlugins(String libraryName, PluginManager.PluginErrorCallback pluginCallback)
registerNativePlugins(String libraryName, String pluginName, PluginManager.PluginErrorCallback pluginCallback)
addArchitectJavaScriptInterfaceListener
PluginManager
- added:
- JS API:
- deprecated js->platform communication with document.location("architectsdk://")
- added new api
AR.platform.sendJSONObject
for js->platform communication. The object passed with sendJSONObject can be received withArchitectJavaScriptInterfaceListener.onJSONObjectReceived
Migrate from 5.3 to 6.0
- Java API:
- Plugins:
Plugin.java
got moved fromcom.wikitude.architect.plugins
tocom.wikitude.common.plugins
- ArchitectView as parameter of Plugin removed
- JniRegistration function name has to be changed to Java_com_wikitude_common_plugins_internal_PluginManagerInternal_createNativePlugins
- Input Plugin:
- deprecated:
notifyRawCameraFieldOfViewChanged
no longer usednotifyDynamicCameraFieldOfViewChanged
usegetCameraFrameSettings->setFrameFieldOfView
insteadgetInputFrameColorSpace
usegetCameraFrameSettings->setInputFrameColorSpace
insteadgetInputFrameSize
usegetCameraFrameSettings->setInputFrameSize
instead
- deprecated:
- StartupConfiguration:
- removed use
ArchitectStartupConfiguration
instead - moved
StartupConfiguration.CameraPosition
toCameraSettings.CameraPosition
- removed use
- new class
ArchitectStartupConfiguration
:- parameters are set by setters instead of as constructor parameters like in the StartupConfiguration
- ArchitectView:
- moved
ArchitectView.CameraFocusMode
toCameraSettings.CameraFocusMode
- deprecated:
- member
getSdkVersion
use staticgetSDKVersion
instead
- member
- moved
- Plugins:
- JS API:
- The JS API is fully backwards compatible with SDK 5
- Positioning:
- AR.Drawable these changes affect all Drawables (e.g. AR.ImageDrawable, AR.Model):
- removed:
roll
userotate.z
orrotate.global.z
insteadtilt
userotate.x
orrotate.global.x
insteadheading
userotate.y
orrotate.global.y
instead
- deprecated:
rotate.tilt
userotate.x
orrotate.global.x
insteadrotate.heading
use rotate.y orrotate.global.y
insteadrotate.roll
userotate.z
orrotate.global.z
instead
- removed:
- AR.Drawable2D:
- removed:
scaling
usescale.x
andscale.y
instead
- deprecated:
offsetX
usetranslate.x
ortranslate.global.x
insteadoffsetY
usetranslate.y
ortranslate.global.y
instead
- removed:
- AR.Drawable these changes affect all Drawables (e.g. AR.ImageDrawable, AR.Model):
- Trackers:
- removed:
AR.Tracker
AR.Trackable2DObject
:- getDistance
- height
- width
- deprecated:
AR.ClientTracker
useAR.TargetCollectionResource
with anAR.ImageTracker
insteadAR.CloudTracker
useAR.CloudRecognitionService
with anAR.ImageTracker
insteadAR.Trackable2DObject
useAR.ImageTrackable
insteadAR.Trackable2DObject
:onEnterFieldOfVision
useonImageRecognized
insteadonExitFieldOfVision
useonImageLost
instead
- removed:
- AR.ActionRange:
- removed:
- geoLocation
- positionX
- positionY
- width
- removed:
Migrate from 5.2 to 5.3
- ArchitectView
- New method
isDeviceSupported(Context, StartupConfiguration.Features)
) which returns aMissingDeviceFeatures
object containing if device features are missing and a message describing which device features are missing.
- New method
Migrate from 4.1 to 5.0
- Projects now require Android 4.0+
Migrate from 4.0 to 4.1
ArchitectView
ArchitectView.ArchitectConfig
has been replaced by the new classStartupConfiguration
ArchitectView.ARMode
has been replaced by the new interfaceStartupConfiguration.Features
- the method
getSupportedARModeForDevice()
has been renamed togetSupportedFeaturesForDevice()
) - the method
getVersionNumber()
has been renamed togetSdkVersion()
)
The Wikitude SDK 4.1 introduces a new file format for target collections (wtc). In order to unleash the full power of the new Wikitude SDK 4.1 read this section and re-generate your targets. The old format is deprecated and will be removed in future versions.
Migrate from 3.3 to 4.0
- Make sure to set the required permissions for your application when using the new
AR.context.hardware.flashlight
API. - Starting with Wikitude SDK 4.0 a valid license key is mandatory for starting the SDK. An empty license key will block the SDK. A free trial key can be generated on the license page (free account required).
- The Wikitude SDK 4.0 introduces a new file format for target collections (wtc). In order to unleash the full power of the new Wikitude SDK 4.0 read this section and re-generate your targets.
In Version 4.0 of our SDK, we changed the initialization procedure, and we open the camera immediately when the ArchitectView is initialized, to improve the overall performance. You should not call
Camera.open()
afterArchitectView.onCreate()
, if you need any information about the camera, you can open (and then close) it before initializing the ArchitectView.Any other operation on the camera when the ArchitectView is active is actually "undefined behaviour" and was not supposed to work even in previous SDK versions.
Migrate from 3.2 to 3.3
The SDK is compatible with Android 4.4, so we recommend to update ADT to the latest version and set the target SDK version to '19' in your Android Manifest XML file.
Migrate from 3.1 to 3.2
ArchitectUrlListener
and SensorAccuracyChangeListener
are now inner interfaces of the ArchitectView
class. Update your imports in your Android code accordingly to get rid of compile time errors (ArchitectUrlListener
becomes ArchitectView.ArchitectUrlListener
).
Migrate from 3.0 to 3.1
Image Recognition and Tracking
The image recognition engine of Wikitude SDK 3.1 has been updated resulting in shorter time interval to successfully recognize a target image. As a consequence the format of the digital footprint of target image has changed. The format is backward compatible. Developers still can use target collections (.wtc) generated with Wikitude SDK 3.0 (prior to 27th August 2013) together with the SDK 3.1 and vice versa.
However we recommend to generate your target collections again in the Target Manager Tool and update the files when you are using Wikitude SDK 3.1
HTML Drawables
Developers using HTML Drawables in projects prior to Wikitude SDK 3.1 and like to upgrade to 3.1 need to define the viewportHeight
similar to the already defined viewportWidth
. In addition HTML Drawables do not have to be created as static or dynamic anymore. All are created as dynamic ones.
Migrate from 2.0 to 3.0
Wikitude SDK version 3.0 introduces Wikitude's own image recognition and tracking solution and removes support for the Vuforia Plugin.
If you are not using image recognition features in your app you only need to update the jar file and are good to go.
In case you are making use of image recognition features and want to switch from 2.0 to 3.x version remove any Qualcomm/Vuforia related assets (QCAR.so, QCAR.lib) from your project.
Also the READ_PHONE_STATE
permission is no longer required in your AndroidManifest.xml.
Find a step-by-step guide about how to convert your existing target collection from Vuforia to Wikitude here.