Android
 Computer >> コンピューター >  >> プログラミング >> Android

Androidでインテントを使用して電話をかける方法【サンプルコード付き】

この記事では、Androidアプリからインテント(Intent)を使用して電話をかける方法を解説します。ACTION_DIALアクションを利用することで、端末のダイヤラー画面を起動し、指定した電話番号を自動入力した状態で表示できます。

ステップ1:新規プロジェクトの作成

Android Studioを開き、「File」→「New Project」を選択して新しいプロジェクトを作成します。必要な項目をすべて入力し、プロジェクトのセットアップを完了させましょう。

ステップ2:レイアウトファイルの編集

res/layout/activity_main.xmlに以下のコードを追加します。ここでは、タップすると発信処理を実行する「Call」ボタンを配置しています。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_margin="16dp"
    tools:context=".MainActivity">

    <Button
        android:onClick="call"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Call" />

</RelativeLayout>

ステップ3:MainActivityの実装

src/MainActivity.javaに以下のコードを追加します。ボタンが押されるとACTION_DIALインテントが生成され、Uri.parse()で指定した電話番号がダイヤラーにセットされます。

package app.tutorialspoint.com.sample;

import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }

    public void call(View view) {
        Intent dialIntent = new Intent(Intent.ACTION_DIAL);
        dialIntent.setData(Uri.parse("tel:" + "8072223081"));
        startActivity(dialIntent);
    }
}

ステップ4:AndroidManifest.xmlの編集

androidManifest.xmlに以下のコードを追加します。直接発信を行う場合にはCALL_PHONEパーミッションの宣言が必要です。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android"
    package="app.tutorialspoint.com.sample">

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

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>

アプリの実行と動作確認

それでは、アプリケーションを実行してみましょう。ここでは、実際のAndroidスマートフォンをPCに接続していることを前提としています。Android Studioからアプリを実行するには、プロジェクト内のいずれかのアクティビティファイルを開き、ツールバーのRunアイコンをクリックします。接続中のモバイルデバイスを選択すると、実機の画面にアプリが表示されます。

「Call」ボタンをタップすると、ダイヤラーアプリが起動し、コード内で指定した電話番号が自動入力された状態で画面が表示されます。

ACTION_DIALとACTION_CALLの違い

ACTION_DIALはダイヤラー画面を表示するだけで、実際の発信はユーザーが通話ボタンを押すことで行われます。そのため、特別な実行時パーミッションは不要です。一方、ACTION_CALLを使用するとアプリから即座に発信できますが、CALL_PHONEパーミッションの宣言に加えて、ユーザーによる権限付与(ランタイムパーミッションのリクエスト)が必要になる点に注意してください。

  1. Macから電話をかける・受ける方法|iPhoneとの連携設定を徹底解説

    iPhoneをお持ちなら、Macでも電話の発着信が可能です。通話はiPhoneを経由して行われるため、相手にはいつもと同じ電話番号で表示され、Macで話していることには気づかれません。 この記事では、Macで電話を発着信できるようにする設定方法を解説します。設定を済ませておけば、iPhoneが家の別の部屋で鳴っていても、カバンの奥にしまわれたままでも、Macに通知が表示され、そのまま応答できるようになります。 また、ちょっとした用件で電話をかけたいときも、わざわざiPhoneを取り出す必要はありません。Macから直接発信できます。 通話はあくまでiPhone経由で行われるため、通話時間は通常ど

  2. Kali Linuxを使ってAndroidスマホにアクセスする方法【Metasploit実践解説】

    Androidスマートフォンは、多くの市販IoT機器への入り口となっています。Nestの煙感知器は専用のAndroidアプリで管理され、Nestサーモスタットも温度調整をアプリから行えます。スマートロックや玄関カメラなど、ほぼすべてのスマートデバイスがAlexaなどのマスターアプリから操作可能です。では、もし第三者がこうしたAndroidスマホへリモートアクセスできてしまったらどうなるでしょうか。「そんなことはあり得ない」と思っていませんか?本記事では、Kali Linuxの「Metasploit」を使ってAndroidスマホにバックドアを作成する仕組みを、基本的なデモ形式で解説します。