Device SDK
ArborXR’s Device SDK lets apps on a headset talk to the ArborXR client running on the same device. Native apps can bind to the AIDL interface (ISdkService.aidl), while Unity apps use the SdkBehaviour base class.
Setup
- Unity ≤ 2019.x: ensure your Gradle plugin classpath is ≥ 3.6.0 (see Android Gradle plugin docs).
- Unity package: import via Window → Package Manager → “+” → Add package from disk…, then select the
package.jsonin the SDK folder.
Download
Click here to download the latest SDK
Capabilities (API surface)
getDeviceId()→ string — ArborXR UUID for this device.getDeviceTitle()→ string — admin-assigned device name.getDeviceSerial()→ string — OEM serial number.getDeviceTags()→ string[] — tags from the ArborXR portal.getOrgId()/getOrgTitle()/getOrgSlug()→ string — organization identifiers.getMacAddressFixed()/getMacAddressRandom()→ string — hardware MAC and current randomized MAC.getIsAuthenticated()→ boolean — whether SSO is active.getAccessToken()/getRefreshToken()→ string — SSO tokens (use securely).getExpiresDateUtc()→ datetime — token expiry in UTC.
Unity usage example
using XRDM.SDK.External.Unity;
public sealed class ArborxrSdkExample : SdkBehaviour
{
protected override void OnEnable() {
base.OnEnable();
Connect(new Callback());
}
private sealed class Callback : IConnectionCallback
{
public void OnConnected(ISdkService svc) {
var deviceId = svc.GetDeviceId();
var orgName = svc.GetOrgTitle();
// TODO: use IDs/tokens to personalize app behavior
}
public void OnDisconnected(bool isRetrying) { /* handle retry/backoff */ }
}
}
Unity integrates via
SdkBehaviour; native apps integrate the AIDL service directly.
Notes & best practices
- Treat access/refresh tokens as secrets; never log or expose them to end users.
- If you rely on MAC addresses, prefer the fixed hardware MAC for stable identity; randomized MACs can change per network/session.