簡體   English   中英

如何知道android中的通話活動何時結束

[英]How to know when the call Activity in android is finished

我有以下代碼:

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,但無法在Context上調用此函數。

謝謝

檢查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;
            }

    }

也許這值得一試。 一旦完成工作,您就可以使用startActivityForResult從啟動的活動中獲取一些反饋。

鏈接到已解決的問題

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM