具体实施方式
换肤的目的在于从商业逻辑(功能性)分离应用程序的显示(GUI),并允许通过一些外部文件存储器定义GUI,可以产生所述外部文件存储器并“迟绑定”应用程序编码。为了允许该迟绑定,在应用程序逻辑和皮肤之间必须有共同的理解或约定。必须定义应用程序基于的界面,来控制产生满足该界面的UI以及皮肤。
本发明提供了一种用于对应用程序的主题进行换肤的换肤主题文件。该换肤主题文件包括至少一个数据元素,该数据元素表示由应用程序产生的数据以及至少一个定制事件,该定制事件表示由应用程序产生的事件。换肤主题文件将考虑GUI迟绑定的界面定义到应用程序信息中,也就是说由媒体引擎提供数据元素和定制事件。
本发明的具体实施例将涉及能够最佳获得或使用各个实施方式的各种实例。为了方便,在整个描述中使用相同的参考数字,附图中的个别标记表示相同或相应部分,其中不同元素没必要按比例绘图。
图1示出了根据本发明公开的实施例的移动设备100的功能示意图。移动设备100包括显示器101、输入设备102、操作系统103、多个应用程序105、媒体引擎110a和模板库115。虽然移动设备上有多个应用程序,但是以下描述中只涉及仅具有一个应用程序105的移动设备。模板库115可包括多个模板文件。可选的用一个模板文件代替模板库115。应用程序105的一个例子包括主屏幕应用、日历应用、电子邮件应用、时间应用等。
图2示出了根据本发明公开的实施例的应用程序105的功能示意图。应用程序10至少是执行某些商业逻辑的应用代码106以及应用代码106可能操作或修改的应用数据元素107的集合。应用程序105连同媒体引擎110a一起操作,以在设备的显示器上显示应用信息。除商业逻辑应用代码106之外,还包括内容交互逻辑或编码108。为了通知更新数据元素107或定制事件的发生,该内容交互代码与媒体引擎110a进行通信。如109a所示,通信向媒体引擎通知更新数据元素107,如109b所示,通信向媒体引擎通知定制事件的发生。
图3a示出了根据本发明公开的实施例的媒体引擎110a的功能示意图。媒体引擎110a包括为设备显示器呈现图形界面的呈现器111、与应用程序105界面连接的内容交互APIs112、保存图形界面信息的模板113、以及从模板文件解析图形界面信息的解析器114。虽然媒体引擎110a为了保存从模板文件解析得到的模板信息而产生模板113,但可选的使用直接从解析器114得到的信息,而不需要中间模板113。
一种换肤的方法是定义可缩放矢量图形(SVG)文件,该文件作为应用程序用户界面的模板文件。更加具体地,为了满足对用户输入其作用以及图形化地反应应用状态的两个要求,开发了一种执行SVG模板文件和应用代码106之间约定的装置。在一个实施例中应用程序105负责处理用户输入,媒体引擎110a负责定义和显示图形接口120。为了图形化地反应应用状态,应用代码106定义了一组由应用程序105产生的、表示具体数据和事件的“数据元素”和“定制事件”。数据元素107是由应用程序105进行操作或修改并且可能在图形接口120上显示的某些信息。为数据元素107分配字符串名称。定制事件是发生在应用程序商业逻辑中的某些重要事件,可能需要将所述应用程序商业逻辑反应在图形用户界面120中。与数据元素107相似地,为定制事件分配字符串名称。应用程序105不负责对由于这些事件用户界面发生什么改变或者如何显示数据元素107的信息进行定义。应用程序负责在每当需要更新相关数据元素107的信息以及发生定制事件时通知媒体引擎110a。
在一个实施例中,模板文件定义图形接口中显示的定制事件和数 据元素。应用代码106确定由什么应用数据元素107或定制事件(可能包括用户输入事件)来绑定图形界面中定义的数据元素和事件。
利用数据元素107的名称以及定制事件的名称来将一个换肤主题文件写成应用程序105。换肤主题文件或模板文件描述了如何显示与数据元素107以及定制事件相关的信息。
媒体引擎110a作为应用程序105和图形接口模板文件之间的一个接口。应用程序105通知媒体引擎110a更新数据元素107以及定制事件的发生。媒体引擎110a使用皮肤模板文件定义如何在显示器101上显示该信息。使用皮肤文件作为模板,媒体引擎110a或更特别的媒体引擎110a的呈现器111,为显示器101呈现图形界面120。
媒体引擎110a利用模板文件来描述如何呈现图面12。媒体引擎可以使用解析器114来解析模板信息格式,模板文件以及存放在模板113中的文件对媒体引擎来说是容易得到的。如果模板文件使用标记语言描述图形界面120,解析器114将能够读取标记语言并在模板113中存储模板信息。例如,如果模板文件在SVG中定义图形界面120,那么SVG解析器将在SVG文件中读取模板信息并在在模板113中存储被解析的信息。由于解析器将模板文件代码翻译成表示模板113的代码,解析器可被称为代码转换机。模板113以媒体引擎110a和呈现器111所期望的格式保存模板信息。如上所述,不需要模板113。解析器114能够直接向媒体引擎110a或呈现器111提供模板信息。
用户输入的处理过程不包括以上描述的媒体引擎110。媒体引擎接受定义图形界面120的模板文件,并从应用程序105接收关于数据元素107和定制事件的通知。在上述例子中,应用程序105将负责处理用户输入。这可通过与输入设备驱动程序提供的功能,操作系统功能或可想到的其它方法相关联而实现。
图3b示出了根据本发明公开的实施例的另一媒体引擎110b的功能示意图。媒体引擎110b还包括用于可选地控制模板信息的显示的布局管理器118。
图3c示出了根据本发明公开的实施例的另一媒体引擎110c的功能示意图。媒体引擎110c与之前所述的媒体引擎110a相似,然而媒 体引擎110c也具有事件引擎117。事件引擎117为媒体引擎110c增加功能。它可提供用户输入控制。利用事件引擎117用户输入特点的应用程序105可包括通知任意用户输入的应用程序105的代码。本领域的技术人员可知许多用户输入的不同格式是可能的。可以以不同的方式通知应用程序105。
应用程序105可以通知事件引擎117,一旦发生用户输入,则它希望得到通知。可以由API调用媒体引擎110c的内容交互APIs112b来获得该通知。内容交互APIs112b可包括为应用程序105提供用户输入控制的额外调用。该调用应包括可用来通知应用程序105的事件引擎117的信息。该信息可包括应用标识符,事件发生时事件引擎117是调用的功能。该调用也可指示应用程序105感兴趣的用户输入事件类型。例如应用程序105可能只希望通过涡轮或键盘或定点设备等输入获得通知。一旦用户输入事件发生,事件引擎117检查是否已通知任意应用程序105,如果有的话,则向该事件发送通知。
应用程序不需要通知事件引擎117,它希望接收输入事件的通知。应用程序可选的轮询事件引擎117来确定事件是否发生过,以及是否接收。应用程序将调用内容交互API112b查询或请求用户输入事件。
如上所述,根据本发明的应用程序105包括多种方式的用户输入。上述描述不仅可应用于用户输入事件,而且也可以应用于系统事件或其它产生的事件。例如应用程序105可每次通过内容交互APIs112b接收通知并向事件引擎117登记,更新显示器101。
除以上所述的事件处理之外,事件引擎117也可作为媒体引擎110c的控制器。事件引擎117可控制图形界面120更新的时间。这可通过使用事件引擎117定时器实现,以固定的频率激活事件。一旦事件被激活,事件引擎117可访问模板113,并为呈现器111提供连同数据元素107的值以及有关事件发生的信息的模板信息。呈现器111利用该信息为显示器101呈现图形界面120。
如上段所述,媒体引擎110c或更特别的事件引擎117分别存储来在数据元素和事件信息的模板信息。可能希望在模板113中存储所有信息。当数据元素107的改变通知经内容交互APIs112b到达时,事件 引擎117在模板113中存储该信息。这样呈现器111只需要参考模板113中的对象呈现图形界面120。这可通过多种方式实现。例如事件引擎117可通过为呈现器111复制模板113的信息,可通过为呈现器111参考模板113的信息。可选的设计呈现器111访问位于特定位置的模板113。事件引擎11负责保证适当的模板位于该位置。由于媒体引擎110c可具有许多模板,事件引擎117保持与应用数据元素信息和事件信息的更新,因此可有利地使用该方法。通过更新期望模板的特定位置,可使用事件引擎117转换图形界面120。
上述描述了对内容交互APIs112,112b进行的各种调用。以下是媒体引擎110a,110b,110c应支持的可能的API调用列表。它必须支持在极小值处更新数据调用。没有该支持应用程序无法向媒体引擎110a,110b,110c传递信息并显示。
intupdate_data_element(stringelement_ID,stringelement_value)
-用于通知媒体引擎用新元素值更新元素ID
-为错误目的返回int,可能是其它类型或不返回
intnotify_custom_event(stringcustom_event_ID)
-用于通知定制事件ID发生的媒体引擎
-为错误目的返回int,可能是其它类型或不返回
boolquery_new_event(stringevent_filter)
-用于确定新事件是否发生。可使用事件过滤器说明感兴趣的事件的类型。通常利用事件引擎实现该调用
-如果发生与事件过滤器匹配的新事件则返回正确,否则返回错误
stringget_new_event(stringevent_filter)
-用于获得与事件过滤器匹配的新事件。通常利用事件引擎实现该调用
-返回表示事件的字符串
boolregister_event_listner(stringapplication_ID,stringlistener_ID,stringevent_filter)
-用于以媒体引擎登记事件接收者。应用程序ID是用于识别应用程序的标识符。它可以是应用程序的功能ID。可使用事件过滤器说明 感兴趣的事件的类型。通常利用事件引擎实现该调用
-如果对接收者ID连同应用程序ID进行登记来通知与事件过滤器匹配的事件,则返回正确
上述调用和描述仅仅是示例,本领域的技术人员公知在保持媒体引擎110a,110b的功能的同时,使用不同的参数和返回的值可包括更多或更少的调用。
图3d示出了根据本发明公开的实施例的另一媒体引擎110d的功能示意图。媒体引擎110d与之前所述的媒体引擎110a,110c相似,然而媒体引擎110d还具有与媒体引擎110b相似的布局管理器118。布局管理器118可用于处理模板113中发现的数据元素的动态布局。
数据元素作为可变长度的字符串通过媒体引擎。字符串的变化长度表示了在布置图形界面120时出现的问题。如果字符串太长,它将覆盖图形界面120的其它部分。如果文本太短,其它元素将不能适当地排列。在媒体引擎110a,110c的上述例子中,虽然为图形界面120提供了灵活的规格,但未描述动态处理数据元素大小的简单方法。或者媒体引擎必须做出一些关于如何处理字符串长度的预先决定,例如截短所有太长的字符串。虽然这些都运作得很好,布局管理器118通过提供如何处理数据元素动态显示的详细方法来为媒体引擎110b、110d提供了更强的灵活性。这允许图形界面设计师描述如何由包括布局管理器118控制模板文件中的信息在内的方式处理数据元素。作为一个实施例,模板113和布局管理器118可用于描述10字符长的数据元素,并且如果提供给媒体引擎的数据元素比10字符长,则将数据元素截短为5字符长,字符串‘(…)’附加在字符串末端。作为另一个实施例,图形界面设计师可能希望特殊数据元素的字符都表现为大写字符。这可在模板文件中说明。布局管理器将接收数据元素字符串并根据模板113中确定的内容进行修改,在这种情况下改变所有字符为大写。由布局管理器118实现数据元素的该操作。由包括在模板113或模板文件中的文件控制布局管理器,指向布局管理器118说明应如何修改数据元素的长度。呈现器111将依照布局管理器118的准备显示字符串。布局管理器118考虑说明并动态地控制数据元素的文本类型 。
如图3d所示,布局管理器可根据模板中描述的动态布置以及直接在模板113中存储的这些改变修改数据元素。呈现器111依照之前所述的相同方法使用模板113。可选的,可将数据元素存储在如应用程序105提供的模板113中(或模板113分离)。当向呈现器111提供数据元素时,布局管理器118修改数据元素。布局管理器可修改如元素的放置、大小、可见性等显示特征。在这种方式中呈现器接收数据元素,该数据元素如应用程序105提供的,由布局管理器118以模板113中描述的方式进行修改的,描述数据元素的字符串。
除了显示文本元素之外,还可利用布局管理器来控制元素的显示。利用布局管理器来动态地控制图形信息的显示特征。只有在没有文本被图形布置覆盖时,图形界面设计师希望在某个位置显示图形或图象。可利用布局管理器18提供控制元素显示的方法。例如如果图形界面120描述在没有文本的位置显示图标,可将图标元素传给布局管理器118,连同布置管理器控制信息详细说明布置的要求。布局管理器可先于呈现元素、动态地修改模板113中元素的显示信息。布局管理器118可修改图标指定位置的坐标,或者确定图形界面120中没有可用的空间,并且因此不能显示该图标。将具有动态显示特性的经修改的元素传给呈现器111,为图形界面120呈现图像。
布局管理器 118 可以在呈现器 111 呈现图像之前,提供数据元素的操作方法,并且提供动态控制呈现器 111 不能适当呈现的元素特性的显示方法。模板 113 可说明控制布局管理器 118 的信息。图 4 显示了一个实施例应用程序 400 的伪码列表。设计示例应用程序 400 描述本发明系统和方法的机能。示例应用程序 400 定义两个数据元素。第一数据元素 405 是整数,命名为′ data_int ′,第二数据元素 407 是字符串,命名为′ data_str ′。 data_int 的初始值为 0 ,示例应用程序 400 每次收到‘ scroll_wheel ’用户输入,则将 data_int 的值加 1 。示例应用程序 400 从操作系统 103 接收上述信息。另外或可选地,可利用之前描述的事件引擎 117 的用户输入功能设计应用程序。当 data_int 的值等于 5 ,示例应用程序 400 将 data_str 的值变为‘ BigInt ’并产生名为 ‘big_int_event’的定制事件。当data_int的值等于10,将该值重置为0,将data_str的值变为‘SmallInt’并产生名为‘small_int_event’的定制事件。
示例应用程序400利用名为‘update_data_element’的媒体引擎API调用向媒体引擎110a,110b,110c,110d通知数据元素405,407值的任意改变。update_date_element期望识别数据元素ID的字符串。与选择应用数据元素的名称一样进行选择。这不是系统的要求,而是在更新数据元素时保持一致的一种简单方式。data_element_ID字符串表示数据元素列中的元素,该元素可通过用特殊元素的索引号附加到列名的方式构造。update_date_element也期望表示数据元素405,407更新值的值。用于通知更新数据元素媒体引擎的API定义为:
Intupdate_data_element(stringdata_element_ID,stringvalue)
以上定义的update_data_element返回一个整数,可用于错误检测。可用于检测不同的状态,例如如果不能找出数据元素107,或者如果不能改变该值,或者如果适当地更新该值等。调用期望字符串表示数据元素107的ID。该ID是模板文件用于描述如何显示数据元素107的字符串。只要模板文件使用相同的类型识别数据元素107,可选择其它类型,例如整数。只要模板文件描述了如何显示该类型,定义数据元素107的值为字符串,并可以改变为其它类型。
示例应用程序400利用名为‘notify_custom_event’的媒体引擎API调用向媒体引擎110a通知任意定制事件的发生。notify_custom_event调用期望识别定制事件ID的字符串。只要模板文件使用相同的类型识别事件,该字符串可由整数或其它类型代替。用于向媒体引擎API通知事件发生的API的例子为:
Intnotify_custom_event(stringevent_ID,)
以上定义的notify_custom_element返回一个整数,可用于错误检测。调用期望字符串表示定制事件的ID。该ID是模板文件用于识别事件的字符串。只要模板文件使用相同的类型识别事件,可选的使用其它类型。
图4中的示例应用程序400不包括控制如何或何时显示信息的任 意代码。应用程序400包括控制用户输入的代码,向媒体引擎110a,110b,110c,110d通知数据元素405,407以及事件发生的更新。媒体引擎110a,110b,110c,110d利用模板113确定如何为显示器呈现信息。
可利用标记语言产生为实例程序说明图形界面120的模板文件。以下是描述如何显示示例应用程序400信息的一个可能的模板文件。
例GUI1:
<textid=″data_int″x=″5″y=″5″font-family=″myfont″tont-size=″15″fil
l=″black″>notset</text>
<setxlink:href=″data_int″attributeName=″fill″
to=″green″begin=″custom(Big_Int)″
end=″custorn(SmallInt)″/>
<setxlink:href=″data_int″attributeName=″fill″
to=″red″begin=″custom(Small_Int)″
end=″custom(Big_Int)″/>
以上显示了可用于示例应用程序的模板文件的一种运用。用‘data_int’的ID定义<text>。该ID与发送给媒体引擎110a,110b,110c,110d的相同。<text>元素说明如何格式化以及在显示器101上安置文本。运用还定义了两个<set>元素。利用这些元素改变呈现器111基于应用程序事件呈现信息的方式。当′Big_Int′定制事件从应用程序400到达媒体引擎110a,110b,110c,110d,data_int元素的填充颜色变为绿色。当停止使用相关<set>特性,在以上情况下当媒体引擎110a,110b,110c,110d接收定制事件‘Small_int’时,定义集合元素。第二个集合元素描述当接收定制事件‘Small_int’时data_int的显示特性。描述设置元素填充颜色为红色。
上述模板只描述了定义两个数据元素405,407的示例应用程序400的一个数据元素405的显示。未显示应用数据元素data_str。媒体引擎110a,110b,110c,110d可能丢弃或忽视由示例应用程序400接收到的该数据元素407的更新。
为相同示例应用程序描述不同图形界面120的其它可能的模板文 件为:
例GUI2:
<textid=″data_int″x=″5″y=″5″font-family=″myfont″font-size=″15″fil
l=″black″>notset</text>
<textid=″data_str″x=″5″y=″25″font-family=″myfont2″font-size=″10″
fill=″grey″>notset</text>
上例中的图形界面120描述了示例应用程序400的数据元素405,407位置。该接口不利用从示例应用程序400发送的定制事件。媒体引擎可能丢弃或忽视来自示例应用程序400定制事件的通知。
图5a显示了根据本发明所述的产生同应用程序105联合的图形界面120的方法流程图500。应用程序105在设备上以通知媒体引擎110a,110b,110c,110d自身的ID为开始。媒体引擎110a利用该ID将模板文件放置在模板库(501)中。同应用程序模板文件相关的其它方法对本领域技术人员来说是公知的。如果媒体引擎110a,110b,110c,110d确定未在(510)中发现模板文件,在(512)形成错误。可向应用程序105回报该错误。
媒体引擎110a,110b,110c,110d可以在显示器上显示错误。显示该种情况的一个选项。应用程序105退出以响应错误(513)。媒体引擎110a,110b,110c,110d从模板库(514)加载并解析一个错误模板。该错误模板文件可以是描述没有数据元素107或应用定义事件的唯一静态对象的标准图形界面。将模板113传送给呈现器111(540),呈现器向显示器101呈现模板113。媒体引擎在步骤550确定退出应用程序(545)并结束处理过程。
如果发现将模板文件传送给解析器114(515),解析器解析模板文件并在模板113中存储模板信息(520)。媒体引擎110a随后等待接收数据元素107的更新或对定制事件的通知(525)。当数据元素107更新或定制事件的通知到达时,检测ID(527)。如果在模板113中发现数据元素或事件ID,继续处理过程到步骤530。如果在模板113中未发现该ID,则处理过程返回步骤525,有效地丢弃更新或通知。利用更新信息或通知信息更新模板113(530)。在这种情况下媒体引擎110a, 110b,110c,110d在模板113中存储信息。也可以在模板113之外存储数据元素107和事件信息。在这种情况下除了更新模板113,媒体引擎110a,110b,110c,110d将存储信息。如果媒体引擎110a,110b,110c,110d存储所有从应用程序105接收到的信息,可以跳过检测模板ID的步骤(527)。可选的如果媒体引擎只接收模板113中所用ID的数据元素或事件,则不需要检测该ID。可以使用该方法允许图形界面120的转换,而不要求应用程序105再次与所有的信息通信。媒体引擎110a,110b,110c,110d确定是否更新图形界面120(535)。如果不更新,处理过程返回步骤525。如果更新,将模板113传送给呈现器(540)。如上所述,存在向呈现器111传送显示信息的其它选项。信息传送给呈现器111之后,媒体引擎110a,110b,110c,110d确定是否退出应用程序(545),如果没有,处理过程返回步骤525。如果退出应用程序,则结束处理过程(550)。
图5b示出了根据本发明所述的产生与应用程序105相关的图形界面120的方法的另一示例的流程图560。解析器114根据模板文件来解析模板信息(565),并将其存储在模板113中(570)。通过利用内容交互API来从应用程序105获得更新的数据元素信息(575)。利用接收到的数据元素信息来更新模板113(580)。利用布局管理器118莱控制数据元素信息的布局(585)。这可包括截短数据元素串、为数据元素附加其它特性、改变元素的显示特性或其它修改。将模板113传送给呈现器111(590),并且呈现器呈现图形界面120(595)。
一种换肤系统,包括在设备100上呈现SVG文件的媒体引擎110a,110b,110c,110d。媒体引擎110a,110b,110c,110d包括换肤API(或内容交互API)112。换肤系统还包括SVG语言文件115和SVG代码转换器或解析器114。内容开发商利用SVG语言和SVG代码转换器建立如模板文件的换肤文件。应用开发商利用媒体引擎110a,110b,110c,110d以及换肤API112。设备应用程序105,例如主屏幕应用程序,利用媒体引擎110a和换肤API112A产生皮肤或图形界面120。
下面描述本发明实施例中的换肤系统的组件实例。为了描述模板 文件的结构,对主屏幕应用程序的皮肤进行说明。利用该实例来图解模板文件的格式以及媒体引擎的功能。
将应用程序和系统数据集成到主屏幕皮肤
今日风格的主屏幕将应用程序与系统信息合并为单一视图。根据主屏幕SVG文件中描述的主题设计者的布局来构成该信息。
今日主屏幕元素
图6示出了根据本发明公开的实施例的今日风格主屏幕图像的屏幕截图。
主屏幕的用户配置
由合并在主体中的SVG文件的元素来确定一组应用程序(以及相关数据)。优选地,在今日风格主屏幕上表现的固定应用程序组的用户配置包括:
●图6中表示的项目26是信息状态选项的用户配置,即是否未读、显示新的或无显示。
●图6中表示的项目13,15,19和22取决于当前位置的数据表述以及今日风格用户的选择。
将应用程序数据集成到SVG
主屏幕支持将特殊“数据元素”合并到皮肤文件中的能力。数据元素是用户数据或系统信息的位置保存器。这允许皮肤设计师在允许应用程序将适当信息填充到内容中时,指定主屏幕的模板。在每个子特征中定义特定应用程序的数据元素。皮肤设计师可通过任意支持的SVG语法来控制数据元素的外表和行为。可将由主屏幕设计师合并到皮肤内的数据元素组整体上称为“数据调色板”。示例性数据元素包括:
<gid=″hsl″font-family=″BBMillbank″font-size=″10″>
<textid=″emailItime″x=″30″y=″200″></text>
<textid=″emaillFrom″x=″50″y=″200″font-
style=″Bold″></text>
<textid=″emaillSubject″x=″100″y=″200″></text>
<setxlink:href=″caret″attributeName=″y″
begin=″focusin″to=″200″fill=″freeze″/>
<loadScenebegin=″activate″xlink:href=″x-
exec://Launchlnternal?id=email1″/>
</g>
emaillTime,emaillFrom,emaillSubject是由主屏幕应用程序用应用程序(在这种情况下是消息)特定信息增加的数据元素的实例。本文献的各个部分中将描述每个应用程序的数据元素。
导航
主屏幕SVG布局将允许产生用户可选的热点。例如,皮肤设计师可产生突出包括最新接收电子邮件行的热点(图6中的标签27,28,29)。用户可通过滚动滚轮来聚焦至该热点。SVG语法允许主屏幕设计师说明连同焦点、散焦以及激活的动作(即,点击指轮)。导航命令是在SVG中定义热点的命令。SVG热点的例子包括:
<imageid=″caret″x=″30″y=″180″width=″200″
height=″30″xlinl:herf=″caretBar.png″</image>
<gid=″hs1″font-family=″BBMillbank″font-size=″10″>
<textid=″emailltime″x=″30″y=″200″></text>
<textid=″emaillSender″x=″50″y=″200″font-
style=″Bold″></text>
<textid=″emaillSubject″x=″100″y=″200″</text>
<setxlink:href=″caret″attributeName=″y″
begin=″focusin″to=″200″fill=″ffeeze″/>
<loadScenebegin=″activate″xlink:href=″x-
exec://LaunchInternal?emaill″/>
</g>
以上实例中提供的热点具有焦点和激活动作。焦点<set>将补注符号转换到正确位置。<loadScene>元素将打开对应email1数据元素的消息。
动态布局
当主屏幕实现具有不同长度文本的合并时,布局面临挑战。例如包括email主题/发送者、日历主题/位置的字符串等。利用布局管理器 处理位于主屏幕模板的数据元素的动态长度。
不幸的是,SVG不能天然的提供这种能力。提供对语言的扩展,允许说明如何相互布置数据元素。在今日风格视图中,要求数据元素的专栏方法布局。例如,日历集成状态要求:
●“主题。如果主题太大而不符合可用空间,将以″…″终止
●地点。如果地点太大而不符合可用空间,将以″…″终止
优选地,每个元素具有独立的主题文本风格。将时间和主题域排列在专栏左边。给主题域最大宽度,位置域直接跟随主题域。
以上包括的主屏幕提供专栏法布局管理器,其中每个专栏描述可用/最大空间以及如果字符串太长而不符合空间时截短字符串的方法。如果设置为“none”的域具有显示属性,以布局序列文本元素为目的讲不占用任何空间。主屏幕皮肤具有在皮肤中说明布局管理器控制数据元素位置的能力。例如,<foreignObject>元素可说明布局方法以及皮肤文件内的参考元素。例如:
<foreignObject>
<imagex=″81″y=″216″width=″230″height=″20″
xling:href=″x-
object:/layout?ids=calendar2subject;calendar2locatio
n&;width=230&;spacing=5&;ellipsis=…;″
/>
</foreignObject/>
其它可能是利用html表+svg复合文件.
缺省应用程序表示法
主屏幕提供访问主屏幕SVG文件中利用<image>元素或<text>元素描写的应用程序的能力。这些是描述应用程序名称的不同方法。由于<text>方法能支持SVG语法和特性,因此该方法一般更优选。<image>方法是传统的方法。通过说明模块名称和作为xlink:href属性的″id″参数值的入口来识别应用程序。通过将字符串″x-object:/EntryDescription″加上与xlink:href属性相关的前缀来参考该应用程序。从ApplicationEntry组中得到应用程序描述。电话应用的应 用程序描述的实例包括:
<imagex=″32″y=″65″width=″276″height=″24″
xling:href=″x-bject:/EntryDescription?font-
family=BBClarity&;font-size=15&;font-
style=bold&;id=net_rim_bb_phone_app.Phone&;ali
gn=left&;width=276&;height=24&;enclosing=()
&;showname&;showinfo”>
<setattributeName=”visibility”
begin=”hs1.focusin”to=”visible”fill=”freeze”/>
<setattributeName=”visibility”
begin=”hs1.focusout”to=”hidden”fill=”freeze”/>
</image>
利用<txet>“数据元素”对所谓“calendar_app”的应用程序描述的可选表示法为:
<textid=″calendar_app″x=″32″y=″180″style=″font-
family:BBCondensed;font-size:12;font-weight:bold;
fill:#394142″>
<setattributeName=″fill″to=″#FFFFFF″
begin=″hs5.focusin″end=″hs5.focusout″/>
</text>
上述实例描述的图像是消息应用程序描述的聚焦状态。注意当接收并释放焦点时,<set>动画将连接<image>元素的可见属性。
以下是EntryDescription中xlink:hrefurl参数表的实例。该表适用于说明应用程序描述的<image>方法。<text>元素支持SVG的所有属性。<image>机制支持交集,但在一种实现中,可能由<image>支持一些属性,而不由<text>支持(即,showlnfo)。
Name |
Type |
Value |
Default |
font-family |
Optional |
Fontname |
Systemdefault |
font-style |
Optional |
PLAIN,BOLD, ITSLIC |
PLAIN |
font-size |
Required |
Integer |
none |
Foreground-color |
Optional |
IntegerinHEX |
0=BLACK |
[0176]
Id |
Required |
ApplicationEntry
name |
none |
Align |
Optional |
Left,center, right |
left |
Width |
Required |
Integer |
none |
Height |
Required |
Integer |
None |
Enclosing |
Optional |
()or{}or[] |
blanks=noenclosing |
Showinfo |
Optional |
boolean |
Ifpresent,the ApplicationNameis displayed |
Showname |
Optional |
boolean |
Ifpresent,the unreadcount(or newcount)is displayed
|
主屏幕提供访问主屏幕SVG文件中利用<image>元素的应用图标的能力。通过将字符串″x-object:/EntryIcon″加有关xlink:href属性的前缀参考该应用程序。通过说明模块名称和作为xlink:href属性的″id″参数值的入口识别应用程序。从RibbonIconField组中得到该图标,一个执行SVG可涉及由皮肤(硬编码)提供的应用图标,或者涉及由应用程序自身提供的图标。x-object:/EntryIconxlink:href属性提供涉及由应用程序提供应用图标的机制。非x-object机制直接涉及图像文件,即,xlink:href=″messagelcon.png″。
聚焦标示法
应用图标有聚焦和非聚焦表示法。这由xlink:href属性现有的″焦点″参量表示。例如:
<imagex=″-4″y=″206″width=″48″height=″36″
xlink:href=″x-
object:/EntrIcon?focus&;id=net.rim.ProfileHomeSc
reenApp&;size=36&;width=48&;height=36″/>
将不包括″聚焦″参数的EntryIcon呈现在非聚焦状态。例如:
<imagex=″-4″y=″206″width=″48″height=″36″
xlink:href=″x-
object:/EntrIcon?id=net.rim.ProfileHomeScreenApp&am
p;size=36&;width=48&;height=36″/>
优选地,SVG负责定义连接聚焦与非聚焦图标表示的可见性的动画(即,利用<animate>或<set>元素)。可见性、不透明性以及x,y位置是可通过SVG设动作的该种外部对象元素的属性。
每个应用程序将具有最小值,为应用程序使用缺省的视觉表示法。除了该表示法之外,一些应用程序将定义可选的表示法以用于具体情况中,例如主屏幕或横幅。对于消息,在最低限度提供图标和名字。在利用图标网格布局的图标主题以及应用程序例表(例如黑莓应用程序列表)中使用该缺省表示法。在一个主题中,消息与计数一起表现在主屏幕上。横幅中提供更小的信封和计数,但没有名字。在其它主题的皮肤中,可提供最新电子邮件列表。以上定义的这些额外表示法超过最小值,缺省表示图标和名字。可由主题定义缺省表示法的元素,或作为应用程序自身之内的资源。缺省表示法的元素实例如下:
●名字:主题名称取代由应用程序提供的名字。
●图标(任意):主题图标取代由应用程序提供的图表。如果没有图标可用,则使用由主题提供的缺省应用图标。
●图标-在焦点上(任意):当图标在焦点上时,使用该图标。如果图标不可用,则使用标准图标。
●图标-无效的(任意):应用程序可视时使用该图标,但是无效的。例如,当没有浏览器服务登记簿时,缺省浏览器是无效的。如果图标不可用,则使用标准图标。
未读计数表示法
具有在主屏幕SVG语法中说明未读计数的不同方式。在一个方法(方法1)中利用外部对象机制:
<imagex=″99″y=″40″width=″35″height=″13″
xlink:href=″x-object:/UnreadCount?type=email
&;align=left&;width=35&;height=13″/>
方法1允许主屏幕为电子邮件嵌入未读计数。结合应用程序入口与未读计数来禁止来自EntryDescription或Entrylcon(为开槽)的未读计数。方法1用于槽孔型主屏幕设计中。槽孔设计说明了应用程序占位符的能力,其中应用程序占位符基于应用程序列表中(例如黑莓应 用程序列表)的应用程序规律而动态移动。
在其它包括具有应用程序名称未读计数的外部对象方法(方法2)中:
<imagex=″32″y=″65″width=″276″height=″24″
xlink:href=″x-object:/EntryDescription?font-
family=BBClarity&;font-size=15&;font-
style=bold&;id=net_rim_bb_phone_app.Phone&;ali
gn=left&;width=276&;height=24&;enclosing=()
&;showname&;showinfo″></image>
方法2可可选地说明″showinfo″参数,如果应用程序提供该信息,该参数将呈现额外信息(参见3.12.1.6)。应用程序提供的额外信息不在主题或SVG皮肤的控制之下。该额外信息典型地是未读或新计数。如果说明″showinfo″参数,则将立即在描述右边显示该信息。
例如:消息(1):如果未读计数为0,则不显示计数和大括号。在一些情况下,实际上是由用户通过一些选择来使得未读计数显示在名字旁边。例如特征3.10(新消息状态选项)配置确定是否显示计数及其含义(即,新的相对于未读的)。
通过使用具有已知ID的<text>和<tspan>元素,即,数据元素将未读计数集成到皮肤中的其它可能方法。由于将为主屏幕提供更多如何呈现未读计数的控制,这或许是一种高级的方法。并且允许该计数是动画的。例如:
<textid=″messagesName″font-name=″BBCasual″font-
size=″10″font-style=″bold″>
<tspanfont-style=″plain″>[</tspan>
<tspanid=″messageslnfo″font-style=″plain″></tspan>
<tspanfont-style=″plain″>]</tspan>
</text>
这是利用唯一数据元素(即,id=″messagesName″和id=″messageslnfo″)以及协调SVG语法和特征的指定应用程序名称及未读计数的非外部对象方法。在上述示例中主屏幕应用可识别 id″messagesName″和″messageslnfo″,并将适当的信息替换到皮肤中。
用户可配置的应用槽孔
主屏幕皮肤通过说明列表中第一个元素以0开始的数字次序,来参考应用程序列表中(即,黑莓应用程序列表)的应用程序。例如:
<imagex=″280″y=″104″width=″39″height=″29″
xlink:href=″x-
object:/EntryIcon?id=slot0&;size=29&;width=39&
amp;height=29″>
</image>
在这种情况下,id=slot0说明参考第一应用程序列表中的应用程序名单的皮肤。
主屏幕允许皮肤设计师从应用程序列表中集成项目到主屏幕布局。皮肤设计师能够说明菜单项槽孔的位置以及它们在屏幕航海次序内的位置。由用户配置占用这些槽孔的应用程序。为扩大缺省表示法的应用,将显示缺省扩展。
将日历集成到主屏幕皮肤
该特征提供了将日历信息集成到主屏幕SVG皮肤的能力。图7a、7b和7c描述了根据本发明实施例的将日历集成到主屏幕皮肤的截图。
日历事件次序
日历的数据元素将根据它们在列表中的序数位置来参考日历事件,所述序数位置由以下标准排序:
1:开始时间(最早到最晚)。
2:产生时间(最早到最晚)。
另外,根据以下标准来过滤列表:
1:排除已完成的日历事件。
只要修改列表就更新皮肤。当任何以下动作发生时,更新列表:
●由用户修改设备日期/时间。
●设备时区改变。
●设备起动。
●由其它日历事件替换事件。
●事件被删除。
●事件被更新。
●事件结束。
●数据元素表
以下表格描述涉及合并到主屏幕SVG皮肤内的日历的数据元素。对专栏的描述如下:
元素名称:“id”名城的属性。为主屏幕皮肤识别元素。这些名字区分大小写,并且必须如表格中所示的准确说明。
元素描述:应用数据的描述将发展元素。
元素类型:数据元素的SVG元素类型。数据元素必须是指定类型。
元素 名称 |
元素描述 |
元素 类型 |
日历<n> 时间 |
日历事件例表中第n个日历事件的时间/日 期。 根据在日期/时间选择屏幕中设置的“时间格 式”格式化时间。如果事件发生在当前日历 日(在本地时区)则只显示时间。如果事件 发生在未来日历日(在当前时区),则只显示 日期。 根据Ribbon.rrh中的 DATE_FORMAT_STRING键利用 net.rim.device.api.i18n.SimpleDataFormat格式 化数据。 |
<文本> |
日历<n> 主题 |
日历事件例表中第n个日历事件的主题线路。 如果文本太长而不适合在布局管理其给定的 可用空间内,则利用省略号截短该文本。 |
<文本> |
日历<n> 位置 |
日历事件例表中第n个日历事件的位置。如 果文本太长而不适合在布局管理其给定的可 用空间内,则利用省略号截短该文本。 |
<文本> |
应用入口
主屏幕SVG语法将提供通过<loadScene>元素在日历事件中启动第n个日历项目的能力。例如:
<loadScenebegin=″activate″xlink:href=″x-
exec://LaunchInternal?calendar1/>
上述实例公开了日历事件列表中的第一日历事件。主屏幕SVG语法提供通过<loadScene>元素启动日历应用程序的能力,例如:
<loadScenebegin=″activate″xlink:href=″x-
exec://net_rim_bb_calendar_app.Calendar/>
上述实例启动日历应用程序。显示缺省视图。
定制事件
主屏幕皮肤具有与数据调色板中描述的数据元素相关的定制事件上触发动画的能力。更新信息/状态时,用于触发动画作用。下面是描述定制事件日历的示意表:
事件名 |
事件描述 |
日历<n>开始 |
第n个日历事件开始。 |
日历<n>endpre |
第n个日历事件结束。优先于皮肤中作为结束第n个日历事件的结果更新的数据元素烧制该事件。皮肤具有触发如在作用之外转换的定制动画的机会(例如淡出或动画屏幕)。如果皮肤未在日历<n>endpre上定义动画,则立刻烧制日历<n>endpost(参考以下所述)。如果皮肤在日历<n>endpre上定义了动画,则在烧制日历<n>endpost之前等待直到在该事件上开始的所有动画均完成。优选地,不定义动画具有dur=”indefinite”,否则不烧制日历<n>endpost。 |
日历<n>endpost |
第n个日历事件开始。与日历相关的所有数据元素(参见数据元素表)被更新后,烧制该事件。 |
以下SVG说明了如何在日历事件数据更新之前及之后达到淡出和谈入的效果:
<gid=″hsl″font-famiIy=″BBMillbank″font-size=″10″>
<textid=″calendarltime″x=″30″y=″200″x/text>
<textid=″calendarlSubject″x=″50″y=″200″font-
style=″Bold″></text>
<textid=″calendarlLocation″x=″100″y=″200″
</text>
<animateattibuteName=″fill-opacity″to=″0″
dur=″2s″begin=″calendarlEndPre″fill=″freeze″/>
<animateattributeName=″fill-opacity″to=″l″
dur=″2s″begin=″calendarlEndPost″fill=″freeze″/>
</g>
优选地,当预料事件会发生时如果事件是由于种种原因,还具有使皮肤进入正确状态的机制。
日历状态将包括代表当前日即将来临的日历事件1-n。点击这些事件,如果支持要求10,将打开它们或提出语境制约菜单。这些事件将包括:
●如果在今天确定事件,将利用局限性时间格式显示时间。
●如果在今天之后确定事件,将利用局限性MM/DD格式显示日期。
●主题。如果主题太大以至于不适合于可用空间,用″…″终止。
位置。如果地点太大以至于不适合于可用空间,用″…″终止。
每个元素具有独立的主题文本式样。将时间和主题域排列在专栏左边。给主题域一个最大宽度,位置域紧随主题域之后。
优选地,当会议结束时,从列表中移除日历事件。全天事件是例外,在碰撞列表开始会议1小时之前移除全天事件。
电话集成到主屏幕皮肤
图8a和8b示出了根据本发明公开的实施例的将电话集成到主屏幕皮肤内的屏幕截图.
数据元素表
元素名称 |
数据描述 |
主屏幕皮 肤SVG元 素类型 |
未接呼叫 <n>时间 |
第n个最新未接呼叫的时间。根据数据/ 事件选项屏幕中的”时间格式”格式化时 间。如果事件发生在当前日历日(在本地 时区),只显示时间。如果事件发生在过 去日历日(在当前时区),只显示日期。 优选地,根据Ribbon.rrh中的 |
<文本> |
[0284]
|
DATE_FORMAT_STRING键利用 net.rim.device.api.i18n.SimpleDataFormat 格式化数据。 |
|
未接呼叫 <n>信息 |
第n个未接呼叫的信息。例如(名字或电 话号码或未知号码)。如果地址入口存在 电话号码,则显示呼叫者姓名。如果名字 太长而不适于布局管理器定义的可用空 间,则以”…”终止 |
<文本> |
交替应用程序表示法
主屏幕SVG支持应用程序图标和文本的集成。通过说明Entrylcon和EntryDescription<image>来实现。电话Entrylcon和EntryDescription基于是否有新的未接呼叫来显示交替表示法。如果有新未接呼叫,EntryDescription将显示″未接呼叫″,而如果没有新未接呼叫,将显示″电话。″Entrylcon将基于是否有未接呼叫显示不同的图标。
应用程序入口
主屏幕SVG语法也提供直接通过<loadScene>元素启动电话应用程序的能力。例如:
<loadScenebegin=″activate″xlink:href=″x-
exex://net_rim_bb_phone_app.Phone/>
这涉及以上纪录的要求a),即,应用程序应能够反应用户从GUI的输入。该能力允许应用程序登记通过点击SVG元素产生的事件。应用程序与作为媒体接收者的媒体引擎API一起登记自己。当事件由<loadScene>元素产生时,对登记的媒体接收者进行通知。执行接收的通知包括xlink:hrefURI代码,该代码可用来确定点击了哪个元素并做出适当的动作。
SVG登记通知机制的其它实例不利用<loadScene>元素。应用程序直接地在元素上倾听激活事件,而不是由<loadScene>元素触发激活事件。只要元素可聚焦,就产生激活事件。可聚焦元素是一个定义焦点、散焦或激活<animate>的元素。例如:
<imageid=″myImage″x=″110″y=″19″width=″20″
height=″18″xlink:href=″myImage.png″>
<!--dummy<set>:beginconditionsofthisnodeallow
externallistenerstolistentotheactivateevents.
(IftherewasnothingintheSVGdependantonthe
activateevents,theywouldn′tgetprocessedor
firedtotheexternallisteners)-->
<setattributeName=″visibility″
to=″visible″begin=″myImage.activate″/>
</image>
说明联系任意键事件的启动电话动作:主屏幕将提供定义与访问键相连的入口。例如:
<loadScenebegin=″foo.accessKey(″send″)″
xlink:href=″x-exec://net_rim_bb_phone_app.Phone/>
在该实施例中″foo″是为了触发loadScene事件必须对焦的元素名称。访问键(“发送”)是触发或开始动作的键事件。该例实际上是说“当名为″foo″的元素对焦,并按下发送键时,启动电话应用程序”。
说明具有任意拨号参数的启动电话动作:电话应用程序入口能够接收跟随拨号以后的命令拨号参数。例如:
<loadScenebegin=″foo.accessKey(″send″)″xlink:href=″x-
exec://net_rim_bb_phone_app.Phone?command=dial:<miss
edcalls1/>
<loadScenebegin=″foo.accessKey(″send″)″xlink:href=″x-
exec://dialselected″/>
在实施例中,命令=dial:<number>是当loadScene动作开始时,传送给电话应用程序的动作。由于术语“未接呼叫1”是电话应用程序未知的主屏幕结构,因此在向电话应用程序传送之前,主屏幕应用程序用适当的数字替代<未接呼叫1>。实施例中就是说“当名为″foo″的元素对焦,并按下发送键时,启动电话应用程序并拨与<未接呼叫1>匹配的号码”。
说明启动呼叫日志入口上下文菜单动作:主屏幕SVG语法为未接呼叫数据元素相应的呼叫日志入口提供启动弹出菜单的能力。可通过主屏幕SVG文件中的<loadScene>元素说明该行为。例如:
<loadScenebegin=″activate″xlink:href=″x-
exec://LaunchInternal?missedcalls1/>
将SMS和MMS集成到主屏幕
图9示出了根据本发明公开的实施例的将SMS和MMS集成到主屏幕内的屏幕截图。
数据元素表
元素名称 |
元素描述 |
元素类型 |
sms<n>时 间 |
第n个最新sms或mms信息的时间。根 据日期/时间选项屏幕中的”时间格式”格 式化时间。如果在当前日历日(在本地时 区)接收信息,只显示时间。如果在过去 日历日(在当前时区)接收电子邮件,只 显示日期。根据Ribbon.rrh中的 DATE_FORMAT_STRING键利用 net.rim.device.api.i18n.SimpleDataFormat 格式化数据。如果信息选项->普通选项中 未设置“显示时间”,则不显示该域。即, 其“显示”属性设置未“非”。 |
<文本> |
sms<n>来 源 |
第n个最新sms或mms信息的发送者。如 果地址簿入口存在电子邮件地址,则显示 接触名。如果接触名或电子邮件地址太长 而不适于可用空间,则以”…”终止。如果 信息选项->普通选项中未设置“显示名”, 则不显示该域。即,其“显示”属性设置 未“非”。 |
<文本> |
sms<n>主 体 |
第n个最新电子邮件的主体。如果主体太 长而不适于可用空间,则以”…”终止。如 果主体是空的,则不显示。 |
<文本> |
应用程序入口
主屏幕SVG语法提供定义<loadScene>元素的能力,该元素打开与数据元素相关的信息,用来打开信息的SVG语法:
<loadScenebegin=″activate″xlink:href=″x-
exec://LaunchInternal?sms1/>
上述实施例打开与数据元素表中的sms1相关的sms或mms消息。
主屏幕SVG语法提供定义<loadScene>元素的能力,该元素打开 联合的sms和mms收件箱。通过指定模块名称和入口名字实现。用来打开消息应用程序的SVG语法:
<loadScenebegin=″activate″xlink:href=″x-exec://
net_rim_bb_messaging_app.sms_and_mms″/>
新/未读消息计数
可经消息状态选择屏幕对与联合SMS和MMS入口相关的计数进行配置。在主屏幕SVG中构造文本样式和外围括号。
组织应用程序的主屏幕区
如上所述主屏幕SVG皮肤文件可为应用程序指定″槽孔″。在组织应用程序屏幕顶部呈现一个可主题的区域,说明多少个槽孔可用,以及哪个被应用程序占用。该区有一个名为″主屏幕″的标题。区的大小取决于主屏幕皮肤中可用槽孔的数量。用户可通过组织应用程序中的正常移动操作将应用程序移入移出该区。分配给主屏幕皮肤中固定的应用程序的槽孔未在列表中出现。优选地,由于它们也占用主屏幕区内的位置,因此主题开发商担心不给予以该种方式分配给固定槽孔的应用程序优先次序。例如如果″消息″占用主屏幕上的固定位置,主题将设置消息位置,以便它不占用任何空闲槽孔。这防止消息在主屏幕上出现两次。
图10示出了根据本发明公开的实施例的组织应用程序内部主屏幕区域的概念实例。浅灰色区代表主屏幕上可用的的槽孔以及当前占用它们的应用程序。
在主屏幕区中占用位置的应用程序也占用应用程序列表弹出菜单中的顶部位置。由于可经便捷键映射从任意应用程序中启动该弹出菜单,因此可从应用程序列表中接入占用主屏幕中槽孔的应用程序。
优选地,隐藏的应用程序不能移动到组织应用程序的主屏幕区中的位置。这将避免来自主屏幕上占用槽孔的隐藏应用程序。同样,占用组织应用程序主屏幕中位置的应用程序是不可隐藏的。
如果主屏幕皮肤包括如上所述构造的应用程序槽孔,通过组织应用程序屏幕配置。主屏幕应用程序槽孔的内容根据应用菜单次序顶部的项。如果有5个槽孔,则将列表顶部的5个应用程序移入这些槽孔。 组织应用程序屏幕通过在填充可用时隙的图标下呈现主题区,指出多少应用程序出现在主屏幕上。该区在顶部有一个只读标签,表示为″主屏幕″。如此如果皮肤有2个槽孔,前2个图标出现在该区上。如果有5个槽孔,前5个出现在该区上。
图11示出了根据本发明公开的实施例的优选的手持设备1002的详细方框图,该装置适于根据可用于所述具有信息和组织系统功能以及主屏幕GUI的电子装置。手持设备1002最好是至少具有语音和先进数据通信能力的双向双向通信设备,包括与其它计算机系统通信的能力。根据手持设备1002提供的功能,可以是数据通信设备、双向寻呼机、具有数据通信能力的手机,无线互联网应用或数据通信设备(具有或不具有电话能力)。手持设备1002可与地理覆盖区域内多个基地收发器系统(未显示)中的任何一个通信。
手持设备1002通常合并通信子系统1011,该子系统包括接收机1012,发射机1014,以及相关部件,例如一个或更多(优选嵌入的或内部的)天线元素1016和1018,本地振荡器(LOs)1013,以及处理模块如数字信号处理器(DSP)1020。通信领域的技术人员熟知,通信子系统1011的特殊设计取决于手持设备1002意欲在其中操作的通信网络。
所需网络注册或激活程序完成后,手持设备1002在网络上发送并接收通信信号。将由天线1016经网络接收的信号输入到接收机1012,该接收机执行如信号放大功能,下频转换,过滤,信道选择和模拟/数字(A/D)转换等普通接收机功能。接收信号的A/D转换允许更加复杂的通信功能,例如在DSP1020中进行解调和解码。在一个相似的方法中,处理被传送的信号,包括例如,由DSP1020进行的调制和编码。将这些经处理的DSP信号输入到发射机1014进行数字/模拟(D/A)转换,上频转换,过滤,放大并在通信网络上经天线1018传输。DSP1020不仅处理通信信号,而且为接收机和发射机提供控制。例如,用于接收机1012中通信信号的增益,可通过DSP1020中实现的自动增益控制算法自适应控制发射机1014。
网络接入与手持设备1002的用户或使用者相关,因此手持设备1002包括存储模块1062,存储模块卡或可移动用户标识模块(R-UIM), 将其插入或连接到接口1064,从而实现在网络中的操作。可选的,存储模块1062可以是非易失性存储器,由服务提供商的配置数据编程,以使移动台1002能在网络中操作。由于手持设备1002是电池供电的移动设备,它还包括可接收一个或更多充电电池1056的电池接口1054。如果手持设备1002中没有所有电子电路,电池1056提供电能,并且电池接口1054提供机械和电子连接。电池接口1054与调整器相连,为所有电路提供电能V+。
手持设备1002包括控制移动台1002整体操作的微处理器1038。通信功能至少包括经通信子系统1011执行的数据和语音通信。微处理器1038还与如显示器1022另外的设备子系统相互作用,闪存1024,随机存储器(RAM)1026,辅助输入/输出(I/O)子系统1028,串行端口1030,键盘1032,扬声器1034,话筒1036,短程通信子系统1040,以及1042中指定的所有其它设备子系统。显示的一些子系统执行与通信相关的功能,而其它子系统提供″驻留″或基于设备功能。特别的,一些子系统,例如利用键盘1032和显示器1022用于两个与通信相关的功能,例如在通信网络上输入用于传输的文本消息,以及例如计算器或任务列表的驻留设备功能。将微处理器1038使用的操作系统软件较佳的存放在例如闪存1024的持久性存储中,可选的是只读存储器(ROM)或相似的存贮元素(未显示)。本领域技术人员熟知,可将操作系统、具体设备应用,或其中的零件临时加载入如RAM1026的非永久性存储器。
微处理器1038,除它的操作系统的功能之外,优选地能够执行手持设备1002上的软件应用程序。制造时,通常将控制基本设备操作的应用程序预定组安装在手持设备1002中,改组至少包括数据和语音通信应用程序。加载手持设备1002上的优选应用程序可以是具有组织管理数据项能力的个人信息管理器(PIM)应用程序,所述数据项与用户例如但不局限于电子邮件、日历事件、语音信息、约会,以及任务列表相关。自然地,手持设备1002上有一个或更多的可用存储器以及存储模块1062,以便易化PIM数据项以及其他信息的存储。
PIM应用程序优选地具有经无线网络发送并接收数据项的能力。 在最优具体实施例中,PIM数据项经无线网络无缝集成,同步,并更新,存储移动台用户对应的和/或与主机系统相关的数据项,从而在手持设备1002上产生相对于这些项的镜像主机。这对于主机系统是移动台用户的办公室或公司计算机系统的情况尤其有利。同样将其他的应用程序辅助I/O子系统1028,串行端口1030,短程通信子系统1040,或其他它任意适当的子系统1042经网络加载到手持设备1002上,并由用户将其安装在RAM1026中或优选的由微处理器1038执行的非易失性存储器(未显示)。应用程序装置的灵活性增强了手持设备1002的功能,并可提供增强的基于设备功能,与通信相关的作用,或二者都有。例如,安全通信应用程序能够利用手持设备1002执行电子商务功能以及其它财务事务。
在数据通信模式中,通过通信系统1011处理如文本消息、电子邮件消息,或网页下载的接收到的信号,并输入到微处理器1038。微处理器1038较佳的进一步处理该信号,并输出给显示器1022或可选的输出给辅助输入/输出装置1028。手持设备1002的用户也可利用与显示器1022以及可能与辅助输入/输出设备1028相连的键盘1032组成数据项,例如电子邮件消息。键盘1032优选地是全字母数字键盘和/或电话式键盘。通过通信子系统1011在通信网络上传输这些构成项
手持设备1002对于语音通信除了将接收到的信号输出给扬声器1034,并由话筒1036产生用于传输的信号之外,整体操作实质上是相似的。也可实现可选语音或音频I/O子系统,例如语音消息记录子系统。虽然通过扬声器1034根本实现语音或音频信号输出,但还利用显示器1022提供识别主叫方的指示,利用语音呼叫期间,或其它语音呼号相关的信息为例子。
通常在个人数字助理(PDA)型通信设备中执行图11中的串行端口1030,与期望的用户台式机,虽然选项,成分同步。串行端口1030使用户通过外部设备或软件应用程序设置优先级,并除通过无线通信网络外通过向手持设备1002提供信息或软件下载,扩展手持设备1002的能力。例如利用可选下载路径通过直接、可靠并可信的连接由此提供的安全设备通信向手持设备1002加载密钥。
短程通信子系统1040是为手持设备1002和不同系统或设备间通信提供的附加选择成分,不需要是相似的设备。例如,子系统1040可包括红外设备以及相关电路和组分,或为相似地集成系统和设备通信提供的通信蓝牙TM通信模块。蓝牙TM是蓝牙SIG公司的注册商标。
可经软件(指示和数据)配置手持设备1002,以便提供如上所述的GUI中信息的主屏幕集成表示。
根据本发明公开的系统和方法可由具有以上所述功能的任意硬件、软件或硬件和软件的组合实现。可将在其总体或局部的软件编码存储在计算机可读存储器中。进一步,可经通信网络传输表示嵌在载波中的软件编码的计算机数据信号。该计算机可读存储器和计算机数据信号与硬件,软件以及它们的组合均在本发明公开的范围内。虽然显示并描述了本发明公开的特殊实施例,在不偏离本发明公开的真正范围内可对该具体实施例进行变动和修改。