作者:Confach 发表于2006-04-28 22:22 pm
版权信息:可以任意转载, 转载时请务必以超链接形式标明文章原始出处 和作者信息.
http://www.cnblogs.com/confach/articles/387950.html
第7章 与BlackBerry应用程序通信
|
启动BlackBerry应用程序
加入一个菜单项到BlackBerry应用程序中
代码实例
|
启动BlackBerry应用程序
调用API(net.rim.blackberry.api.invoke)允许应用程序启动标注你的BlackBerry应用程序.
注: 当应用程序调用电话时,检查一个ControlledAccessException.如果系统管理员通过应用程序控制限制访问电话应用程序,将抛出一个运行时错误. 为获得更多信息,参看BlackBerry应用程序开发者指南 第2卷:高级 第1卷:基础.
调用API新功能
从BlackBerry JDE 4.1起,有下面的功能:
- 可以改变AddressBookArguments (net.rim.blackberry.api.invoke.AddressBookArguments)来打开一个使用PIMContact的联系人.
- 可以改变CalendarArguments (net.rim.blackberry.api.invoke.CalendarArguments)查看存在的PIM事件.你不可以创建一个来自PIM对象的新事件.
- 可以改变MessageArguments (net.rim.blackberry.api.invoke.MessageArguments)创建一个包含主题和内容的消息
- 在Task应用程序无变化的情况下,不可以更新TaskArguments (net.rim.blackberry.api.invoke.TaskArguments).
为启动一个应用程序,调用带有合适常量和ApplicationArguments 子类的对象的Invoke.invokeApplication(int, ApplicationArguments)方法.
注:使用Invoke.invokeApplication(int, ApplicationArguments)将导致一个处理上下文的转化.当BlackBerry程序启动时,你的应用程序将失去控制.在启动的应用程序对话中止时,内容可能不会返回给你的应用程序.
|
应用程序
|
常量
|
类
|
|
Address book(地址本)
|
APP_TYPE_ADDRESSBOOK
|
AddressBookArguments
|
|
Calendar(日历)
|
APP_TYPE_CALENDAR
|
CalendarArguments
|
|
Memo pad(便笺)
|
APP_TYPE_MEMOPAD
|
MemoArguments
|
|
Messages(消息)
|
APP_TYPE_MESSAGES
|
MessageArguments
|
|
Phone(电话)
|
APP_TYPE_PHONE
|
PhoneArguments
|
|
Tasks(任务)
|
APP_TYPE_TASKS
|
TaskArguments
|
技巧:从浏览器应用程序API(net.rim.blackberry.api.browser)中调用BlackBerry浏览器.参看51页的”在浏览器中显示内容”获得更多信息.电话API (net.rim.blackberry.api.phone)提供访问电话应用程序的高级特性的能力. 参看77页的”电话API”获得更多信息
注: 当应用程序调用电话时,检查一个ControlledAccessException.如果系统管理员通过应用程序控制限制访问电话应用程序,将抛出一个运行时错误. 为获得更多信息,参看BlackBerry应用程序开发者指南 第2卷:高级 第1卷:基础.
下面的Restaurants.java实例的摘录创建了一个菜单调用电话程序打电话给餐厅.
|
private MenuItem phoneItem = new MenuItem(_resources.getString(MENUITEM_PHONE), 110, 12) {
public void run() {
synchronized(store) {
String phoneNumber = phonefield.getText();
if ( phoneNumber.length == 0 ) {
Dialog.alert(_resources.getString(ALERT_NO_PHONENUMBER));
}
else {
PhoneArguments call = new PhoneArguments(PhoneArguments.ARG_CALL,
phoneNumber);
Invoke.invokeApplication(Invoke.APP_TYPE_PHONE, call);
}
}
}
};
|