모바일앱 사용 가이드 - Android

Android 에서의 구루미 OPEN API 사용 가이드 입니다.

👍

최소 요구 사항

  1. Android 21 이상 (SDK version 21)
  2. android.permission.CAMERA 허용 필수
  3. android.permission.RECORD_AUDIO 허용 필수
  4. android.permission.MODIFY_AUDIO_SETTINGS 허용 필수
1280

☁️ Manifest 설정 (필수)

<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.CAMERA"/> <uses-permission android:name="android.permission.RECORD_AUDIO"/> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
1280

☁️ Manifest 설정 (옵션)

블루투스 기기 사용시 추가 권한 설정

<!-- Request legacy Bluetooth permissions on older devices. --> <uses-permission android:name="android.permission.BLUETOOTH" android:maxSdkVersion="30" /> <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" android:maxSdkVersion="30" /> <!-- Android 12 Permission --> <uses-permission android:name="android.permission.BLUETOOTH_SCAN" /> <uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE" /> <uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
1280

☁️ Webview 설정 (필수)

webView.settings.userAgentString += " BizAOSWebviewApp" // Gooroomee Android Guide : User-agent // // 1. 기본 User-agent 값에 "BizAOSWebviewApp" 를 추가 // 2. 위 설정이 없는 경우 앱내 웹뷰에서 정상동작하지 않음 //
private var chromeClient = object : WebChromeClient() { override fun onShowCustomView(view: View, callback: WebChromeClient.CustomViewCallback) { super.onShowCustomView(view, callback) if (view is FrameLayout) { if (view.focusedChild is VideoView) { val video = view.focusedChild as VideoView view.removeView(video) video.start() } } } @RequiresApi(Build.VERSION_CODES.M) override fun onPermissionRequest(request: PermissionRequest?) { Log.e( TAG,"onPermissionRequest") try { GlobalScope.launch(Dispatchers.Main){ request?.grant(request.resources) } } catch (e: Exception) { Log.e(TAG, "permissionRequest: $e") } } } // Gooroomee Android Guide : WebChromeClient // // 1. 크롬 웹 클라이언트를 사용 // 2. 웹뷰에서 카메라, 마이크 권한을 획득하도록 PermissionRequest 추가 //
var otpUrl = "https://biz.gooroomee.com/room/otp/biz_7cabdcc0806b4d189648420abed25a3926030ada2bf9418eb3580b48a2" otpUrl = "$otpUrl?join=true" webView.loadUrl(otpUrl) // Gooroomee Android Guide : OTP URL Parameter // // 1. API 통해 생성된 OTP URL 에 join=true 파라매터를 포함 // 2. 해당 파라매터가 없는 경우 정상 동작하지 않거나 에러 페이지로 리다이렉트됨 //

모바일앱 공통 메세지 가이드

webView.settings.javaScriptEnabled = true webView.addJavascriptInterface(WebViewClientClass(), "aoscall") // Gooroomee Android Guide : addJavascriptInterface // // 1. "aoscall" 이라는 사전 정의 메세지를 통해 JavaScript Message 가 전달됨 // 2. 해당 설정을 하지 않는 경우 이벤트에 대한 스크립트 메세지를 수신하지 못함 //
@JavascriptInterface fun sendAOS(msg: String) { Log.e("test", "sendAOS : $msg") if (msg.contains("/room/exit")) { Toast.makeText(context, "close called", Toast.LENGTH_SHORT).show() } } // Gooroomee Android Guide : @JavascriptInterface // // 1. 웹페이지에서 이벤트발생시 sendAOS 가 호출됨 //
1280