Перейти к содержанию

VoIP-звонки на Android

Pushwoosh поддерживает уведомления о звонках в стиле VoIP для Android с помощью модуля pushwoosh-calls. Это позволяет использовать нативный пользовательский интерфейс звонков и управление жизненным циклом с помощью стека Telecom Android.

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();

3. Реализуйте CallEventListener и зарегистрируйте его в манифесте

Anchor link to

Для обработки входящих звонков и событий реализуйте интерфейс CallEventListener в вашем приложении.

Пример на Java

Anchor link to
public class DemoCallEventListener implements CallEventListener {
@Override
public void onAnswer(@NonNull PushwooshVoIPMessage voIPMessage, int videoState) {
// implement this method to navigate to your in-call 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 this method to handle dismissed calls
}
@Override
public void onDisconnect(@NonNull PushwooshVoIPMessage voIPMessage) {
// override this method to handle disconnected calls
}
@Override
public void onCreateIncomingConnection(@Nullable Bundle payload) {
// this is the earliest point when call notification payload is accessible in your app,
// use it to prepare your app UI for user interactions with call notifications
}
@Override
public void onCallAdded(@NonNull PushwooshVoIPMessage voIPMessage) {
// extension method of InCallService, provides customization options for paired Wearable devices
}
@Override
public void onCallRemoved(@NonNull PushwooshVoIPMessage voIPMessage) {
// extension method of InCallService, provides customization options for paired Wearable devices
}
}

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