콘텐츠로 건너뛰기

Android 에서의 VoIP 통화

Pushwoosh 는 pushwoosh-calls 모듈을 사용하여 Android 용 VoIP 스타일 통화 알림을 지원합니다. 이를 통해 Android 의 텔레콤 스택을 사용하여 네이티브 통화 UI 및 수명 주기 관리가 가능합니다.

1. pushwoosh-calls 모듈 추가

Anchor link to

pushwoosh-calls 종속성을 프로젝트에 포함해야 합니다.

Gradle:

dependencies {
implementation 'com.pushwoosh:pushwoosh-calls:<latest-version>'
}

<latest-version>Maven Central 에서 현재 버전으로 대체합니다.

2. 통화 권한 요청

Anchor link to

도우미 함수를 사용하여 런타임에 필요한 권한을 요청합니다:

import com.pushwoosh.calls.PushwooshCallSettings;
PushwooshCallSettings.requestCallPermissions();

이는 적절한 통화 처리에 필요한 READ_PHONE_NUMBERS 와 같은 권한 요청을 처리합니다.

3. CallEventListener 구현 및 Manifest 에 등록

Anchor link to

수신 통화 및 이벤트를 처리하려면 앱에서 CallEventListener 인터페이스를 구현합니다.

Java 예시

Anchor link to
public class DemoCallEventListener implements CallEventListener {
@Override
public void onAnswer(@NonNull PushwooshVoIPMessage voIPMessage, int videoState) {
// 이 메서드를 구현하여 통화 중 UI 로 이동합니다
Intent intent = new Intent(context, MainActivity.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
}
@Override
public void onReject(@NonNull PushwooshVoIPMessage voIPMessage) {
// 이 메서드를 재정의하여 무시된 통화를 처리합니다
}
@Override
public void onDisconnect(@NonNull PushwooshVoIPMessage voIPMessage) {
// 이 메서드를 재정의하여 연결이 끊긴 통화를 처리합니다
}
@Override
public void onCreateIncomingConnection(@Nullable Bundle payload) {
// 이는 통화 알림 페이로드가 앱에서 액세스할 수 있는 가장 빠른 시점입니다.
// 이를 사용하여 통화 알림과의 사용자 상호 작용을 위해 앱 UI 를 준비합니다.
}
@Override
public void onCallAdded(@NonNull PushwooshVoIPMessage voIPMessage) {
// InCallService 의 확장 메서드로, 페어링된 웨어러블 기기에 대한 사용자 지정 옵션을 제공합니다
}
@Override
public void onCallRemoved(@NonNull PushwooshVoIPMessage voIPMessage) {
// InCallService 의 확장 메서드로, 페어링된 웨어러블 기기에 대한 사용자 지정 옵션을 제공합니다
}
}

AndroidManifest.xml

Anchor link to

<meta-data> 태그를 사용하여 리스너 클래스를 선언합니다:

<meta-data
android:name="com.pushwoosh.CALL_EVENT_LISTENER"
android:value="com.pushwoosh.demoapp.DemoCallEventListener" />

4. 통화 설정 구성 (선택 사항)

Anchor link to

PushwooshCallSettings 를 사용하여 통화 동작, 소리 및 표시 설정을 세부 조정합니다.

사용 예시

Anchor link to
import com.pushwoosh.calls.PushwooshCallSettings
PushwooshCallSettings.setPhoneAccount("com.pushwoosh.voip")
PushwooshCallSettings.setPhoneAccountHandle("PushwooshCallHandle")
PushwooshCallSettings.setIncomingCallChannelName("Incoming Calls")
PushwooshCallSettings.setOngoingCallChannelName("Ongoing Calls")
PushwooshCallSettings.setCallSound("custom_ringtone.mp3")

관련 링크

Anchor link to