Отключение вызова Connect с помощью клиента Twilio Android

Я использую Android-клиент Twilio. device.connect() работает нормально, но не может отключить подключенный вызов, хотя пользователь (я набрал номер), если он повесит трубку, вызов будет отключен. Я пробовал с device.disconnectAll() и connection.disconnect(), оба не работают. Пожалуйста, объясни мне, где я ошибаюсь.

Просто: вызывающий абонент не может отключить вызов, в то время как вызываемый абонент может.

Заранее спасибо.

Чтобы соединить звонок

HashMap<String, String> p = new HashMap<String, String>();
p.put("PhoneNumber", personToCall);
p.put(Connection.IncomingParameterFromKey, (String) device.getCapabilities().get(Device.Capability.CLIENT_NAME));
p.put(Connection.IncomingParameterToKey, personToCall);
device.connect(p, this);

и отключить

connection.disconnect()

person user2771222    schedule 01.09.2014    source источник
comment
Первый шаг, разместите код. Не видя кода, все, что мы действительно можем сделать, это угадать, что вы делаете неправильно, и это пустая трата вашего времени, равно как и нашего. : D) Вы можете использовать эту ссылку изменить, чтобы добавить дополнительные сведения. Удачи!   -  person jmort253    schedule 01.09.2014
comment
Кроме того, если вы видите какие-либо сообщения об ошибках, опубликуйте их.   -  person jmort253    schedule 01.09.2014
comment
@ jmort253 сообщения об ошибке нет.   -  person user2771222    schedule 01.09.2014
comment
Откуда вы берете объект connection? Согласно документам, device.connect возвращает объект подключения.   -  person jmort253    schedule 01.09.2014
comment
из onConnecting(Connection connection) обратного вызова. Ну, я тоже пробовал device.connect(), но безуспешно.   -  person user2771222    schedule 01.09.2014
comment
Я не вижу этого в вашем коде ...   -  person jmort253    schedule 01.09.2014


Ответы (1)


В вашем коде неясно, как вы получаете объект подключения, который является одной из двух основных частей клиента Twilio.

В документации Twilio Client есть пример выполнения исходящих вызовов а>:

import com.twilio.client.Connection;
import com.twilio.client.Device;
import com.twilio.client.Twilio;


public class MonkeyPhone implements Twilio.InitListener
{
    private Device device;
    private Connection connection;

    /* ... other methods ... */

    public void connect()
    {
        connection = device.connect(null /* parameters */, null /* ConnectionListener */);
        if (connection == null)
            Log.w(TAG, "Failed to create new connection");
    }

    @Override
    protected void finalize()
    {
        if (connection != null)
            connection.disconnect();
        if (device != null)
            device.release();
    }
}

В этом примере, когда вы вызываете device.connect (), объект соединения возвращается и сохраняется как свойство в объекте, чтобы на него можно было ссылаться позже. В методе finalize мы вызываем connection.disconnect (), чтобы завершить вызов.

Если вы не вызываете отключение для объекта подключения, возвращенного из device.connect (), вызов может отключиться неправильно. Дополнительные сведения см. В документации Twilio для Device.connect.

person jmort253    schedule 01.09.2014
comment
Теперь я взял объект подключения из device.connect(), но безуспешно :( .. - person user2771222; 01.09.2014
comment
Вы действительно начали с загрузки их демоверсии и запуска ее? Обычно первое, что нужно сделать, когда вы работаете с чем-то новым, - это сначала запустить их проект, чтобы у вас было что-то, что действительно работает, для начала, прежде чем вы начнете заниматься своими делами ... . - person jmort253; 01.09.2014
comment
В демо они просто инициализируют Twilio. - person user2771222; 01.09.2014
comment
Вы уверены в этом? Мне кажется, они проводят вас через настройку демоверсии Android с полем для ввода номера телефона, кнопкой вызова и кнопкой отбоя: twilio.com/docs/quickstart/php/android-client/ - person jmort253; 01.09.2014
comment
Я не могу представить, чтобы они заставляли вас создавать кнопки, которые ничего не делают. Вам действительно стоит попробовать. Я подозреваю, что вам не хватает чего-то, что стало бы более понятным, если бы сначала просто запустили их примеры. Удачи! :) - person jmort253; 01.09.2014
comment
Да, я в этом почти уверен. - person user2771222; 01.09.2014
comment
Ознакомьтесь с этим разделом о прекращении разговора. twilio.com/docs/quickstart/php/android- клиент / повесить трубку - person jmort253; 01.09.2014
comment
@ jmort253 Реализовали ли вы код для входящего звонка в службе Android? Я внедрил код в Activity, который работает нормально, но когда я интегрирую этот код в Service, я получаю нулевые значения Device и Connection. - person Anshul Tyagi; 17.07.2015