江島さん
有山@大阪です。
> ここのステータス変化に関して、教えていただけますか
>
> 最初のIDLEは、電話をかける前ですよね?
いえ、どうやら相手が出るまでは、OFFHOOKにならずIDLEのようですよ。
エミュレータの上でしか実験していないのですが、
1.BroadcastReceiverでandroid.intent.action.NEW_OUTGOING_CALLを受ける
2.onReceive(Context arg0, Intent arg1)内でPhoneStateListenerを登録
3.標準のDialerで発信動作
4.onCallStateChanged(int state, String incomingNumber)で取れる値を観察
この手順で、標準Dialerから発信すると、
IDLE -> OFFHOOK(相手が出た) -> IDLE になっています。
少なくとも番号を入力して発信ボタンを押すまでは、BroadcastReceiverの
onReceive()は実行されないはずですから、電話をかけた後、相手が出るまでは
にIDLE状態であると言う結論にたどり着いたと言う次第です。
不安要素としては、エミュレーターで発信動作をするとすぐに相手が出てしま
うので目視では解りにくいというものがありますけど……。
> 最初に書くべきだったのですが、わたしがやりたい動作は、
> 標準Dialerで電話をかけ、相手が出たらxxxを行うこと
> で、その契機を知る手段を探しております。
僕がサンプルとして作ったアプリは、「標準Dialerで電話をかけ、相手が出た
らToastでメッセージ表示を行うこと」と言うものです。
お役に立てるのであれば、こちらで作ったプロジェクトをお渡しする事も可能
ですが、急場で作ったソースを公衆の面前に晒すのはなんですので、もし必要な
ら言って下さい。こっそり送ります。
有山圭二