专注于Blackberry

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

最近使用了很多在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); 是不是觉得很简单呢。 不过,这个方法,包括我上面说的几个软件都有一个共同的缺点,而且我认为是一个特别不好的方式,那就是当对方拨通电话之后,响了一声就挂断。这对于打电话的人来说是特别不友好的。 试想一下,你如果打电话给对方,然后啪一声挂了,接着你又打,又是啪一声。你什么感觉?

继续阅读本文 →

Taigoo发表于 October 13, 2008 5:56 pm | 留言(8) |开发 

BlackBerry 应用程序开发者指南 第二卷:高级–第6章 访问电话应用程序

6           第6章 访问电话应用程序 电话API 监听电话事件 访问和管理电话记录 电话API 电话API((net.rim.blackberry.api.phone)可以访问电话应用程序的高级特性,例如允许应用程序将DTMF(双声多频)的音调(tone)到活动的通话中. 注:为了简单调用电话应用程序和拨打一个电话,使用调用API(net.rim.blackberry.api.invoke),为获得更多信息,参看83业的”启动应用程序”. 当应用程序第一次访问电话API时,检查一个 NoClassDefFoundError.如果系统管理员通过应用程序控制限制访问HTTP过滤器API,将抛出此错误. 为获得更多信息,参看BlackBerry应用程序开发者指南 第2卷:高级 第1卷:基础. 接收一个电话 调用Phone.getActiveCall()接收一个活动的电话.根据电话ID获取一个电话, 调用 Phone.getCall(int). PhoneCall call = Phone.getActiveCall(); 获取电话信息 PhoneCall类提供方法使应用程序获取电话的信息.例如,下面的代码检验电话的通话时间,电话的状态,以及在显示来电显示消息之前它是否正在出去. int threshold = 120; // Alert user if outgoing calls last longer than threshold. int elapsedTime = call.getElapsedTime(); // Use getStatusString() to retrieve status as an string. int status = [...]

继续阅读本文 →

Taigoo发表于 April 29, 2008 5:47 am | 留言 |文档