逆引きAndroid入門 電話をかけるソースコードは

電話をかけるソースコードは

Dialerアプリケーション

Googleアプリケーションとしてプレインストールされている「Dialer」アプリケーションは、
「電話をかける」「電話をかける画面を表示する」機能を、インテントとして公開しているため、
任意のアプリケーションから、ソースコードレベルで電話をかけることができます。

206-1.png

 

公開されているインテントの仕様は、以下にあります。

http://developer.android.com/guide/appendix/g-app-intents.html

ここでは、「Dialer」アプリケーションのインテントアクションである「CALL」「DIAL」について、順に説明していきます。

 

電話をかけるには

インテントアクション「CALL」は、電話をかけるためのインテントアクションであり、
android.contentパッケージ、Intentクラスの定数 Intent.ACTION_CALL として定義されています。

インテントを利用するには、インテントのインスタンスを作成する必要がありますが、ここでは、
インテントのコンストラクタの第1引数に、インテントアクションとして、Intent.ACTION_CALL、
第2引数のUriに、Uri.parse("tel:0123456789")など、tel:で始まる電話番号を指定します。

  • ソースコード(*.java)

Intent intent = new Intent(
    Intent.ACTION_CALL,
    Uri.parse("tel:0123456789"));

startActivity(intent);

 また、このインテントアクションを利用するためには、マニフェスト(Manifest)ファイルにCALL_PHONEのパーミッションを追加する必要です。

  • マニフェストファイル(AndroidManifest.xml)

<uses-permission android:name="android.permission.CALL_PHONE"/>
  • 実行画面

206-2.png

 

電話をかける画面を表示するには

上記説明のIntent.ACTION_CALLを、Intent.ACTION_DIALに変更することで、
電話をかける手前の段階である、電話をかける画面を表示することもできます。

この場合の、インテントの第2引数は、先と同様ですが、
このインテントアクションのみ利用する場合には、先のCALL_PHONEパーミッションは不要です。

  • ソースコード(*.java)

Intent intent = new Intent(
    Intent.ACTION_DIAL,
    Uri.parse("tel:0123456789"));

startActivity(intent);

  • 実行画面

206-3.png