2012-08-24 94 views
2

我正在接听电话的应用程序,并且在拨打电话的过程中,它会输入先前保存或复制的号码。首先,我想知道这是否可能。其次,我一直有些想法想,但我不知道他们会如何疯狂是因为我是比较新的Android和有关于它的局限性一点想法:Android:拨打一个自定义号码,一旦拨打电话

  1. 存储在剪贴板中的数字,并有在通话屏幕上点击粘贴,只需将数字粘贴到拨号器中
  2. 取出存储在剪贴板中的号码中的每个数字,然后以编程方式按下用户将触摸的电话垫上的键
  3. 在我自己的应用程序中打开来电,该应用程序可以接听电话并具有在拨号程序中粘贴/添加号码的功能
  4. 覆盖上,在一个调用(比如退格键),弹出的小键盘的按键之一,再编程它来执行我想要的功能(所以不是退格,它会进入保存的号码)

这些都是可能的(为什么或为什么)?或者你可以建议任何其他方式来实现我想要的?谢谢,非常感谢。

编辑:让我更加具体。这是我针对屏幕:

enter image description here - 我需要一些方式来获得一个自定义数字到这个领域。无论如何,我只需要一个领导或小费来让我走上正确的轨道。我看到人们制作的应用程序是自定义拨号程序,但他们所做的只是输入一个号码并拨打电话。如果我必须制作自己的应用程序,它必须能够接听电话或访问接听的电话,并填充上述字段或自己的字段,以便发挥相同的功能。

+0

“我正在开发一个可接听电话的应用程序,并且在通话过程中拨号盘中输入了以前保存或复制的号码。” - 你能用不止一句话来描述问题吗? “自定义号码”是什么意思?另外,“接听电话的应用程序”是什么意思? – RajV

+0

@RajV那么,我的意思是,如果它检测到某个来电号码(用户可以设置的自定义号码),那么我的应用程序就会接听电话而不是默认的应用程序,并且我将能够编程可以灵活地在我自己的应用程序中将数字输入拨号盘。这是假设我不能将任何数字添加到默认应用程序拨号器(在调用中),以及额外的假设,我被允许编写一个应用程序来接听并处理它,而不是默认的Android应用程序。这是否更有意义?谢谢! – capcom

+0

查看我的回答。要接听来电,您需要使用内部ITelephony对象。同样的拨号方式可能会让您在拨号盘上输入几个数字。如果这样做,就不需要编写自己的拨号程序。 – RajV

回答

3

我不认为这是对于

我想现在最好的办法是用一个TextView在那里你可以输入文本呼叫(可能通过接收器)时打开一个应用程序的API

然后在这里你可以让你的电话:

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

但我不知道手机的应用程序将如何反应

+0

非常感谢您的回答。但据我所知,是不是intentCall会开始新的呼叫?不在当前的呼叫中再打一个电话? – capcom

+0

是的,这是错过的部分。我不知道当前的通话是如何处理这个新的意图的,它会停止通话并重新建立一个新的通话,还是将通话置于保持状态并进行新的通话:? –

+0

我想我会尝试它,但我不指望它的工作:(有* *是一种方式来做到这一点! – capcom

2

从你给出的描述,看来日您需要使用电话管理器界面。 您可能面临的这个想法将会面临的问题是,您将尝试以编程方式选择呼叫并有效更改电话状态。换句话说,您需要MODIFY_PHONE_STATE权限。此权限现在仅限于系统应用程序,从姜饼开始。如果没有这个基本的许可,我认为你的应用程序的想法不会太难。此外,由于您试图以编程方式键入数字,我假设这是为了发送DTMF音调,因此您将遇到Android In Call Data无法访问的问题。 截至目前,Android中对适当的电话软件包的支持缺失。 我希望以上内容能澄清你的一些问题。

2

如果我理解正确,您希望应用程序在收到呼叫后在拨号盘中输入几个数字。

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

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

+0

谢谢!我现在正在调查这个。 – capcom

+0

你知道我在哪里可以找到例如,我无法在API中找到dial()函数,谢谢。 – capcom

+0

只是想让你知道我已经试过了,并且它不起作用。通话结束后拨号程序结束,但拨打电话时仍未进入活动拨号程序(如原始帖子中的图片所示)。如果您想查看我的代码以查看是否可以计算出任何内容,那么将是真棒。再次感谢,我希望它的工作:( – capcom