# StreamZet SDK

Documentation revision: 2026-09-23

https://streamzet.com/docs?lang=en

## StreamZet developer docs

SDK integration, test applications and exact API contracts. Choose the runtime used by your product.

### Start with your goal

To try the service, start with screen sharing in the standalone support app. Developers adding the SDK to a product should use the platform integration guides.

- [First visit: try screen sharing without coding](https://streamzet.com/docs/try?lang=en)
- [Developers: Android integration](https://streamzet.com/docs/android/integration?lang=en)
- [Developers: Linux integration](https://streamzet.com/docs/linux/integration?lang=en)

### Choose a platform

| Platform | Version | What it does |
| --- | --- | --- |
| Android | 0.2.0-rc.3 | Android 8+ (API 26). AAR, business sample APK and support APK. Attended screen sharing and accessibility input; no terminal or Fleet shell. |
| Linux | Integration preview · linux/0.3.3 | Modern Linux: Go API and C shared library. Ubuntu 24.04 ARM64/AMD64 binaries, C/Go examples and source. Rebuild for other target ABIs. |
| xSpan | 0.2.1 | Legacy ARMv5 R660: static engine and C/C++ process adapter. sh terminal, Fleet commands and provisioned OEM dashboard. No Linux desktop capture. |

- [Android: install and integrate](https://streamzet.com/docs/android/quickstart?lang=en)
- [Linux: test the shared library](https://streamzet.com/docs/linux/quickstart?lang=en)
- [xSpan: provision one reader](https://streamzet.com/docs/xspan/quickstart?lang=en)

### Delivery and registration

Download Android/Linux SDKs and test apps directly from the downloads page. Public test settings are provided; remote connections require your own StreamZet account and device-code pairing. xSpan OEM packages are delivered separately.

- [SDK downloads and public test key](https://streamzet.com/docs/downloads?lang=en)

## Try it without coding

Install the Android app, view its screen on a PC, and stop sharing. Start with one standalone support app and your own account.

### Before you start: Android device and PC

The goal is to see your Android screen on a PC and stop sharing when you choose. Prepare an Android 8+ phone or tablet, a PC browser, and internet on both. This APK cannot be installed on an iPhone.

1. On the PC, create or sign into your StreamZet account and open Devices. Complete email verification if sign-up requests it.
2. Install the standalone support app below on Android. You can try the business sample later.

- [PC: create an account](https://streamzet.com/signup)
- [PC: sign in](https://streamzet.com/login)
- [PC: open Devices](https://streamzet.com/devices)

> The public app connects to the live StreamZet service. Use your own account and test device. Sign in on the PC; the APK does not ask for your password or a test key.

> The apps use English. Documentation follows your browser language (Korean, Japanese or English; other languages use English). You can change it using the language menu above. Screenshots use English; Android system button labels may follow your device language.

### 1. Install the support app on Android

- [Standalone support APK](https://api.streamzet.com/storage/v1/object/public/downloads/sdk/public/2026-09-23-key/streamzet-support-0.2.0-rc.3.apk?download=streamzet-support-0.2.0-rc.3.apk) — Android 8+ / API 26+, 0.2.0-rc.3. English UI. A standalone app for starting and stopping screen sharing and control. Public configuration included; debug signed for evaluation.

1. On Android, use the download button above. Confirm the filename is streamzet-support-0.2.0-rc.3.apk.
2. Open the APK from Files → Downloads or the browser download notification. If you used a PC, transfer the file to Android’s Downloads folder first.
3. If Android asks about the installation source, verify that this is the Streamzet Support file you downloaded. If requested, allow installation for that browser or file app, then return. If organization policy blocks installation, contact your administrator.
4. Choose Install, then Open. The app is named Streamzet Support. The capture below is a real installation from Files on Android 16; wording varies by device and language.

![Streamzet Support installation confirmation](https://streamzet.com/docs-assets/sdk/images/android-install-confirm.png)

Check the app name, then select Install at the bottom right. No device code or key is needed here.

> If Android reports a signature conflict with an existing installation, keep the installed app until data preservation is clarified. Send the error text and filename through the contact form.

### 2. Start sharing and choose permissions

Choose Start support in the app and read the sharing disclosure. For a first trial, choose Share screen only to check video without configuring accessibility.

![Standalone app immediately after installation](https://streamzet.com/docs-assets/sdk/images/android-first-launch.png)

Actual first launch of the public APK on a fresh test device. Start with Start support.

Also approve Android’s screen-sharing prompt. Choose the entire screen if you want to show other apps. In screen-only mode, clicks on the PC do not control Android; that is expected. Enable accessibility using the detailed guide only when remote input is needed.

![Actual Android entire-screen sharing consent](https://streamzet.com/docs-assets/sdk/images/android-screen-permission-en.png)

Android 16 in English. Confirm the scope, then select Share screen at the bottom right.

- [Detailed permission screens](https://streamzet.com/docs/android/test-apps?lang=en#consent)

### 3. Register the eight-character code on the PC

1. Read the device code shown by your own app. Do not enter DEMO0001 from an example or XXXXXXXX from the placeholder below.
2. On the PC, open Devices → Pair Device, enter the eight-character code and select Pair Device.
3. Confirm that your Android appears in Devices. If you install both test apps, each has its own code; use the one currently sharing.

![PC device registration dialog](https://streamzet.com/docs-assets/sdk/images/pair-dialog-en.png)

The English Pair Device dialog on a computer. Enter the code from your app, then select Pair Device. This capture shows the empty form.

### 4. Connect from the PC and check the result

When your registered device is online, choose Start session on its card. The browser opens that device’s remote-support screen. The device may stay offline until sharing is approved on Android.

Success means the PC shows the actual Android screen and follows changes made on Android. A visible code or Waiting for operator alone does not mean a viewer is connected. Allow the first connection to complete; use the troubleshooting steps below if it keeps waiting.

### 5. Stop sharing and confirm it stopped

1. Return to Streamzet Support on Android and select Stop support. You can also stop from Android’s screen-sharing indicator.
2. Confirm the PC video stops or disconnects and the app offers Start support again. Merely switching to Home or closing an app screen does not stop support.
3. For another trial, start support again and approve a new Android screen-sharing session.

### If you get stuck

| What you see | What to do next |
| --- | --- |
| Cannot open the installer | Open the .apk in Files → Downloads on Android; it does not run on a PC or iPhone. |
| Device limit reached | The account has used its device allowance. Remove an unneeded registration you created for testing or review the plan. Keep other people’s production devices. |
| Device is offline | Finish Start support and screen-sharing approval on Android; check its internet connection. |
| Code registered but no video | Start the registered device’s session on the PC and check that the code belongs to the currently running app. |
| Video works but clicks do not | This is expected in screen-only mode. For remote input, enable that app’s accessibility permission using the detailed guide. |

If you still need help, send the app name, Android version, step where you stopped, and error screen through the contact form. Omit passwords, device codes and full configuration files.

- [Contact support](https://streamzet.com/?inquiry=android#contact)

### Next: business app, Linux, or SDK integration

After the standalone app works, try product entry and remote input in the business sample. Stop the first session, install the business app, and register its separate code.

Linux examples run in a terminal. On Ubuntu 24.04, use the provided executables and configuration helper without building. Desktop sharing requires additional Linux setup.

Embedding the SDK into your company’s app is a development task. Someone who can modify the host app, configure development tools, build it and validate releases should follow the integration guide.

- [Business sample and detailed permissions](https://streamzet.com/docs/android/test-apps?lang=en)
- [Try the Linux executables](https://streamzet.com/docs/linux/test-apps?lang=en)
- [Android developer integration](https://streamzet.com/docs/android/integration?lang=en)
- [Linux developer integration](https://streamzet.com/docs/linux/integration?lang=en)

## SDK and test app downloads

Get packages, the public test key and runnable configuration in one place. Android is 0.2.0-rc.3; Linux is an integration preview for Ubuntu 24.04.

### Before you start

- [First visit: try screen sharing without coding](https://streamzet.com/docs/try?lang=en)

For your first trial, download the standalone support APK. An APK is an Android installer. The public app includes its connection settings, so no key entry or development tools are required.

Downloads do not require sign-in. To test a remote connection, sign up/sign in to StreamZet and pair the device code from the test app you run. Use your own account, not a shared operator account.

- [Create an account](https://streamzet.com/register)
- [Sign in](https://streamzet.com/login)
- [Review validation and limitations](https://streamzet.com/docs/validation?lang=en)

### Android SDK and test APKs

Choose an APK to try the apps, or the SDK ZIP to integrate or build samples. Android 8+ is required; APKs use evaluation debug signing. This English edition updates the sample UI and setup instructions and is rebuilt and verified in CI.

- [Android SDK package](https://api.streamzet.com/storage/v1/object/public/downloads/sdk/public/2026-09-23-key/streamzet-android-0.2.0-rc.3-public-20260923.zip?download=streamzet-android-0.2.0-rc.3-public-20260923.zip) — Android 8+ / API 26+, 0.2.0-rc.3. Maven repository, AAR, sample source, both test APKs, public test configuration and offline guides.
- [Business sample APK](https://api.streamzet.com/storage/v1/object/public/downloads/sdk/public/2026-09-23-key/streamzet-business-sample-0.2.0-rc.3.apk?download=streamzet-business-sample-0.2.0-rc.3.apk) — Android 8+ / API 26+, 0.2.0-rc.3. English UI. An SDK embedded in a business screen. Test product entry and remote support. Debug signed for evaluation.
- [Standalone support APK](https://api.streamzet.com/storage/v1/object/public/downloads/sdk/public/2026-09-23-key/streamzet-support-0.2.0-rc.3.apk?download=streamzet-support-0.2.0-rc.3.apk) — Android 8+ / API 26+, 0.2.0-rc.3. English UI. A standalone app for starting and stopping screen sharing and control. Public configuration included; debug signed for evaluation.

Download the APK on the Android device and open it from Downloads in the Files app. If downloaded on a PC, transfer it to Android first. Follow the illustrated guide for installation and permissions.

- [First visit: try screen sharing without coding](https://streamzet.com/docs/try?lang=en)

Both APKs include public connection settings and need no manual key entry. Start support, approve Android permissions, then pair the displayed code in the dashboard. Inside the ZIP, the APK filenames are jci-sample-debug.apk and streamzet-support-debug.apk.

- [Illustrated test app guide](https://streamzet.com/docs/android/test-apps?lang=en)
- [Integrate into your Android app](https://streamzet.com/docs/android/integration?lang=en)

### Linux SDK and C/Go examples

Run uname -m: choose AMD64 for x86_64 or ARM64 for aarch64. Binaries target Ubuntu 24.04; verify compatibility or rebuild from included source for other distributions, glibc versions or CPUs.

- [Linux SDK · AMD64](https://api.streamzet.com/storage/v1/object/public/downloads/sdk/public/2026-09-23-key/streamzet-linux-sdk-preview-20260923-key-amd64.zip?download=streamzet-linux-sdk-preview-20260923-key-amd64.zip) — Ubuntu 24.04 / x86_64, preview / linux 0.3.3. C library and header, runnable C/Go examples, source and test configuration for Intel/AMD 64-bit.
- [Linux SDK · ARM64](https://api.streamzet.com/storage/v1/object/public/downloads/sdk/public/2026-09-23-key/streamzet-linux-sdk-preview-20260923-key-arm64.zip?download=streamzet-linux-sdk-preview-20260923-key-arm64.zip) — Ubuntu 24.04 / aarch64, preview / linux 0.3.3. C library and header, runnable C/Go examples, source and test configuration for ARM 64-bit. Not for xSpan ARMv5.

Extract the ZIP into a new directory and run as your regular user. The configuration helper selects a dedicated state path under your home and creates config.json with mode 0600. It does not overwrite an existing config.

```bash
# Inside the extracted ZIP, without sudo:
python3 configure-linux-test.py
chmod u+x bin/embedded-example bin/go-example
./bin/embedded-example config.json
# Press Enter to stop. Then try the Go host:
./bin/go-example config.json
```

> Starting an example enables a remote terminal as your OS user. Use your own test device and press Enter to stop. The default is terminal mode with Fleet disabled. Screen sharing requires the capture helper and desktop permission setup.

- [Linux example guide](https://streamzet.com/docs/linux/test-apps?lang=en)
- [Integrate into your Linux app](https://streamzet.com/docs/linux/integration?lang=en)

### StreamZet evaluation key

StreamZet key: sz_test_public for evaluation, or an issued sz_live_ key for tenant enrollment. The SDK manages service endpoints and its public transport key.

```text
sz_test_public
```

```json
{
  "api_key": "sz_test_public"
}
```

- [SDK evaluation key JSON](https://streamzet.com/docs-assets/sdk/public-test-config.json)
- [Android sdk-test.properties](https://streamzet.com/docs-assets/sdk/sdk-test.properties)
- [Linux configuration template JSON](https://streamzet.com/docs-assets/sdk/linux-test-config.json)

> These settings connect to the live StreamZet service. They do not provide an isolated sandbox or a shared test account. Remote connections require sign-in and device-code pairing in your own account; Android screen sharing/accessibility also require approval on the device.

The Android source ZIP already includes source/sdk-test.properties. For another sample checkout, copy the downloaded file to the SDK sample project root. Replace state_dir in the Linux JSON with your actual private absolute path, or generate it using configure-linux-test.py from the ZIP.

> sz_test_public selects public evaluation. It grants no account or tenant access and does not create an isolated sandbox. Sign in with your own account and pair the device code. Values in distributed apps can be extracted; never embed administrator secrets.

### Verify files and updates

Expand SHA-256 on each card and compare the downloaded file. Save its .sha256 file beside it to verify with the commands below. Also check SHA256SUMS inside each ZIP.

```bash
# Linux
sha256sum -c streamzet-android-0.2.0-rc.3-public-20260923.zip.sha256
# macOS
shasum -a 256 -c streamzet-android-0.2.0-rc.3-public-20260923.zip.sha256
# After extracting a ZIP
sha256sum -c SHA256SUMS
```

For installation or connection issues, check the troubleshooting guide, then include OS, filename, SDK version and error details in the inquiry form. Do not attach passwords, device secrets or enrollment keys.

- [Contact support](https://streamzet.com/?inquiry=general#contact)

## SDK verification and acceptance

Execution record dated 2026-09-22. Automated checks, actual app/server runs and target-device acceptance have distinct scope.

### Test environment

Android SDK 0.2.0-rc.2: Android 16/API 36.1 ARM64 emulator, business sample and standalone support app. Linux SDK preview: Ubuntu 24.04 ARM64 containers, normal user, Xvfb X11 and nested GNOME 46 Wayland. Desktop tests use 2 CPU / 2 GiB limits.

> Emulator/container passes are not certification of every Android/Linux device. The SDKs remain Android RC / Linux preview; product releases require the target-specific acceptance checks below.

Additional CI passed on Ubuntu 24.04 AMD64: Go race/X11, actual C ABI and C/Go example execution, and SDK ZIP packaging. Android CI also passed Maven debug/R8 builds for both apps and the documentation-only consumer. Physical GPU/OEM qualification is separate.

### Android execution coverage

| Layer | Result and scope |
| --- | --- |
| Unit/lifecycle | 37 passed: configuration, HTTP contracts, state, duplicate start, permission denial, rotation, late results and protected input. |
| On-device instrumentation | 4 functional scenarios passed: real MediaProjection/WebRTC video, input, rotation, reconnect, view-only and user/operator/OS stop. Backend/signaling use local fixtures. |
| Actual TURN | Decoded video and input passed on direct, UDP, TCP and TLS paths; relay/relay candidates verified for TURN. |
| Delivered-app execution | Both debug apps and QA-signed R8 releases installed and run. Production backend/WSS/web viewer verified video, input and operator stop; same-signature updates preserved codes. |
| Documentation consumer | The complete documented Activity compiled in a separate project against only the Maven SDK, in debug/R8 release. Both samples built with the published dependency. |

### Linux execution coverage

| Layer | Result and scope |
| --- | --- |
| Public Go/C SDK | Start/Status/Identity/Stop/Wait/Done, exclusive ownership, persistence, redaction, root rejection and invalid JSON/path/URL checks. Separate Go module compiled against the public API. |
| C/Go examples | Actual enrollment/WSS/web-terminal Bash round trips, Enter shutdown and identity-preserving restart. Regression passed after fixing C example shutdown on SIGURG. |
| Terminal/Fleet/maintenance | Race checks covered PTY, resize, shutdown, backpressure, Fleet command bounds/timeouts and maintenance exclusion. No Fleet command was sent to a customer device. |
| X11 | Real VP8 video/remote input and 800×600 JPEG capture passed. |
| Wayland | Real GNOME portal consent, video and uppercase/symbol/Korean input passed. Denial blocked control while preserving terminal. An initial paste/Enter ordering failure is recorded below. |
| TURN | Actual relay/relay terminal round trips passed over UDP, TCP and TLS. |
| Separate xSpan regression | Clean ARMv5 cross-build, five native codec/entropy/process/identity/product checks and Go gateway/relay race checks passed. No physical reader firmware/RFID qualification in this run. |

### Observed limits and performance

For a 12-second measurement at a 1600px/30fps target, decoded rates were about 30.1fps direct, 16.8fps UDP, 8.9fps TCP and 4.6fps TLS. These describe this emulator/network, not an SLA or product guarantee. Proxy, latency and congestion conditions matter.

> One initial Wayland run observed Enter submitting before the full pasted string was applied. Repeated runs then passed; the first failure is retained in the record. Confirm pasted text appears before submitting, and qualify ordering in the target app under load.

### Remaining product-specific acceptance

1. Android: qualify shipping models/OS, physical 16 KB page devices, OEM battery/accessibility policies, lock/reboot and actual IME/WebView/scanner hardware.
2. Linux: separately qualify target glibc/distribution and physical ARM64/AMD64 GPU, multimonitor, keyboard layouts, login/logout/reboot and long-running operation.
3. Customer environment: verify account/tenant policy, proxy/store networks/enterprise firewalls, signed updates/recovery, business impact and logging policy.

- [Android test procedure](https://streamzet.com/docs/android/test-apps?lang=en)

- [Linux test procedure](https://streamzet.com/docs/linux/test-apps?lang=en)
