Android 시작하기
테스트 앱을 설치하거나 같은 AAR을 ComponentActivity에 연동합니다. UI와 권한 안내는 영어·한국어·일본어를 지원합니다.
테스트 앱
| 필드 / API | 형식 / 기본값 | 계약 |
|---|---|---|
| jci-sample-debug.apk | com.streamzet.sample.jci | 상품·수량 입력과 지원 시작/종료를 제공하는 업무 앱 예제입니다. 실제 재고는 변경하지 않습니다. |
| streamzet-support-debug.apk | com.streamzet.support | 같은 공개 SDK를 쓰는 단독 지원 UI입니다. 평가용 debug 서명이며 운영 배포용이 아닙니다. |
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 백업을 금지하세요.
// 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")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.url | String · HTTPS origin | 빌드 설정. 템플릿에 기본 프로젝트 URL이 제공됩니다. |
| supabase.publicKey | String · required | 공개/anon 키만 사용. 누락 시 앱의 지원 시작을 비활성화합니다. |
| signaling.url | String · WSS origin | 빌드 설정. 템플릿에 기본 시그널링 주소가 제공됩니다. |
| sdk.registrationKey | String · empty | 선택적 비공개 테스트 빌드용 등록 키. SupportConfig.registrationKey로 전달됩니다. APK의 값은 추출 가능하므로 공용 배포 APK에서는 비워두세요. |
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 코드는 바뀌지 않습니다.