Android:拨打电话后拨打自定义号码

时间:2012-08-24 12:38:21

标签: android

我正在处理一个接听电话的应用,并且在通话期间拨号盘输入之前保存或复制的号码。首先,我想知道这是否可行。其次,我一直在考虑一些想法,但我不知道它们有多疯狂,因为我对Android相对较新,对它的局限性一无所知:

  1. 在剪贴板中存储一个号码,并在调用屏幕中点击粘贴,这样只需将号码粘贴到拨号器中
  2. 取出存储在剪贴板中的数字中的每个数字,并以编程方式按下用户可以触摸的电话簿上的按键
  3. 在我自己的应用程序中打开来电,该应答可以应答来电,并且可以在拨号器中粘贴/添加号码
  4. 覆盖在呼叫中弹出的小键盘上的一个键(比如退格键),然后重新编程以执行我想要的功能(因此,它不会退回,而是进入保存号码)
  5. 这些都是可能的(为什么或为什么不可能)?或者你能建议任何其他方式来实现我想要的吗?非常感谢,非常感谢。

    编辑:让我更具体一点。这是我定位的屏幕:

    enter image description here - 我需要一些方式来获取此字段中的自定义数字。无论如何,我只需要一个领先或小费让我走上正轨。我见过人们制作的应用程序是自定义拨号程序,但他们所做的只是输入一个号码并打电话。如果我必须创建自己的应用程序,它必须能够接听电话或访问接听电话,并填充上述字段或其自己的字段,以便提供相同的功能。

3 个答案:

答案 0 :(得分:3)

我不认为有

的API

我现在想的最好的方法是在通话期间打开一个应用程序(可能通过Receiver),使用TextView输入文字

然后在这里你可以打电话:

Intent intentCall = new Intent(Intent.ACTION_CALL, Uri.fromParts("tel", phoneNumber, null));
startActivity(intentCall);

但我不知道手机应用会如何反应

答案 1 :(得分:2)

根据您提供的说明,您似乎需要使用电话管理器界面。 您可能面临的问题是,您可能会尝试以编程方式选择呼叫并有效地更改电话状态。换句话说,您需要MODIFY_PHONE_STATE权限。此权限现在仅限于系统应用程序,从Gingerbread开始。 如果没有这个基本许可,我认为您的应用程序理念不会非常可行。此外,由于您将尝试以编程方式键入数字,我假设是为了发送DTMF音调,您将遇到Android In Call Data无法访问应用程序的问题。 截至目前,缺少对Android中正确的电话包的支持。 我希望上面的内容澄清了你的一些问题。

答案 2 :(得分:2)

如果我理解正确,您希望应用在收到来电后拨打拨号盘中的几个号码。

以下可能是值得尝试的选项。

使用com.android.internal.telephony.ITelephony获取内部Java reflection对象。 Details here。然后调用dial()方法。此方法只是将数字添加到拨号盘,但实际上并未启动电话呼叫。这可能适合你。