/ / AndroidのCallアクティビティがいつ終了したかを知る方法-Android

アンドロイドのコールアクティビティが完了したときを知る方法 - アンドロイド

私は次のコードを持っています:

public static void dialNumber(Context context, String phoneNumber)
{
_logger.info("Calling " + phoneNumber);
Intent intent = new Intent(ACTION_CALL, Uri.fromParts("tel", phoneNumber, null));

context.startActivity(intent);
}

これにより、指定された電話番号への通話が開始されます。 この呼び出しが終了したときにロジックを追加したいと思います。どうやってやるの。通話が終了したかどうかを知る方法。 startActivityForResultを使用してみましたが、コンテキストでこの関数を呼び出すことができません。

ありがとう

回答:

回答№1は1

チェック BroadcastReceiver レシーバーとシステムのブロードキャストメッセージ。 この種のイベント(開始コール、終了コールなど)は通常、ブロードキャストメッセージによって送信されます。そして、もしあなたがレシーバーを持っているなら、あなたはあなたが望むものを手に入れて、やることができます。例えば、 android.intent.action.PHONE_STATE あなたのために働くかもしれません。 http://androidexample.com/Introduction_To_Broadcast_Receiver_Basics/index.php?view=article_discription&aid=60&aaid=85

intent.getExtrasを通じて必要な情報を取得できると思います

    public void onReceive(Context context, Intent intent) {

intent.getExtras().getString(TelephonyManager.EXTRA_STATE);
String stateStr = intent.getExtras().getString(TelephonyManager.EXTRA_STATE);
String number = intent.getExtras().getString(TelephonyManager.EXTRA_INCOMING_NUMBER);
int state = 0;
if(stateStr.equals(TelephonyManager.EXTRA_STATE_IDLE)){
state = TelephonyManager.CALL_STATE_IDLE;
}
else if(stateStr.equals(TelephonyManager.EXTRA_STATE_OFFHOOK)){
state = TelephonyManager.CALL_STATE_OFFHOOK;
}
else if(stateStr.equals(TelephonyManager.EXTRA_STATE_RINGING)){
state = TelephonyManager.CALL_STATE_RINGING;
}

}

回答№2の場合は0

多分これはチェックする価値があります。 startActivityForResultを使用して、開始されたアクティビティから何らかのフィードバックを取得できます。

解決した質問へのリンク