Java 如何在对话过程中以编程方式将号码输入android手机应用程序屏幕

Java 如何在对话过程中以编程方式将号码输入android手机应用程序屏幕,java,android,android-intent,android-activity,Java,Android,Android Intent,Android Activity,我想在我的android程序对话期间,以编程方式将号码输入android phone的手机应用程序。(像这样的动作-1.打开拨号键盘,2.键入号码) 例如,当您拨打该电话号码时,该电话号码有分机号码,可用于呼叫目的地。例如-(ph no-+6581329445和分机号码-303),因此,首先您需要拨打电话号码(eg-+6581329445),然后您需要在对方(被叫方)拿起电话后按所需分机号码(eg-303) 我想通过编程来完成这一步。现在,我可以从我的程序中拨打电话号码(eg-+65813294

我想在我的android程序对话期间,以编程方式将号码输入android phone的手机应用程序。(像这样的动作-1.打开拨号键盘,2.键入号码)

例如,当您拨打该电话号码时,该电话号码有分机号码,可用于呼叫目的地。例如-(ph no-+6581329445和分机号码-303),因此,首先您需要拨打电话号码(eg-+6581329445),然后您需要在对方(被叫方)拿起电话后按所需分机号码(eg-303)

我想通过编程来完成这一步。现在,我可以从我的程序中拨打电话号码(eg-+6581329445),然后被叫人会选择电话号码,然后我需要从我的程序中输入目的地分机号码(eg-303)以呼叫目标目的地分机。(可能会拨打目的地分机号码(eg-303)在被叫人接听电话期间(例如-+6581329445)在电话应用程序接听屏幕的键盘上)

用图片解释用例

拨打酒店电话号码(例如-+6581329445)

输入房间分机号码(eg-303)


我想从我的程序中执行步骤2。可能吗?如果可能的话,请给我一些建议,以及如何在android编程中编写这一步骤。非常感谢。

如您所知,您可以要求Android为您拨一个号码:

   Uri number = Uri.parse("tel:" + numberString);
   Intent dial = new Intent(Intent.ACTION_CALL, number);
   startActivity(dial);
但在股票安卓系统上,您拨打号码后无法与拨号程序应用程序进行交互


但是,您可以告诉拨号程序在某些号码之间设置一个暂停

  • 要么暂停2秒钟
  • 或者无限期等待
要在数字之间输入2秒钟的暂停,请在拨号字符串中使用“,”:

  • “6581329445303”(感谢@323go)
要无限期等待,请在拨号字符串中使用“;”:

  • “6581329445;123”
这在某些情况下可能更有用-这取决于自动应答服务允许您进入分机所需的时间


拨号器通过在拨号器应用程序中弹出一个对话框来处理无限期暂停,允许用户发送额外的号码。

我建议在Android API中花一点时间,如果我记得的话,有一些方法实际上可以轻松地完成所有这一切,我不太确定添加扩展是否可行,你能更详细地解释一下你想做什么吗?我有点糊涂了。@Drawerheadeddeveloper,我认为你对API的了解没有你想象的那么好。您不能在通话进行后发送DTMF。但是,您可以在拨号字符串中发送暂停和分机,如
6581329445,,303
@323go您是对的,我试图用第二条评论纠正我的错误。我第一次理解OP时有困难,所以我误读了这个问题。我以为他只是想在屏幕上输入一个数字谢谢你的评论,但我还需要了解更多。我想进一步解释我的情况。在我国,一些建筑物有电话号码和一些分机号码为每个房间在这个建筑物。当您拨打大楼电话时,自动接线员将接听您的电话,并告诉您目标房间(特定房间)的分机号码。我想从我的程序中执行这些步骤,调用building phone no,然后通过编程方式输入目标房间的分机电话号码。谢谢,谢谢你的回答。根据@dreadheaddeveloper的评论,我可以使用拨号字符串(6581329445,303)发送暂停和分机号码。谢谢。@Kyaw根据用户323go,你的意思是。谢谢你的提示-我进一步研究了一下,根据自动应答服务的速度,使用“;”可能对你更有用。