Twilioを使用して緊急電話を許可するように設計されたアプリを開発しています - 私のコードはhttps://github.com/twilio/twilio-client-quickstart-androidから派生しています。Twilio clientDeviceをAndroid上のメモリに保存しておくと、すぐに電話をかけることができます
私がGitHubコードと異なるのは、別のAlertManager
クラスを作成して、Twilioの初期化をActivity
の外で行うクラスです。
いつでもユーザーはアプリを開いてTwilioを使用して緊急電話をかける(できるだけ早く)ボタンをタップする必要があります。
私の問題は、私のサーバから "capabilityToken"を要求してTwilioがclientDevice
を作成する必要があるということです。それは問題ありませんが、トークンは1時間後に失効します。
いつも外部のインターネット接続があると仮定すると、私のアプリケーションにはclientDevice
(有効なトークンを持つ)オブジェクトがどこかのメモリで利用できるようにすることができます。つまり、ユーザーがActivity
を入力して緊急呼び出しアプリは新しいトークンを要求したり、新しいclientDevice
を作成しなくてもすぐに処理できますか?
飛行機モードを使用したクイックテストと有効なトークンをハードコーディングすると、Twilio SDKはトークンを持っている限り、clientDevice
を作成できます。つまり、トークンを取得するのに1つのネットワーク要求clientDevice
を作成するにはもう1つ必要です。
Service
を使用してトークンをフェッチすることができますが、どこに私がclientDevice
を格納できるかは完全にはわかりません。アプリが常に実行されているわけではないため、Activity
の中には存在できません。私はApplication
クラスを作成することに不思議を覚えましたが、Androidを理解することができ、そのクラスの新しいインスタンスを作成して、clientDevice
がメモリから削除されることになります。または、それをService
に保存して、サービスに何らかの種類のブロードキャストを送信して電話をかけることは可能ですか?
私はそれが何らかの意味を持ち、誰かが何らかのアイデアを持っていればそれは大いに感謝してくれることを願っています。