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 topublic 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 toimport 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")