개발 환경 설정
LLM 기반 SDK 정합을 위해서는 Android 프롬프트 섹션을 참고하세요. 단계별 프롬프트와 통합 프롬프트를 사용할 수 있습니다.
Dependency 설정
FLOWER SDK를 Android 프로젝트에서 사용하려면 AnypointMedia의 Maven repository를 통해 Gradle dependencies에 라이브러리를 추가합니다.
repositories {
maven(url = "https://maven.anypoint.tv/repository/public-release")
}
...
dependencies {
implementation("flower-sdk:sdk-android-ott:X.X.X")
}
Media3 ExoPlayer(FlowerMedia3ExoPlayer) 사용 시 추가 의존성
FlowerMedia3ExoPlayer를 통해 Media3 ExoPlayer를 사용하는 경우, 기본 sdk-android-ott 의존성 외에 Media3 버전에 대응하는 추가 아티팩트를 함께 의존성에 추가해야 합니다.
버전 2.9.16부터 FLOWER SDK는 Media3 버전 간 바이너리 호환성 문제를 피하기 위해 Media3 어댑터를 버전별 아티팩트로 분리하여 배포합니다. 추가 아티팩트는 sdk-android-ott를 참조(의존)하므로 두 아티팩트를 함께 추가해야 하며, 추가 아티팩트만 단독으로 사용할 수는 없습니다.
지원하는 androidx.media3 버전: 1.6.0 이상. 사용 중인 androidx.media3 버전에 맞는 아티팩트를 선택하세요.
사용 중인 androidx.media3 버전 | 추가할 아티팩트 |
|---|---|
| 1.6.0 이상 | flower-sdk:sdk-android-ott-media3-{androidx.media3-version}:X.X.X |
dependencies {
implementation("flower-sdk:sdk-android-ott:X.X.X")
// FlowerMedia3ExoPlayer를 사용할 때만 필요합니다.
// 사용 중인 androidx.media3 버전과 일치하는 아티팩트를 선택하세요.
implementation("flower-sdk:sdk-android-ott-media3-1.10.1:X.X.X")
}
기본 sdk-android-ott 아티팩트는 항상 필요합니다. sdk-android-ott-media3-* 아티팩트는 FlowerMedia3ExoPlayer를 통해 Media3 ExoPlayer를 사용하는 경우에만 추가하면 되며, 내부적으로 sdk-android-ott에 의존합니다. FlowerExoPlayer2(레거시 ExoPlayer) 또는 FlowerBitmovinPlayer만 사용하는 경우에는 추가할 필요가 없습니다.
위 표에 해당하지 않는 androidx.media3 버전(예: 1.6.0 미만)을 사용 중이라면 dev-support@anypointmedia.com으로 문의해 주세요.
Android Cleartext Traffic 예외 설정
FLOWER SDK를 사용할 때, SDK가 HTTP를 통해 올바르게 통신하려면 특정 도메인을 cleartext traffic 예외로 설정해야 합니다. Android 9(API 레벨 28)부터 cleartext(HTTP) 트래픽이 기본적으로 차단됩니다.
아래 두 가지 방법 중 하나를 선택할 수 있습니다:
- Network Security Config를 사용하여 특정 도메인에 대해서만 cleartext traffic 허용 (권장)
- usesCleartextTraffic="true"를 사용하여 전체 cleartext traffic 허용
방법 1 (권장) — 특정 도메인만 허용
1. Network Security Config 파일 생성
다음 파일을 생성합니다:
app/src/main/res/xml/network_security_config.xml
2. 다음 설정 추가
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<domain-config cleartextTrafficPermitted="true">
<domain includeSubdomains="true">
prod-reds-device-ad-distributor.ap-northeast-2.elasticbeanstalk.com
</domain>
</domain-config>
</network-security-config>
cleartextTrafficPermitted="true" → 이 도메인에 대해서만 HTTP 트래픽을 허용합니다.
includeSubdomains="true" → 모든 하위 도메인도 허용합니다(필요 없는 경우 false로 설정).
3. AndroidManifest.xml에 적용
<application> 태그 안에 다음을 추가합니다:
<application
android:name=".MyApplication"
android:networkSecurityConfig="@xml/network_security_config"
android:usesCleartextTraffic="false"
... >
이 방법은 지정된 도메인에만 HTTP 접근을 허용하므로 더 안전합니다.
방법 2 — 전체 Cleartext Traffic 허용 (권장하지 않음)
다음과 같이 설정하면 모든 도메인에 대해 HTTP를 허용할 수 있습니다:
<application
android:name=".MyApplication"
android:usesCleartextTraffic="true"
... >
주의 사항
- 모든 도메인에 대해 HTTP 트래픽이 허용됩니다.
- 이 경우 Network Security Config는 필요하지 않습니다.
- 보안 위험으로 인해 프로덕션 환경에서는 권장하지 않습니다.
(참고) Android 버전별 동작
| Android 버전 | 동작 |
|---|---|
| API 28+ (Android 9+) | HTTP가 기본적으로 차단됨 |
| API 27 이하 | HTTP가 기본적으로 허용됨 |