Держите клиентское устройство Twilio в памяти на Android, чтобы вызов можно было сделать немедленно

Я разрабатываю приложение, которое позволяет выполнять экстренные вызовы с помощью Twilio. Мой код взят из https://github.com/twilio/twilio-client-quickstart-android.

Все, что я сделал, отличается от кода GitHub, — это создал отдельный класс AlertManager, который выполняет инициализацию Twilio вне класса Activity.

В любой момент пользователь должен иметь возможность открыть приложение и нажать кнопку, которая (как можно быстрее) сделает экстренный вызов с помощью Twilio.

Моя проблема в том, что Twilio требует создания clientDevice путем запроса «capabilityToken» с моего сервера. Это нормально, но срок действия токена истекает через час.

Предполагая, что всегда есть внешнее подключение к Интернету, как я могу сделать так, чтобы мое приложение всегда имело объект clientDevice (с действительным токеном), доступный где-то в памяти, так что, когда пользователь вводит Activity для экстренного вызова, они могут сделать это немедленно, без необходимости приложению запрашивать новый токен или создавать новый clientDevice?

Из быстрого теста с использованием режима полета и жесткого кодирования действительного токена видно, что Twilio SDK может создать clientDevice, если у него есть токен, т. е. для получения токена требуется только один сетевой запрос, а не два, если требуется другой. создать clientDevice.

Я знаю, что мог бы использовать какой-то Service для получения токенов, но я не совсем уверен, где я могу хранить свои clientDevice. Он не может находиться внутри Activity, так как приложение не всегда будет запущено. Мне было интересно создать свой собственный класс Application, но, насколько я понимаю, Android может и будет создавать новые экземпляры этого класса, когда это необходимо, что затем приведет к удалению моего clientDevice из памяти. Или можно сохранить его в Service и потом отправить какую-то широковещательную рассылку в Сервис для совершения звонка?

Я надеюсь, что это имеет какой-то смысл, и если у кого-то есть какие-либо идеи, это будет очень признательно.




Ответы (1)


Евангелист разработчиков Twilio здесь.

У меня есть пара идей по поводу истечения срока действия токена.

Во-первых, вы можете установить срок действия токена до 24 часов.

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

Я не знаю о сохранении живых объектов, пока ваше приложение находится в фоновом режиме, хотя я боюсь. Надеюсь, кто-то еще может помочь вам здесь.

person philnash    schedule 01.11.2017