我的应用中有一个列表字段,显示了联系人列表。当用户按下绿色呼叫按钮时,我想呼叫所选联系人(而不是启动电话呼叫日志应用程序的默认行为)。
这意味着有两个问题: 1)我可以拦截绿色呼叫按钮吗? 2)如何从应用程序拨打电话?
答案 0 :(得分:4)
在回答问题之前,我们假设您正在跟踪列表中当前选定的项目,并且您可以找到相关的电话号码。
1)拦截通话按钮
您需要在Manager或Screen中实现keyDown(int, int)
方法,捕获正确的密钥代码,然后返回true:
protected boolean keyDown(int keycode, int time)
{
// check for the green phone button
if (keycode == 1114112)
{
/*
* Place your custom calling code here.
*/
return true; // indicates that this method has consumed the keypress
}
else
{
return super.keyDown(keycode, time);
}
}
2)拨打电话
您需要Invoke()
手机应用,并传递您要拨打的电话号码:
PhoneArguments callArgs = new PhoneArguments(
PhoneArguments.ARG_CALL, "+27 83 111 1234");
Invoke.invokeApplication(Invoke.APP_TYPE_PHONE, callArgs);
<小时/> 所以组合给出了这段代码:
protected boolean keyDown(int keycode, int time)
{
// check for the green phone button
if (keycode == 1114112)
{
// get phone number - you must write this yourself
String number = selectedContact.getNumber(); // assume some method here depending on your solution
// make the call
PhoneArguments callArgs = new PhoneArguments(
PhoneArguments.ARG_CALL, number);
Invoke.invokeApplication(Invoke.APP_TYPE_PHONE, callArgs);
// indicate that the key has been processed
return true;
}
else
{
return super.keyDown(keycode, time);
}
}
答案 1 :(得分:1)
来自Blackberry文档:
net.rim.blackberry.api.phone
公共决赛课电话延伸 对象
此课程提供以下内容:
* Advanced utilities for interaction with the Phone
应用。您可以使用这些方法 在这个类中进行更精细的操作 电话应用程序。例如, 将DTMF音调注入活动状态 调用。 *访问设备上的多行。 *如果支持,则将数据添加到传入和活动呼叫屏幕。
多行示例
示例A:切换一行
创建一个扩展MultiLineListener的类。
公共类MultiLineAction扩展了MultiLineListener
将该课程注册为PhoneListener。
Phone.addPhoneListener(本);
实现MultiLineListener回调,以便应用程序可以 通知切换结果。
public void setPreferredLineFailure(int lineId) { _screen.popupMessage(“切换失败”); } public void setPreferredLineSuccess(int lineId) { _screen.popupMessage(“切换到”+ Phone.getLineNumber(lineId)+“ 完成“); }
- 醇>
调用Phone.setPreferredLine()。
Phone.setPreferredLine(Phone.getLineIds()[0]);
示例B:发起拨出电话
调用Phone.initiateCall。
Phone.initiateCall(Phone.getLineIds()[0], “5195550123”);
- 醇>
在应用程序之前从手机监听器取消注册该类 已关闭。
Phone.removePhoneListener(本);
类别: 签名:此元素只能由签名的应用程序访问。如果 请打算使用这个元素 访问 http://www.blackberry.com/go/codesigning 获取一组代码签名密钥。 代码签名仅需要 在BlackBerry上运行的应用程序 智能手机;在BlackBerry上开发 智能手机模拟器可以发生 没有代码签名。以来: BlackBerry API 4.0.0