专注于blackberry » 黑莓通过编程的方式挂电话

      专注于Blackberry

黑莓通过编程的方式挂电话

Confach 发表于 October 13, 2008 5:56 pm

版权信息 :严禁转载, 若想推荐或收藏,请用链接的形式.

网址:http://www.inblackberry.com/web/development/how-to-disconnect-phone-call.html

最近使用了很多在Blackberry运行的来电防火墙软件。其实他们的实现方式很简单。

先分析一下,如何挂断电话呢?如果你在RIM提供的API里找一圈,你会特别失望,因为它根本没有提供对应的API。这点上,我觉得RIM特别不道德。

但是是不是没有方法了呢?我觉得办法还是有的。

我想出的办法就是模拟挂电话这个操作。

3个步骤:

  • 按下去:press down
  • 按住,哪怕0.1s:Hold on
  • 松开: press up

代码如下:

EventInjector.KeyEvent pressEndKey=
    new EventInjector.KeyEvent(EventInjector.KeyEvent.KEY_DOWN,
Keypad.map(Keypad.KEY_END),KeypadListener.STATUS_NOT_FROM_KEYPAD,100);

EventInjector.KeyEvent releaseEndKey=
                new EventInjector.KeyEvent(
                    EventInjector.KeyEvent.KEY_UP,
                    Keypad.map(Keypad.KEY_END),
                     KeypadListener.STATUS_NOT_FROM_KEYPAD,100);

EventInjector.invokeEvent(pressEndKey);
EventInjector.invokeEvent(releaseEndKey);

是不是觉得很简单呢。

不过,这个方法,包括我上面说的几个软件都有一个共同的缺点,而且我认为是一个特别不好的方式,那就是当对方拨通电话之后,响了一声就挂断。这对于打电话的人来说是特别不友好的。

试想一下,你如果打电话给对方,然后啪一声挂了,接着你又打,又是啪一声。你什么感觉?



8 个评论 »

1.   simon 发表于 October 17,2008 04:55:57

不仅如此

这个方法只能实现成功的block一次, 第二次就无法挡住

另外, 这个方法需要改permmission, 如果无法成功edit permission,这个方法一样无法使用。

2.   Confach 发表于 October 17,2008 08:47:50

是吗,有时间我测试一下看看

3.   plumpbird 发表于 October 22,2008 14:51:16

恩 我也一直用的这个方法
必须在使用前设定程序权限 而确实有部分手机无法设定权限

4.   Confach 发表于 October 22,2008 14:52:24

感谢plumpbird的经验分享

5.   plumpbird 发表于 October 22,2008 15:01:28

哇 你回复好快
忘了说 simon所说的只能block一次 我也遇到过 是因为手机firmware的版本低
4.2.0.xxx及以下的有这个问题 4.2.1.xxx以上的就没有了 应该是firmware的bug

6.   Confach 发表于 October 22,2008 15:05:40

我还没来得及测试,我会测试的。 谢谢你,plumpbird!

7.   simon 发表于 November 5,2008 13:52:33

其实跟KeyEvent的参数有关,并不是跟版本关联, 我有个朋友现在可以做到4.2.1以下版本实现,但是keyinjector其实不是一个好办法。国外的产品并不是用这个实现

8.   plumpbird 发表于 November 6,2008 11:36:20

好像RIM有需要花钱买的API 国外产品应该是用那个做的

本文评论的RSS · TrackBack URI

发表评论