我正在开发一个androidstudio应用程序,它使用callservice,我的应用程序是基于这篇文章:replace default phone app。我有一个callservice类设置,如下所示:
import android.telecom.Call;
import android.telecom.InCallService;
public class CallService extends InCallService {
@Override
public void onCallAdded(Call call) {
super.onCallAdded(call);
new OngoingCall().setCall(call);
CallActivity.start(this, call);
}
@Override
public void onCallRemoved(Call call) {
super.onCallRemoved(call);
new OngoingCall().setCall(null);
}
}
我尝试在用户挂断时使用ondeflection方法,因为我假设ondeflection方法本质上是将调用转向/转发到另一个号码。
在callactivity.java文件中,我尝试了以下方法:
@OnClick(R.id.hangup)
public void onHangupClicked() {
ongoingCall.hangup();
}
在ongoingcall.java文件中,我有以下挂断方法:
public void hangup() {
assert call != null;
Uri test_uri = Uri.fromParts("tel", "+15086540541", null);
Log.d("deflecting call to", test_uri.toString());
call.deflect(test_uri);
Log.d("call deflected", "good");
}
控制台日志工作正常,它们似乎表明号码已被转移,但是,在呼叫的个人结束时,没有发生任何事情/呼叫未被转移。还要注意,这里的call只是call类的一个示例(https://developer.android.com/reference/android/telecom/call)
关于在线偏转呼叫几乎没有任何内容-这里有一行文档:https://developer.android.com/reference/android/telecom/call#deflect(android.net.uri)
我也找到了这个小例子here:https用法://android.googlesource.com/platform/cts/+/master/tests/tests/telecom/src/android/telecom/cts/calldetailstest.java,其中有一个testdeffect()方法,我从中获得了用于编码uri的行。
我已经用*21、#、21等改变了uri编码行,但似乎什么都不起作用。是否有其他方法转发/重新路由调用,或者是否有人知道为什么deflect方法不起作用/是否有一个功能示例?
暂无答案!
目前还没有任何答案,快来回答吧!