2

Androidフォンに着信があるときに実行する必要があるアプリケーションを作成しています。アプリケーションが着信コールをリッスンし、バックグラウンドで独自に実行するようにしたいと考えていますActivity。実際に、着信があるとArduinoボードでLEDが点滅するように動作するアプリケーションを作成しています。

4

4 に答える 4

2

Android クックブックの第 12 章電話アプリケーションが役立つと思います。

ただし、短いバージョンでは、電話の状態が変化したことを示すブロードキャスト メッセージを聞く必要があります。これを行うには、サブクラスBroadcastReceiver化してマニフェストにコードを追加し、イベントをキャプチャします。

ファイル AndroidManifest.xml:

<application android:icon="@drawable/icon" android:label="Incoming Call Interceptor">

    <receiver android:name="IncomingCallInterceptor">
        <intent-filter>
             <action android:name="android.intent.action.PHONE_STATE"/>
        </intent-filter>
    </receiver>

</application>

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

ファイル IncomingCallInterceptor.java:

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.telephony.TelephonyManager;
import android.widget.Toast;

public class IncomingCallInterceptor extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
        String msg = "Phone state changed to " + state;

        if (TelephonyManager.EXTRA_STATE_RINGING.equals(state)) {
            String incomingNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
            msg += ". Incoming number is " + incomingNumber;

            // TODO This would be a good place to "Do something when the phone rings" ;-)
        }
        Toast.makeText(context, msg, Toast.LENGTH_LONG).show();
    }
}

私がリンクしたページには、これが実際にどのように機能するか、および検出できる追加事項 (ユーザーが通話に応答または拒否したときなど) についての詳細が記載されています。ですから、必ず読んでください。

于 2012-07-20T11:44:34.660 に答える
0

Bluetooth を使用してこれを行いたい場合は、Amarinoと呼ばれるプロジェクトを参照してください。Web から入手できる 6 ドルの安価な Bluetooth モジュールを使用できます。

私はこれを行いましたが、正常に動作します。

于 2012-07-25T14:00:16.153 に答える
0

そのためのインテント フィルターを設定できます。インテントはアクティビティにバインドされます。

これは、マニフェスト (アクティビティ内) に追加する必要があるものです。

<intent-filter> 
            <action android:name="android.intent.action.CALL" />

私の知る限り、これは発信通話で機能します。着信でも機能するかどうかを確認する必要があります..

于 2012-07-20T11:46:23.447 に答える