Как объединить вызов программным способом, когда выполняется другой вызов (конференц-вызов)

Мое требование таково: Скажите, что я вызываю номер в это время, и я хочу назвать другое число запрограммированным. До сих пор я сделал это: я могу позвонить на конкретный номер, пока уже идет какой-то звонок. Например, предположим, что я звоню на номер 123 и после 1 мин. С помощью Alarm Manger меня есть событие триггера для вызова другого номера 456, и это сделано!

 Intent intent = new Intent(Intent.ACTION_CALL); intent.setData(Uri.parse("tel:456")); startActivity(intent); 

Я использую такое намерение позвонить, и теперь я могу видеть экран на своем телефоне, который просит объединить звонок введите описание изображения здесь

На этом изображении вы можете увидеть кнопку «Слияние вызовов». Теперь, когда пользователь нажмет на Merge, он объединит все 3 вызова, мой запрос – это я хочу сделать это. Программно не с пользовательским интерфейсом.

Ваш вопрос казался интересным, поэтому я начал копаться в Android Source. Вот что я нашел:

Активность на картинке, которую вы опубликовали, называется InCallUI

Когда вы начнете оглядываться, вы найдете InCallPresenter, который по строке 463:

 final boolean canMerge = activeCall.can(Capabilities.MERGE_CALLS); 

а затем на 472:

 CallCommandClient.getInstance().merge(); 

когда вы проверяете этот метод merge () в CallCommandClient, вы обнаружите, что он использует интерфейс ICallCommandService, который, я думаю, является тем, что вы ищете. 🙂

Инициализация этого CallCommandClient выполняется в CallHandlerService по строке 193.

Надеюсь это поможет. Удачи.

PS. Перечисленные API-интерфейсы – это, в основном, встроенные элементы Android. Возможно, вам придется использовать рефлексию, чтобы позвонить, или это может быть невозможно вообще – оно может быть недоступно для вашего приложения, потому что оно не помечено как системное приложение.

Android API не поддерживает функцию слияния вызовов, вы можете увидеть эту тему для этого. https://groups.google.com/forum/?fromgroups#!searchin/android-developers/conference $ 20call / android-developers / 6OXDEe0tCks / 8cuKdW1J9b8J, но то, что вы можете сделать, это открыть экран клавиатуры телефона с помощью helpl, откуда пользователь может добавить другой вызов или слить вызов.

Вы не можете управлять конференцией с помощью смартфона. Вам нужна промежуточная услуга, которая может сделать это за вас. Вы можете запрограммировать диспетчер конференций с помощью CCXML .

У Voxeo есть хорошая платформа для реализации CCXML, и вы можете посмотреть их документацию о том, как настроить конференц-связь. В «Обучение CCXML 1.0 \ Multi-Party Conferencing в CCXML 1.0» есть примеры.

Вы можете разрабатывать и тестировать бесплатно на Voxeo, и они только начнут заряжать вас, если вы поместите его в производство. Другим вариантом является Twillio.

Вот ссылка на то, как вы программируете конференцию на своей платформе.

Проверьте ссылки, в которых вы получите полезную информацию. # любезность-SO

Afaik. В SDK нет API, которые программно соединяют вызов.

Вы должны работать на RIL (Radio Interface Layer) для Call Conference, который использует андроид для телефонных вызовов.

Уровень радиоинтерфейса Android (RIL) обеспечивает уровень абстракции между услугами телефонии Android (android.telephony) и радиооборудованием. RIL является радиоагностическим и включает в себя поддержку радиостанций на базе глобальной системы мобильной связи (GSM).

См. Здесь: http://www.kandroid.org/online-pdk/guide/telephony.html

Обновить

Как модемный код разговаривает с Android-кодом

http://fabiensanglard.net/cellphoneModem/index2.php

http://www.e-consystems.com/blog/android/?p=498

Таким образом, вам нужно написать команды AT-модема в сокете, а затем rild вызвать обратный вызов в библиотеку поставщика, затем библиотека поставщика, в свою очередь, делегирует радиопрограмму.

Существует нет api для получения конференц-вызова в android, вы можете играть с корневой системой и выполнять свою работу.

официально андроид не предоставляет никаких ави для конференц-вызова. Вы можете изучить больше для игры с правами доступа здесь

http://www.kandroid.org/online-pdk/guide/telephony.html

  • Объединение нескольких текстовых документов в один Open Xml
  • Лучший способ объединить две карты и суммировать значения одного и того же ключа?
  • Excel - объединить несколько столбцов в один столбец
  • Можем ли мы импортировать XML-файл в другой файл XML?
  • Scala: карта слияния
  • Как объединить два репозитория Git?
  • Git объединяет отчеты «Уже обновлено», хотя есть разница
  • Объединение нескольких PDF-файлов с помощью iTextSharp в c # .net
  • Применить функцию pandas к столбцу для создания нескольких новых столбцов?
  • Как я могу объединить два файла mp4 без потери качества?
  • Встраивание DLL в скомпилированный исполняемый файл
  • Interesting Posts

    Почему избежать кода в шаблоне MVVM WPF?

    Java: разделение имени файла на базу и расширение

    Как заставить Excel (и другие продукты Microsoft Office) прекратить открытие файлов в одном приложении?

    Существуют ли строго типизированные коллекции в Objective-C?

    В OS X Lion LANG не настроен на UTF-8, как его исправить?

    Cortana Search не находит приложения в Windows 10

    Как обновить графический интерфейс из другого streamа?

    Тестирование частного метода с использованием mockito

    Как очистить кеш проекта в идее Intellij, например, Eclipse?

    Прочитать файлы реестра в каталоге «config» Windows из резервной копии?

    Дискриминационный союз в C #

    Почему мой собственный адрес электронной почты не указан в поле Кому?

    Как печатать на консоль с помощью быстрой игровой площадки?

    Как показать эллипсы в моем TextView, если он больше, чем 1 строка?

    ggplot2 0.9.0 автоматически отбрасывает неиспользованные уровни факторов из легенды сюжета?

    Давайте будем гением компьютера.