Twilio クライアント Android SDK

The Twilio Client SDKs for Android & iOS have been deprecated and replaced by Twilio's new Programmable Voice SDK.

The Programmable Voice SDK offers many improvements over the Twilio Client SDK, including greater stability, improved backgrounding, and built-in support for push notifications for incoming calls.

Get started with the new Programmable Voice SDK by checking out one of the links below:
Programmable Voice SDK for Android Quickstart 
Programmable Voice SDK for iOS: Objective-C Quickstart 
Programmable Voice SDK for iOS: Swift Quickstart

If you're just getting started with a Twilio mobile application for voice calling, we recommend you use the Programmable Voice SDK. If you're already using the Twilio Client SDK, you should plan to upgrade to the Programmable Voice SDK as soon as you're able.

概要

Android アプリで電話をかけたり、受けたりしたいですか ?それならば、もう他を探す必要はありません !

Twilio クライアント Android は、固定電話や、ウェブ ブラザ、他のモバイル機器を始めとする Twilio クライアント デバイスとの音声通信を実現する Android 用の Java ライブラリです。

Android SDKのインストール

最新のクライアントSDKライブラリーをインストールするには、下記構成を build.gradle ファイルに追加してください。

allprojects {
  repositories {
     jcenter()
  }
}

dependencies {
  // The Client SDK resides on jCenter
  compile 'com.twilio:client-android:1.2.21'
}

マイクパーミッションの有効化

Android API レベル 23 以降を対象にするためには、使用しているアプリケーションがマイクへアクセスするためのランタイムパーミッションを確実にリクエストする必要があります。そのためには、次の 2 つの手順を実行します。

まず、Android マニフェストファイルに以下を追加します。

 <uses-permission android:name="android.permission.RECORD_AUDIO"/>

次に、アプリケーションコードでマイクパーミッションをリクエストします。

ActivityCompat.requestPermissions(this,
    new String[]{Manifest.permission.RECORD_AUDIO}, MIC_PERMISSION_REQUEST_CODE);
}

詳細については、公式の Android ドキュメントを参照してください。

クライアント・サービス

クライアントSDKはアプリケーションがフォアグラウンド状態ではない間に可用性を維持するため、Android Serviceを利用します。 サービスは AndroidManifest.xml 中で宣言されている必要があります。

<service android:name="com.twilio.client.TwilioClientService" 
                       android:exported="false" android:stopWithTask="true"/>

ProGuard 例外

proguard-project.txt ファイルに以下の行を追加します。

# Twilio Client
-keep class com.twilio.** { *; }

# Apache HttpClient
-dontwarn org.apache.http.**

これで、Twilioクライアント・ライブラリーがProGuardによって削除されないようになります。

アーキテクチャ

Twilio クライアント アプリには、3 つの主要な構成要素があります。

  1. Twilio クライアント Android ライブラリを使用する Android アプリ
  2. クライアント アプリにケイパビリティを許可し、TwiML を提供し、Twilio REST API 通話を行うサーバー
  3. テレフォニーを扱い、TwiML と Twilio REST API 通話を処理する Twilio のクラウド サービス

Twilio Client Android SDK Architecture

クライアント サイドのクラス

アプリから Twilio サービスに接続するためのプライマリ クラスが Deviceです。 このクラスは Twilio のサービスへの認証を整え、着信の接続を待ち受け、発信の接続を確立します。 このクラスのインスタンスは、次のセクションで説明する「ケイパビリティ トークン」を用いて作成します。

Twilio との着信または発信の接続は、 Connectionクラスのインスタンスで表現されます。

また、リスナー インターフェイスである DeviceListenerConnectionListenerを実装したオブジェクトには、ステータス コールバックを使用できます。

サーバー サイドのセキュリティ: ケイパビリティ トークン

Twilio クライアント SDK は、Android アプリから Twilio への通信を許可する際に ケイパビリティ トークン を使用します。 これらのトークンはユーザーのサーバーで生成され、着信の接続が受けられるか、発信の接続を行えるかどうかなど、アプリが使用できるケイパビリティを指定 することができます。 トークンは必ず一定時間で失効します。つまり、不正な利用を防止するため、すべてのトークンには有効期限があります。 トークンを更新する頻度は、ユーザーが決めることができます。

Twilio のケイパビリティ トークンは、JSON Web Token (JWT) 標準に基づいています。 トークンは Twilio の Helper ライブラリ で生成できます。さまざまな言語の Helper ライブラリが用意されています。

Twilio アカウントのセキュリティ保護のため、Google Play Store に登録するアプリには、ケイパビリティ トークンまたは Twilio の AuthToken を文字列で埋め込むことはお勧めしません。

クラス リファレンス

ヘルプが必要ですか?

誰しもが一度は考える「コーディングって難しい」。そんな時は、お問い合わせフォームから質問してください。 または、Stack Overflow でTwilioタグのついた情報から欲しいものを探してみましょう。