我有一个关于意图行动ACTION_CALL
的问题。
用户结束通话后返回自己的应用程序/活动的正确方法是什么?
Intent intent = new Intent(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:" +m1));
startActivity(intent);
我使用上面的代码拨打了电话。请给我一个解决方案,在呼叫操作后调用我自己的活动。
答案 0 :(得分:2)
不幸的是,有些手机有设置强制进入呼叫后的呼叫记录......
但是,您可以在startActivity
检查TelephonyManager.getCallState
之后运行循环,再次TelephonyManager.CALL_STATE_IDLE
时,您可以重新启动自己的Activity
一定要在循环中添加一些睡眠
答案 1 :(得分:0)
在结束之后.......它只需要回到活动.. !!你可以处理那个onRestart();
答案 2 :(得分:0)
我遇到了同样的问题,最终解决了这个问题:
public class CallTracker extends PhoneStateListener implements Runnable {
private Context mActivity;
private Callback mCallback;
public interface Callback {
void onCallEnded();
}
public CallTracker(Activity activity) {
super();
mActivity = activity;
if (mActivity instanceof Callback) {
mCallback = (Callback) mActivity;
}
}
@Override public void onCallStateChanged(int state, String incomingNumber) {
if (state == TelephonyManager.CALL_STATE_IDLE) {
mCallback.onCallEnded();
}
}
public class CallerActivity extends AppCompatActivity implements
CallTracker.Callback {
@Override public void onCallEnded() {
Toast.makeText(this, "Call ended!", Toast.LENGTH_SHORT).show();
}
}