我可以使用此代码拨打电话:
Intent dial = new Intent(Intent.ACTION_CALL);
dial.setData(Uri.parse("tel:5556") );
context.startActivity(dial);
但是如何检测是否接听电话或拒绝接听电话? 我尝试过PhoneStateListener,但它无法正常工作。
答案 0 :(得分:1)
不幸的是,Android没有理由知道何时接听了拨出电话。
PhoneStateListener工作正常,但onCallStateChanged通知的3个状态是不够的。欢迎使用像CALL_STATE_CONNECTED这样的附加状态。
有一个未解决的问题请求此功能,但到目前为止它没有受到太多关注: https://code.google.com/p/android/issues/detail?id=14266
有些人(像我一样)使用logcat回退并尝试推断是否已经回答了拨出电话,但这远非理想的解决方案。
答案 1 :(得分:0)
我也在寻找同一问题的答案,显然没有直接的方法可以做到这一点。但是,我认为我们可以将Call Log内容观察者与PhoneStateListener结合起来以获得呼叫持续时间。 我们可以在启动传出呼叫时在共享首选项中设置一个标志,如果调用日志中有任何更改并且我们的共享首选标志为真,我们可以从呼叫日志中获取呼叫持续时间,以查看呼叫是否曾连接过:)< / p>
答案 2 :(得分:-1)