본문으로 건너뛰기
sstreamzet/docs
Android SDK 0.2.0-rc.2콘솔 열기
개발자 문서 / Android SDK
API와 연동 가이드 · 수정 2026-09-22

Android 시작하기

테스트 앱을 설치하거나 같은 AAR을 ComponentActivity에 연동합니다. UI와 권한 안내는 영어·한국어·일본어를 지원합니다.

테스트 앱

필드 / API형식 / 기본값계약
jci-sample-debug.apkcom.streamzet.sample.jci상품·수량 입력과 지원 시작/종료를 제공하는 업무 앱 예제입니다. 실제 재고는 변경하지 않습니다.
streamzet-support-debug.apkcom.streamzet.support같은 공개 SDK를 쓰는 단독 지원 UI입니다. 평가용 debug 서명이며 운영 배포용이 아닙니다.
sh
adb install -r jci-sample-debug.apk
# Or install the support app:
adb install -r streamzet-support-debug.apk

앱에서 지원 시작을 누르면 등록·앱 안내·선택적 접근성·알림·Android 화면공유 동의가 순서대로 진행됩니다. Devices → 기기 추가에서 표시된 기기 코드를 연결하세요. 접근성 없이 화면만 공유할 수 있습니다. 기기는 동의한 지원이 실행 중일 때만 온라인입니다.

AAR과 호스트 설정

전달된 로컬 Maven 저장소에서 com.streamzet:remote-support-android:0.2.0-rc.2를 사용해야 전이 의존성이 해결됩니다. AAR만 복사하면 부족합니다. JDK 17, compileSdk 35, minSdk 26으로 빌드합니다. 병합된 SDK 서비스 선언을 유지하고 샘플 manifest처럼 기기 ID 백업을 금지하세요.

kotlin
// settings.gradle.kts: add to dependencyResolutionManagement.repositories
maven { url = uri("vendor/streamzet-maven") }
google()
mavenCentral()

// app/build.gradle.kts
implementation("com.streamzet:remote-support-android:0.2.0-rc.2")
kotlin
private lateinit var launcher: SupportLauncher

override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    val support = StreamzetSupport.getInstance()
        ?: StreamzetSupport.initialize(applicationContext, SupportConfig(
            supabaseUrl = "https://YOUR_BACKEND",
            publishableKey = "YOUR_PUBLIC_ANON_KEY",
            signalingUrl = "wss://YOUR_SIGNALING",
            deviceName = "Store handheld",
        ))
    launcher = SupportLauncher.bind(this, support) { ui ->
        // Render ui.message, ui.deviceCode, ui.canStart and ui.canStop.
    }
    // From user actions: launcher.start() / launcher.stop()
}

회전 후에도 Activity마다 STARTED 이전에 한 번 bind하고 프로세스 인스턴스는 재사용하세요. onDestroy에서 support.close를 호출하지 마세요. Activity 파괴는 UI만 분리하며 승인된 세션은 종료하지 않습니다. 새 세션마다 Android 동의가 필요하고 프로세스 종료 시 이전 동의는 무효입니다.

테스트 앱 빌드

필드 / API형식 / 기본값계약
supabase.urlString · HTTPS origin빌드 설정. 템플릿에 기본 프로젝트 URL이 제공됩니다.
supabase.publicKeyString · required공개/anon 키만 사용. 누락 시 앱의 지원 시작을 비활성화합니다.
signaling.urlString · WSS origin빌드 설정. 템플릿에 기본 시그널링 주소가 제공됩니다.
sdk.registrationKeyString · empty선택적 비공개 테스트 빌드용 등록 키. SupportConfig.registrationKey로 전달됩니다. APK의 값은 추출 가능하므로 공용 배포 APK에서는 비워두세요.
sh
cp sdk-test.example.properties sdk-test.properties
# Configure the local file, then:
./gradlew :sample:assembleDebug :app:assembleDebug

동작과 제한

승인된 세션당 인증된 운영자 1명입니다. 무인 화면공유·셸/Fleet·파일전송·앱 설치 API는 없습니다. 보안/비밀번호 필드는 제외하며 커스텀 위젯과 OEM 접근성 동작은 실기 검증이 필요합니다. Enter/검색은 API 30 이상에서 편집기 액션을 사용하고 API 26~29에서는 앱의 제출 버튼을 누릅니다. UI는 Android 앱/시스템 언어를 따르고 enum 코드는 바뀌지 않습니다.