【发布时间】:2016-03-09 13:06:18
【问题描述】:
我正在尝试检测用户何时接听电话。我的应用程序拨打电话号码,但没有看到用户是否接听,我无法执行我需要的关键功能。如本文所示,您似乎可以在第 5 版及更高版本中执行此操作,但我不知道该怎么做。我知道一定有人想出了一个解决方法,因为正如一个人之前所说,一旦用户回答,呼叫计时器就会启动,所以必须有一种方法来检测它。这个问题已经发布了很多次,但没有人发布正确的答案。
似乎答案就在 Tim S. 在这里回答:
Cannot detect when outgoing call is answered in Android
<uses-permission android:name="android.permission.READ_PRECISE_PHONE_STATE" />
<receiver android:name=".listener.OutCallLogger">
<intent-filter>
<action android:name="android.intent.action.PRECISE_CALL_STATE" />
</intent-filter>
</receiver>
public class OutCallLogger extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
switch (intent.getIntExtra(TelephonyManager.EXTRA_FOREGROUND_CALL_STATE, -2) {
case PreciseCallState.PRECISE_CALL_STATE_IDLE:
Log.d(This.LOG_TAG, "IDLE");
break;
case PreciseCallState.PRECISE_CALL_STATE_DIALING:
Log.d(This.LOG_TAG, "DIALING");
break;
case PreciseCallState.PRECISE_CALL_STATE_ALERTING:
Log.d(This.LOG_TAG, "ALERTING");
break;
case PreciseCallState.PRECISE_CALL_STATE_ACTIVE:
Log.d(This.LOG_TAG, "ACTIVE");
break;
}
}
}
【问题讨论】:
-
对此有任何答案或指导吗?
-
你找到解决办法了吗?
标签: android