我有一个根电话,我想实现一个场景,如果电话已经在常规电话中忙并且新来电到达,我的程序挂断当前呼叫并以编程方式接受这个新呼叫。我发现 adb 命令可以很好地接受和拒绝呼叫,但是当我同时执行这些命令以实现上述场景(断开当前呼叫并接受新来电)时,我遇到了新来电建立但两者都没有声音的情况在被叫方和接收方。以下是这些 adb 命令:
Drop Call: input keyevent KEYCODE_ENDCALL
Accept Call: input keyevent KEYCODE_CALL
我还尝试通过 Thread.sleep(3000) 对这些调用添加一些延迟,但它似乎不起作用。在电话日志中,我看到新呼叫接受时出现错误,这是一个错误:
06-20 12:42:27.728 1105-2856/system_process E/JavaBinder: *** Uncaught remote exception! (Exceptions are not yet supported across processes.)
java.util.NoSuchElementException: Death link does not exist
at android.os.BinderProxy.unlinkToDeath(Native Method)
at com.android.server.audio.AudioService.setModeInt(AudioService.java:2547)
at com.android.server.audio.AudioService.setMode(AudioService.java:2518)
at android.media.IAudioService$Stub.onTransact(IAudioService.java:279)
at android.os.Binder.execTransact(Binder.java:697)
任何人都可以解释这个原因和任何反馈来解决这个问题。