2. SDK 설치하기
2.1. SDK 설치하기
- FlipFlop Android SDK를 가져오기 위한 repository를 지정해주어야 합니다.
- 사용중인 Gradle의 버전에 따라 추가 해주어야 하는 코드의 위치가 다를 수 있습니다.
- Gradle 6.8 이상을 사용하고 있는 경우에는 settings.gradle에, Gradle 6.7 이전 버전을 사용하고 있는 경우에는 build.gradle에 다음의 내용을 추가합니다.
// Gradle 6.8 이상을 사용하고 있는 경우dependencyResolutionManagement {repositories {maven { url 'https://jitpack.io' }}}
// Gradle 6.7 이전 버전을 사용하고 있는 경우allprojects {repositories {maven { url 'https://jitpack.io' }}}
- SDK를 사용할 모듈의 build.gradle에 아래의 코드를 추가합니다.
dependencies {implementation(‘com.jocoos.jocoos-public:ff-android-sdk:0.25.0.beta’) {transitive = true}}
2.2 앱 권한 설정하기
SDK를 사용하려면 앱 권한이 필요합니다. 이 권한들이 있어야 라이브를 할 수 있습니다. 아래의 내용을 AndroidManifest.xml에 추가합니다.
<uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.CAMERA"/><uses-permission android:name="android.permission.RECORD_AUDIO"/><uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"tools:ignore="ScopedStorage" /><uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"android:maxSdkVersion="32" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/><uses-permission android:name="android.permission.READ_MEDIA_IMAGES" /><uses-feature android:name="android.hardware.camera.autofocus"/><uses-featureandroid:name="android.hardware.camera"android:required="false" />
위의 권한 추가 후 앱 실행 후 라이브 송출을 하기 전에 관련 권한을 획득해야 합니다. 아래의 예는 권한 요청에 대한 코드 스니펫을 보여줍니다.
private var permissions = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) {arrayOf(Manifest.permission.INTERNET,Manifest.permission.CAMERA,Manifest.permission.RECORD_AUDIO,Manifest.permission.READ_MEDIA_IMAGES,)} else {arrayOf(Manifest.permission.INTERNET,Manifest.permission.CAMERA,Manifest.permission.RECORD_AUDIO,Manifest.permission.READ_EXTERNAL_STORAGE,)}private var permissionGranted = falseoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)permissionGranted = requestPermission(permissions)}override fun onRequestPermissionsResult(requestCode: Int,permissions: Array<out String>,grantResults: IntArray) {super.onRequestPermissionsResult(requestCode, permissions, grantResults)permissionGranted =grantResults.isNotEmpty() && grantResults.all { it == PackageManager.PERMISSION_GRANTED }when (requestCode) {PERMISSIONS_REQUEST -> {if (permissionGranted) {initialized()} else {// need live permission}}else -> {}}}private fun requestPermission(permissions: Array<String>): Boolean {var mustRequest = falsefor (permission in permissions) {if (ContextCompat.checkSelfPermission(this, permission) != PackageManager.PERMISSION_GRANTED) {mustRequest = truebreak}}if (mustRequest) {ActivityCompat.requestPermissions(this, permissions, PERMISSIONS_REQUEST)}return !mustRequest}