[英]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.