Androidフォンに着信があるときに実行する必要があるアプリケーションを作成しています。アプリケーションが着信コールをリッスンし、バックグラウンドで独自に実行するようにしたいと考えていますActivity
。実際に、着信があるとArduinoボードでLEDが点滅するように動作するアプリケーションを作成しています。
2827 次
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 に答える
1
于 2012-07-20T11:41:55.197 に答える
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 に答える