Android Framework API References
Initialization Method
GlamAr.init(
context: Context,
accessKey: String,
overrides: GlamAROverrides? = null,
webView: WebView? = null,
debug: Boolean = false
)
Parameter Descriptions
| Parameter | Type | Required | Description |
|---|---|---|---|
| context | Context | Yes | The Android context, typically passed from an Activity or Fragment. Used for WebView creation and permission handling. |
| accessKey | String | Yes | Your unique Access key to authenticate the SDK usage. |
| overrides | GlamAROverrides? | No | Optional configuration object to control AR behavior, UI, and metadata. See GlamAROverrides for details. |
| webView | WebView? | No | If provided, the SDK will use this WebView instance instead of creating a new one. Allows full control over rendering. Defaults to null. |
| debug | Boolean | No | Enables detailed logging from the SDK. Useful for development/debugging. Defaults to false. |
GlamAROverrides allows developers to customize the behavior, appearance, and initialization of the GlamAR SDK when integrating it into an Android app.
You can pass this configuration object directly into the SDK initialization:
GlamAr.initialize(
context = this,
accessKey = "your-access-key",
overrides = GlamAROverrides(...) // ← Custom behavior here
)
GlamAROverrides Structure
category: String?
Defines the initial AR category (e.g. sunglasses, necklace,earrings). Optional.
Full Example
val overrides = GlamAROverrides(
category = "sunglasses",
)
Post-Initialization Methods
applyBySku
GlamAr.applyBySku(skuId);
Load a virtual try-on using applyBySku method and passing the relevant SKU Id.
Return Value: None
| Parameters | Type | Description |
|---|---|---|
| SKU Id | string | A SKU ID. |
applyByCategory
GlamAr.applyByCategory(subcategory);
Pass a subcategory (e.g.,
sunglasses,necklace,earrings), which the SDK will use to fetch all corresponding SKUs from the Console’s product inventory.
Return Value: None
| Parameters | Type | Description | Options |
|---|---|---|---|
| subcateogry | string | Pass any compatible subcategory |
|
applyMultipleConfigData
GlamAr.applyMultipleConfigData(skuConfigArray);
Display multiple SKU types at once. The input should be an array of sku configs. Each item can be of diffrent subcategory eg:
sunglasses,caps,earrings, etc.
Return Value: None
| Parameters | Type | Description |
|---|---|---|
| skuConfigArray | object | An Array of SKU Configs |
Following is an example of above skuConfigArray for applyMultipleConfigData.
data class EffectAsset3D(
val id: String,
val url: String
)
data class EnvSettings(
val useDefaultEnvironment: Boolean
)
data class ArEffect(
val envSettings: EnvSettings,
val effectAssets3D: List<EffectAsset3D>
)
data class SkuConfig(
val category: String,
val subCategory: String,
val status: String,
val productName: String? = null,
val productImage: String? = null,
val arEffect: ArEffect,
val meta: Map<String, Any?>? = null
)
val data = listOf(
SkuConfig(
category = "eyewear",
subCategory = "eyeglasses",
status = "PUBLISHED",
arEffect = ArEffect(
envSettings = EnvSettings(useDefaultEnvironment = true),
effectAssets3D = listOf(
EffectAsset3D(id = "full", url = "VALID-ASSET-URL") // Valid Asset url
)
)
),
SkuConfig(
category = "accessories",
subCategory = "caps",
status = "PUBLISHED",
productName = "Test cap",
productImage = "VALID-ASSET-IMAGE-URL", // Valid image url
arEffect = ArEffect(
envSettings = EnvSettings(useDefaultEnvironment = true),
effectAssets3D = listOf(
EffectAsset3D(id = "full", url = "VALID-ASSET-URL") // Valid Asset url
)
)
),
)
GlamAr.applyMultipleConfigData(data);
Users will see separate tabs for each category type in the SDK UI.
addEventListener
GlamAr.addEventListener(eventName, handlerFunction);
Adds the listener to the given event name.
Return Value: None
| Parameters | Type | Description |
|---|---|---|
| eventName | string | A Name of specific event or "*" To listen to the all the events. |
| handlerFunction | function | Your handler function that will listen to callback. |
removeEventListener
GlamAr.removeEventListener(eventName, handlerFunction);
Removes the given listener for the event name.
Return Value: None
| Parameters | Type | Description |
|---|---|---|
| eventName | string | A Name of specific event or "*" To remove all the events. |
| handlerFunction | function | Your handler function that will listen to callback. |
isLoaded
GlamAr.isLoaded();
Returns the status of module loading.
Return Value:trueif loaded, otherwisefalse
| Parameters | Description |
|---|---|
None | No parameters required. |
open
GlamAr.open();
Opens the AR widget.
Return Value: None
| Parameters | Type | Description | Options |
|---|---|---|---|
| mode | string | Opens Live-Tryon, Model/Image-tryon and Model Viewer | modelViewer imgTryOn |
| imgURL | string | Valid image URL | Any valid URL |
-
No parameters: Start Live VTO
GlamAr.open(); -
Model Viewer: Start Model Viewer
GlamAr.open("modelViewer"); -
Image Try-On:
- Opens the image/model selection screen:
GlamAr.open("imgTryOn"); - Opens try-on directly with a specific image:
GlamAr.open("imgTryOn", "url_of_image");
- Opens the image/model selection screen:
Switching Views
-
While in Live or Image mode, calling:
GlamAr.open("modelViewer");will open the model viewer. Calling
GlamAr.open()again returns to the selected Try-On type. -
To switch from Live to Image mode, call:
GlamAr.back();This resets the Try-On session and then call
GlamAr.open()with desired parameter
Note: The SKU must already be applied. If not, the SDK will display an error.
reset
GlamAr.reset();
Removes all the current effects from the canvas.
Return Value: None
| Parameters | Description |
|---|---|
None | No parameters required. |
close
GlamAr.close();
Closes canvas and returns to the main widget page.
Return Value: None
| Parameters | Description |
|---|---|
None | No parameters required. |
snapshot
GlamAr.snapshot();
Takes a snapshot of the current result window. Result of the screen can be get from photo-loaded event in
base64formate.
Return Value: none
| Parameters | Description |
|---|---|
None | No parameters required. |
comparison
GlamAr.comparison(state, skus);
Toggles comparison mode in AR widget.
Return Value: None
Pass a state (i.e, open or close) to toggle between UI and with it 2 SKU ids or Skuconfig of same subcategory say sunglasses or necklace. Diffrent subcategory comparision is not supoorted. The first sku will be shown on the left side and the other one on the right side.
| Parameters | Type | Description | Options |
|---|---|---|---|
| state | string | State to show or hide the UI respectively | open close |
| skus | string[] | object[] | Provide 2 SKU Ids or 2 SKU json in an array | ["skudID1", "skudID2"] |
GlamAr.comparison("open", ["skudID1", "skudID2"]); // replace skudID1 and skudID2 with two SKU id's
GlamAr.comparison("close"); // When we send close we don't need to send SKUs
Eye PD Measurement Flow
We provide an integrated supports for eye pupillary distance (PD) scanning. This is activated when viewing any eyeware categories. If user wants to show his own UI and use this service we have function GlamAR.eyePD() for that case.
GlamAr.eyePD("start"); // To launch or restart Eye PD flow
GlamAr.eyePD("close"); // To exit Eye PD and return to active Try-On
Events
The GlamAR SDK emits various events throughout its lifecycle to help you monitor state, respond to user actions, and handle success or failure cases.
You can register for these events using the SDK's event listener system:
glamArView.addEventListener("loaded") {
// SDK has fully loaded
}
glamArView.addEventListener("photo-loaded") { data ->
// Handle screenshot data
}
Each event is triggered from within the GlamAR SDK and may optionally include a payload. Check Events Page for event details.