专利名称:支持快速文本键入的手持装置的制作方法
技术领域:
本发明一般涉及手持电子装置。更具体地,本发明涉及允许用户在手持电子装置上快速地键入文本的装置。
背景技术:
在大多数的蜂窝电话手机(和其它手持装置)上键入是缓慢而笨拙的。然而,使用手持装置来键入文本的需要却在快速增长,这主要归功于无线数据业务(诸如美国的GoAmerica和OmniSky以及日本的NTT DoCoMo)的出现、“因特网允许的”蜂窝电话手机和个人数字助理设备(PDA)的激增以及诸如电子邮件、即时消息和Web浏览的移动的基于因特网的业务的普及。
大多数的蜂窝电话包括一个“Start call(开始呼叫)”按钮和一个“End call(结束呼叫)”按钮。至于如在本专利中所提到的所有其它按钮,有关按钮的确切的名字、符号或者图形只是用于示意目的并且可以不同而不会背离本发明的精神和范围。当用户按下“Startcall”按钮时,该蜂窝电话手机和其它的手机一样动作按下具有从0到9的数字、“*”、“#”的正面按键(face key)产生相应的音调并且拨打电话号码。在结束该呼叫时,用户将按下“End call”按钮或者有可能只是使用on/off按钮来关机。
然而,除了电话呼叫,许多现代移动装置允许用户做更多的工作在不断增长的特性列表中,许多的现代蜂窝电话手机(和其它的手持装置)允许用户键入和查看诸如地址的个人信息管理数据、检查和回复电子邮件、发送即时消息或者甚至浏览Web。在使用这些特性时,用户通常会发现他们处于需要键入文本的情况中。
在设计手持装置尤其是蜂窝电话手机时,大小是一个关键的约束条件。通常,设计的目标是保持装置的尺寸小巧。但是当前的手机设计在满足小尺寸限制的同时便于文本键入方面不是非常成功的。例如,在现今的蜂窝电话手机上,字母被表示在数字键上。在大多数情况下,A、B和C在标号为2的按键上,D、E和F在3按键上,等等。许多电话省去Q和Z。其它的将“PQRS”放在7按键上,而将“WXYZ”放在9按键上。用户通过按这些数字键来键入。在当今的大多数蜂窝电话上,为了键入单词“Baby”,用户需要快速敲击2按键两次(因为“B”是在2按键上的第二个字母),暂停一秒以免键入字母“C”,然后再次敲击2按键一次(因为字母“A”是2按键上的第一个字母),暂停一秒以免键入字母“B”,再敲击2按键两次(因为Baby的第二个字母“b”),随后敲击9按键三次(因为字母“Y”是9按键上的第三个字母)。
在另外一种也很慢的配置中,电话可以被编程,以便自动地将一句话中的第一个字母大写,而让其它的字母小写。或者,用户也许能够通过敲击按键更多的次数来决定大小写例如敲击2按键一次可以得到小写的“a”,敲击两次得到小写的“b”,敲击三次得到小写的“c”,敲击四次得到大写的“A”,敲击5次得到大写的“B”,敲击6次得到大写的“C”,并且也许敲击7次会得到“2”(与该按键相关的数字)。继续敲击该按键一般会循环并且从小写字母“a”开始循环。这同样容易出错。例如,为了两次键入给定的字母,用户必须键入该字母一次,暂停(这样手机明白用户不是循环经过正被按下的按键上的那个字母),并且然后再次键入该字母。例如,为了键入字母“1”两次(例如,在键入单词“hello”时),用户将会按下5按键3次(由于“1”是该按键上的第三个字母),暂停,并且然后又一次按下5按键3次(以键入第二个“1”)。按下5键六次(中间不暂停)将会在典型的当前手机上键入大写字母“L”,而不是两次键入小写字母“1”。
一些电话和电话可接入的应用(比如E*Trade(电子交易)的基于电话的股票交易业务)使用了一种不同的、但是同样难用的键入打字方案想要键入字母J的用户将敲击数字键5(它具有字母J、K和L),随后敲击数字1(因为J是该按键上的第一个字母)。为了键入字母K,用户将敲击5按键,随后键入数字2(因为K是5按键上的第二个字母)。为了键入字母L,用户将键入5按键,随后键入数字3(因为L是5按键上的第三个字母)。
使用以上所述的任何一种方案来键入都是十分笨拙而缓慢的。而且,系统必须或者猜测每个字母的大小写(例如,大写每句中的第一个单词的第一个字母,而使其余的字母小写),或者需要用户使用额外的键敲击,以便将给定字母转换成大写字母。这两种方案都使得人们几乎不可能发展那些允许快速打字的眼-手、脑-手和肌肉配合的应用类型。
其它的电话手机打字方案通过同时按住多个手机正面按键允许用户键入字符和数字。在此一并引入作为参考的美国专利6184803和美国专利6043761描述了两个例子。这些方案通过让用户利用同时按下两个正面按键的一个事件来键入每个字符而能够允许快速的键入。但是,这些方案需要用户对此非常熟练。例如,键入字母“C”需要用户同时敲击2按键和#按键。由于多数的用户发现这样做难以学习和使用,所以这些手机键入方案也允许用户回到顺序键入-例如,敲击2按键,随后敲击#按键。在这两个专利中包含的这些方案也要求用户要么全部小写键入、全部大写键入,要么以一种需要一个附加键击来改变大小写的模式来键入。换而言之,键入混和大写和小写字母要求用户回到每个字母多按键(multi-keys-per-letter)键入模式-这使得键入比每个按键(大写或者小写)以单一事件键入的方式更慢并且更笨拙。
移动装置的一个软件开发商(即,Tegic Communications(www.t9.com))已经开发了一种用于蜂窝电话机的软件,它使用字典和算法来允许用户通过每个字母只敲击一个按键来键入大多数的单词。使用Tegic的T9文本输入软件,如果用户敲击印有字母“h-o-m-e”(这在今天的大多数蜂窝电话手机上是按键4-6-6-3)的蜂窝电话手机按键的序列,则Tegic软件识别对应于该按键序列的所有单词(由于每个按键对应于三个字母,也许会多于一次)、显示这些单词之一并且允许用户接受或者当Tegic软件选择了错误的单词时滚动显示下一个备选单词。在用户键入一个单词时,该软件显示对于当前已键入的按键的一个匹配。由于大多数按键包含三个字母(例如A、B和C在2按键上;D、E和F在3按键上,等等),一个按键按下的顺序可以对应于Tegic软件词典中的几个不同的单词。
例如,假设用户键入“home”当用户敲击4按键(对应于字母“h”)时,Tegic软件显示“i”(它也在4按键上)。当用户敲击6按键(对应于单词“home”中的第二个字母“o”)时,则Tegic软件显示“in”(由于“n”也在6按键上)。当用户再次敲击6按键(对应于“home”中的第三个字母)时,则Tegic软件显示“inn”。当用户敲击按键3(对应于单词“home”中最后的字母“e”)时,则Tegic软件将它当前显示的内容从“inn”变为“good”-即,在它的词典中和当前按下的按键匹配的第一个单词。和单词“home”相似,单词“good”碰巧也对应于大多数电话手机上的按键4-6-6-3。由于“good”不是用户想要键入的单词(这是“home”),所以Tegic软件允许用户使用蜂窝电话上的合适按钮(例如,在多数手机的下部中央的0按键)来滚动显示其它的匹配。当用户敲击此“next-word(下一单词)”按钮时,Tegic软件显示它的词典中和被击打的按键相对应的下一单词。在本例中,下一单词很可能是“home”。因此,用户可以再次敲击0按键,以便把单词“good”切换到单词“home”。在这个例子中,用户得按下5个按键来键入单词“home”4-6-6-3-0。在许多情况下,由Tegic表示的第一个单词将会是正确的单词(因为这将是Tegic在它的词典中发现与敲击的序列对应的第一个单词)。在其它情形下,用户可能不得不敲击“下一单词”按钮好几次才能得到词典中的正确单词。在其他的情形下,用户想要键入的单词也许根本不在此词典中。
因此Tegic软件通常允许用户使用比前面所提到的每个字母多按键按下方案更少的键击来键入单词。在许多情形下,用户能够对每个字母只键入一次,并且Tegic软件可以得到正确的单词。但是,Tegic的方案具有一些缺点。首先,如果单词不在Tegic软件使用的词典中(对于例如公司名字的专有名词和首字母缩略语,这经常发生),那么该单词利用Tegic软件将不会成功地被键入-作为被显示的第一选择或者作为其它任何的备选单词。在这种情况下,用户必须恢复到前面所提到的每个字母多按键的方案。其次,由于用户在键入单词过程中还有部分未完成,所以Tegic软件通常显示与已经键入的单词不同的部分单词。举例来说,如前所述,在键入单词“home”的前3个按键后-用户将会在显示器上看到字符“inn”而不会看到“hom”。相似地,在键入单词“meeting”的前三个字母后,用户将会在显示器上看到“off”。这会使用户迷惑-尤其是因为对于多数用户来说在当今的蜂窝电话键盘上键入是一种相当新而且慢的方法,因此他们需要对这些过程的视觉确认。如果当用户认为他们已经键入了单词“meeting”的一半时用户查阅并看到“off”,典型的反应是想使用回退键来擦除显然的打字错误。(这就是为什么Tegic的文档指示用户“忽略屏幕上的东西,直到您已经完全键入单词”。)Tegic软件的第三个问题是它使用字典和查找软件,这将会消耗低成本与低功率移动装置上的宝贵的存储器和CPU时间。典型地,一个有50,000单词的字典将消耗150-300千字节的存储器。
一些新的手持装置设计允许用户在一个微小的、所谓的“Qwerty”的键盘上使用其拇指或者食指来键入-这种键盘是大多数台式计算机使用的键盘的微缩版本。在美国专利6278442B1中可以看到具有微小的Qwerty键盘的这样的装置的一个例子,该美国专利在此引入以供参考。
但是对于大多数现在的蜂窝电话用户来说,蜂窝电话机上的Qwerty键盘看起来很奇怪-这限制了考虑购买带有Qwerty键盘的蜂窝电话机的潜在蜂窝电话用户的百分比。并且,即使大多数人都可以舒适地打字的最小的拇指-Qwerty键盘也比现在出售的大多数蜂窝电话机更宽-因此这些键盘需要非标准蜂窝电话外形因素。
其它的手持装置使用字符识别软件,以允许用户在触摸板上使用键入笔或者手指来书写字母。尽管这些输入方案中的一些方案比前面所讨论的每个字母多按键的蜂窝电话键入方案更加容易和更加快速地使用,但与计算机键盘相比,至少对于熟练的打字员来说,这些方案仍然较慢。
简而言之,在保持装置很小的同时,日益增长允许用户更快地键入文本的新的蜂窝电话手机设计的需求。
发明内容
本发明最常用的形式是在其正面上具有多个按键(此后称为“正面按键”)和在侧面上具有一个或多个按钮(此后称为“侧面按钮”或“修改按钮”)的手持装置。用户通过在使用持有该装置的那只手的手指保持侧面按钮的组合的同时使用没有握住该装置的那只手的手指按下正面按键之一来键入字符(或调用功能)。按下正面按键而不保持任何侧面按键来键入字符(或执行功能)。在保持侧面按键的给定组合的同时按下同一正面按键可以键入不同的字符(或者执行不同的功能)。
本发明允许用户在手持装置-特别是在蜂窝电话手机上快速键入。许多其它类型的装置也可以使用此同一键入机制,包括PDA、手持计算机、智能电话机、Web电话机、传呼机、即时消息装置、连接到野外设备的输入装置等等。本发明可以在蜂窝电话手机上实施,同时保持传统蜂窝电话机的外形因素(以及非标准外形因素)。本发明对于初学者学习和使用来说很容易并且也很直观-这样他们能够立刻相当快地打字。还有,通过发展“脑-手”协同和肌肉-记忆,允许快速接触打字员类型快速地在正常的计算机键盘上打字,并且使得结帐职员在超市的结帐台快速地操作10按键的数字键盘,本发明使得积极的用户可以学习非常快速地打字。
具体实施例方式
如
图1所示,本发明的第一个优选实施例在典型的蜂窝电话手机的侧面增加了3个新按钮。尽管图1示出了显示器,但并不一定实际上具有显示器,这取决于实施本发明的手持装置的要求。例如,我的发明可以容易地在不需要显示器的手持装置上实施。在图1中看到的3个新的侧面按钮是“shift(移位)”侧面按钮101、“2nd Letter(第二字母)”侧面按钮102以及“3rd Letter(第三字母)”侧面按钮103。在使用电话机来键入文本的情况下,用户将会如图1所示在左手中持有手机并且使用左手的食指、中指和无名指来分别控制“shift”、“2ndLetter”以及“3rd Letter”侧面按钮的组合,而且同时使用右手来按手机正面上的按键。
如果侧面按钮都没有被保持,那么按下正面按键之一只是键入该按键上的第一个字母。例如,按下图1中的手机上的“2”按键将得到在电话机正用于键入文本的情况中是小写字母“a”的一个字符。为了键入是给定的正面按键上的第一个字母的大写方式的字符(如大写字母“A”),用户握住“shift”侧面按钮101同时按下那个正面按键。这样,“shift”侧面按钮101就像它在正常的计算机键盘上一样工作,改变其它按键的行为。在许多正常的计算机键盘上,“shift”和“Ctrl”键有时被称为“修改”键。在本发明说明书中所讨论的侧面按钮是修改按钮,这些按纽在被保持住时改变装置的正面按键的行为。
为了键入给定的正面按键上第二个字母的小写形式(例如“2”按键上的字母“b”),用户在按下该正面按键的同时握住“2nd Letter”侧面按钮102。为了键入给定的正面按键上第二个字母的大写形式(例如大写字母“B”),用户在按下那个正面按键的同时握住“shift”侧面按钮101和“2nd Letter”侧面按钮102。
为了键入给定正面按键上第三字母的小写形式(例如“2”按键上的字母“c”),用户在按该正面按键的同时保持住“3rd Letter”侧面按钮103。为了键入给定正面按键上第三字母的大写形式(例如大写字母“C”),用户在按该正面按键的同时保持住“shift”侧面按钮101和“3rd Letter”侧面按钮103。在本例中涉及的字母和按键是指图1中所示的范例布置。也可以把手机设计成字母位于不同的按键上,如我们将在下面讨论图4时所看到的。
有些人发现同时按下“shift”侧面按钮和“3rd Letter”侧面按钮而不按它们之间的“2nd Letter”侧面按钮有点别扭(见图1)。因此,装置(以及该装置的软件程序和存储系统)的一个优选实施例可以将同时按下全部3个按钮(“shift”、“2nd Letter”和“3rdLetter”)解释成和同时按下“shift”以及“3rd Letter”侧面按钮相同。或者,一个实施例可以在“3rd Letter”按钮被按下时忽略“2ndLetter”按钮。
整个字母表加上一些通用标点、一个空格字符以及一个退格字符(它和计算机键盘上的退格键作用一样)应当显示在一个适于打字的手机上。图1示出了一个例子。图2、3和4示出了其它例子并且将在随后详细进行讨论。
有时用户在文本键入的情况下需要键入数字-例如,在他们的个人信息管理数据库中键入街道地址。图1示出了一个具有“Num Lock(数字锁定)”正面按钮104的手机。当用户按一次“Num Lock”按钮,则此电话机进入一种模式,在此模式中正面按键和许多计算机键盘上的数字键盘作用相似在数字锁定模式时,按一个给定正面按键只键入正面按键上的主要数字或符号(1、2、3、4、5、6、7、8、9、0、*或者#)。这种数字锁定模式可以使用正好在“Num Lock”按钮104下方的LED来指示,此LED在图1上表示为“Num Lock”按钮104下方的小圆圈。当用户再次按下“Num Lock”正面按钮104时,电话机退出数字锁定模式并返回到前面所述的非数字键入模式,并且Num LockLED灯将关断。
本领域的普通技术人员从前述教导就可以容易地写出实施前述实施例的必要软件。以下就是一个例子。此装置的每个修改按钮和每个正面按键可以实施为简单的开关。众所周知,一个硬件开关的触点在任何给定时刻要么断开要么合上。当用户按下任何给定按钮或按键时(例如闭合相应开关的触点),那么此装置上的固件将一个与被按下的按钮或者按键相对应的、诸如唯一的数字或者字符的唯一代码发送到一个将利用在此装置上运行的软件读出的队列中。当用户释放该按钮或者按键时(例如,打开相应开关的触点),那么此装置上的固件发送一个与被释放的按钮或者按键相对应的唯一代码到该队列。当用户只按下一个按键一次时,开关触点通常只合上或者打开很多次-即,它会“颤动(bounce)”。这也会在用户释放该按键时发生。因此固件开发人员通常开发那些可以“去颤(debounce)”按键按下和释放的固件。该固件监测在很短的时间-例如1/50秒(或其它简短的时间段)中是否进行了多次接触,以及如果是的话,把它们当作是单个按下或者释放(取决于开关处于什么状态和以什么状态结束)。
装置上的软件连续地查找在上面提到的序列中出现的新代码-由固件提供的代码。该软件读出这些代码并开始将这些代码解释为键入。这种解释软件也可以作为此装置的“固件”的一部分来实施,或者它可以被写入以便在处理器上运行,该处理器还运行诸如Pocket PC或者Linux的高级操作系统。下面的伪码描述了用于解释在用户操作类似图1中所示的装置上的按钮或者按键时所产生的代码的软件程序。
<pre listing-type="program-listing"><![CDATA[ //在按下装置按键和按钮时,固件发送到序列中的代码//与图1电话机实例中的修改按钮相对应的代码 #define kShiftDown=1; //移动被按下的修改按钮#define kShiftUp=2; //移动被释放的修改按钮#define k2ndLetterDown=3; //按下2nd Letter按钮#define k2ndLetterUp=4; //释放3rd Letter按钮#define k3rdLetterDown=5; //按下3rd Letter按钮#define k3rdLetterUp=6; //释放3rd Letter按钮//与图1电话机实例中的12按键相对应的代码//注意在本例中向下代码是偶数,而向上代码是奇数#define k1KeyDown=10; //按下1按键#define k1KeyUp=11; //释放1按键 #define k2KeyDown=12;//按下2按键#define k2KeyUp=13; //释放2按键#define k3KeyDown=14;//按下3按键#define k3KeyUp=15; //释放3按键#define k4KeyDown=16;//按下4按键#define k4KeyUp=17; //释放4按键#define k5KeyDown=18;//按下5按键#define k5KeyUp=19; //释放5按键#define k6KeyDown=20;//按下6按键#define k6KeyUp=21; //释放6按键#define k7KeyDown=22;//按下7按键#define k7KeyUp=23; //释放7按键#define k8KeyDown=24;//按下8按键#define k8KeyUp=25; //释放8按键#define k9KeyDown=26;//按下9按键#define k9KeyUp=27; //释放9按键#define kStarKeyDown=28; //按下*按键#define kStarKeyUp=29; //释放*按键#define k0KeyDown=30;//按下0按键#define k0KeyUp=31; //释放0按键#define kPoundKeyDown=32;//按下#按键#define kPoundKeyUp=33; //释放#按键#define kMinTypingKey=k1KeyDown;#define kMaxTypingKey=kPoundKeyUp;#define kNumLockDown=40; //按下Num Lock按键#define kNumLockUp=41; //释放Num Lock按键//假设存在诸如串口队列的一个队列-其中//在用户按下或者释放//图1所示装置的修改按钮或者正面按键之一时,固件写入以上代码之一。IntegerQueue Q;//定义在此伪码中使用的整数代码的队列//在各种情况下,此装置应当将按键和按钮按下解释为//键入-例如,以使用户键入电子邮件或即时消息int code=0;boolean gShift=false;boolean g2ndLetter=false; boolean g3rdLetter=false;boolean gNumLock=false; char charToType=null;while(in-typing-context){charToType=null;code=ReadFromQueue(Q);//从队列中提取下一个代码//根据相应修改按钮最近的按下或者释放来设定shift、2nd letter以及3rd letter变量 if(code==kShiftDown)gShift=true;else if(code==kShiftUp)gShift=false;else if(code==k2ndLetterDown)g2ndLetter=true;else if(code==k2ndLetterUp)g2ndLetter=false;else if(code==k3rdLetterDown)g3rdLetter=true; else if(code==k3rdLetterUp)g3rdLetter=false;//当相应Num Lock按键被按下时,切换Num Lock变量的状态。忽略该按键的释放。(其它实施例可以使用单独的Num修改按钮来代替NumLock按键。)else if(code==kNumLockDown)gNumLock=not gNumLock;//如果没有一个修改按钮或Num Lock被按下,也许是一个正面按键被键入,它需要被解释为一个字符,说明修改和Num Lock状态。 //在本特定例子中,1按键和大多数的字符按键有所不同,因为对于1按键来说,shift按键被忽略...else if(code==k1KeyDown){//用户按下1按键if(gNumLock)charToType=“1”;//如果NumLock被按下,将键入数字else if(g3rdLetter)//否则如果3rd letter修改按钮被按下charToType=“&”;//将键入1按键上的第三个字符else if(g2ndLetter)//否则,如果2nd letter修改按钮被按下charToType=“$”;//键入1按键上的第二个字符else charToType=BackSpaceKey;//否则将键入1按键上的第一个字符}//2按键是典型的大多数字符按键...else if(code==k2KeyDown){//用户按下2按键if(gNumLock)charToType=“2”;//如果NumLock按下,将键入数字else if(g3rdLetter){//否则如果按下3rd letter修改按钮if(gShift)charToType=“C”;//2按键上的第三个字符是大写的else charToType=“c”;//2按键上的第三个字符不是大写的//注意如果用户正按住“3rd letter”修改按钮,最好忽略“2ndletter”修改按钮。这使用户通过在敲击2按键的同时按下“shift”、“2nd letter”和“3rd letter”按钮来键入“c”-对于某些人来说,这比利用握住电话机的那只手键入“shift”和“3rd letter”按钮更容易些。}else if(g2ndLetter){//否则,如果2nd letter修改按钮被按下 if(gShift)charToType=“B”;//2按键上的第二个字符是大写的else charToType=“b”;//2按键上的第二个字符不是大写的}else{//否则用户正键入2按键上的第一个字符 if(gShift)charToType=“A”;//2按键上的第一个字符是大写的 else charToType=“a”;//2按键上的第一个字符不是大写的}//3按键和2按键相似...else if(code==k3KeyDown){//用户按下3按键if(gNumLock)charToType=“3”;//如果NumLock被按下,键入数字else if(g3rdLetter){//否则如果3rd letter修改按纽被按下if(gShift)charToType=“F”;//3按键上的第三个字符是大写的else charToType=“f”;//3按键上的第三个字符不是大写的}else if(g2ndLetter){//否则如果2nd letter修改按钮被按下if(gShift)charToType=“E”;//3按键上的第二个字符是大写的else charToType=“e”;//3按键上的第二个字符不是大写的}else{//否则用户正键入3按键上的第一个字母if(gShift)charToType=“D”;//3按键上的第一个字符是大写的 else charToType=“d”;//3按键上的第一个字符不是大写的 }}...//其它按键将象以上的2与3按键一样被解释。类似#按键上的标点之类的字符将象以上处理1按键上的“$”以及“&”字符一样进行处理-即,它们不受shift按键的影响。(当然,开发者可以选择具有在shift修改键被按下时产生的不同字符。).. .//如果在所有处理之后还有字符要键入,则键入它//我们在此只调用一个例程来键入字符,即,就像用户在正常的计算机键盘上键入时所发生的那样显示字符和/或将字符加入到一个文本缓冲器。If(charToType!=null)Type(charToType);}//结束主循环}//结束伪码实例]]></pre>适当训练的程序员可以开发许多其它的方式来实施依照本发明解释按键和修改按钮的软件-包括使用查找表以使得软件比上面的伪码更可伸缩和更有效的实施方式(如下面所讨论的),以及对附加的有用功能进行解释的实施方式(例如与大多数台式计算机上的自动打字特性类似,当用户按下或者保持按键和按钮的给定组合的时间大于某个最小时间量时自动键入一个字符)。其它的实施例可能考虑附加的字符按键或者附加的修改按键(如在图2、3和4中出现的那些按键)。并且,还有其它的实施例能考虑装置上的附加控制(如光标控制)或者其它I/O能力-或许当那些控制或I/O部件被用户或者装置操作时,根据修改按键的组合来修改那些控制或I/O部件的行为。
上述的伪码使用“if-then”语句来解释从队列中读出的代码-这些代码与用户已经按下的特定按键或按钮相对应。如上所述,另一种解释这些代码的方式是使用查找表。例如,在上述的伪码中,在if(code==k3rdLetterDown)gNumLock=notgNumLock;和if(charToType!=null)Type(charToType);之间的解释部分可以被使用查找表的代码来替换,类似于如下<pre listing-type="program-listing"><![CDATA[//如果我们已经读出表示正被按下的主按键之一的代码...//(在我们的例子中Down代码是偶数)else if(Even(code)and(code>=kMinTypingKey)and(code<=kMaxTypingKey){//构建查找表的索引index=code*8;if(gShift)index=index+1;if(g2ndLetter)index=index+2;if(g3rdLetter)index=index+4;//在我们的表中查找要键入的字符charToType=CharTable[index];}]]></pre>在本例中,表CharTable在进入主循环之前已经被设定。该表对于每个主键入按键有一个记录并且每个记录有8个条目-每个条目对应布尔变量gShift、g2ndLetter和g3rdLetter的每一种可能组合。每个记录条目包含的字符是在同时按下相应于该条目的shift、2ndLettef和3rd Letter侧面修改按钮的组合的同时在用户按下对应于该记录的按键时应当被键入的字符(如在以上代码例子中所示)。
注意装置的软件可以根据上下文能够改变按键、修改按钮以及控制的按下和释放的解释。例如,如果用户当前正在将美元符号键入到应当仅包含美元金额符号的基于web形式的区域中,并且如果装置的软件足够智能而知道该区域应当仅包含美元金额符号,则该装置的软件可以以一种方式解释修改按钮的行为,使得用户可以更加容易地键入包含数字、美元符号、小数点以及逗号的美元金额符号(即,容易将诸如“$3,581.52”的金额键入到该区域)。这也许包括解释包含数字的按键的任何按下操作,这样只键入该数字,而不管修改按钮或NumLock的状态(同时键入在该区域中进行)。其后,(例如)当用户想要键入电子邮件或者文本消息时,该装置的软件将会注意修改按钮。
在以上的伪码例子中,按键和按钮键入的这种上下文敏感解释可以通过对每个上下文提供不同的查找表来简单地实现。例如,如果有三种不同上下文,每个都有自己的按键和按钮键入的相应解释,我们将在以上伪码中的程序行charToType=CharTable[index];更改为if(gContext==klstContext)charToType=CharTablel[index];elseif(gContext==k2ndContext)charToType=CharTable2[index];elseif(gContext==k3rdContext)charToType=CharTable3[index];其中CharTable1、CharTable2和CharTable3在以类似于CharTable在前面的伪码中建立的方式在主循环之前已经建立,并且其中gContext是一个变量,监测我们正处于的上下文(这能够利用代码的其它部分来改变)。
根据上下文来改变按键和按钮的解释的另一个例子是当用户想使用一只手来键入时(即不使用侧面修改按钮),允许用户将利用本发明的蜂窝电话装置设置为传统蜂窝电话的每个字母多按键键入模式在该模式中,将忽略侧面修改按钮,并且用户会不得不多次按一个按键以便键入该按键上的第二或第三个字符以及区别大写和小写字母-如许多标准蜂窝电话所要求的。实现具有如本例的多种键入模式的装置的设备制造商应当实现允许用户在模式之间(即在上面的伪码例子所述的双手键入模式和今天的其它手机上可用的传统的单手键入模式之间)轻松切换的用户界面,理想地是通过容易进入的软件菜单选择或者通过装置上的物理按钮或开关来实现的。
作为改变按键和按钮的解释以适应上下文的另外一个例子,当软件知道用户只是键入电话号码以便开始一个电话呼叫时(例如,就在用户按下电话上的“Start call”按钮之后),采用本发明的蜂窝电话的一个优选实施例将只忽略侧面修改按键在电话号码拨号的情景中,该装置可以将正面按键解释为简单的拨号数字,如任何标准电话中那样。当该装置切换到用户能够键入文本或者符号的地方时-诸如电子邮件、文本消息或者web页上的填充区域,侧面修改键开始起作用。
在图2中说明了图1所示的“Num-Lock”正面按钮的一种替换方式,它示出了一个可选的“Num”侧面按钮204。使用这种配置,为了键入正面按键上所示的数字或符号“*”或“#”,用户可以用握手机的手上的小手指握住“Num”侧面按钮204,而用另一只手键入此正面按键。实际上,“Num”侧面按钮相当于“4th Letter(第四字母)”按钮,与上面所述的“3rd Letter”按钮相似,允许用户键入与每个正面按键相关的第四个字符,这只是与该按键对应的数字或*或#符号。
本发明包括具有“Num-Lock”正面按钮的设计和具有“Num”侧面按钮的设计。在键入数字时,该“Num-Lock”正面按钮方案需要更多的键击。该“Num”侧面按钮能够导致更快的键入包括数字在内的文本,但是会造成4个侧面按钮(如图2所示),这看起来有点杂乱。这两种方案都易于学习和使用。
为了键入与使用图1的优选实施例的正面按键有关的第一字母,用户按下该正面按键。为了键入与正面按键有关的第二字母,用户在按下该按键的同时保持住“2nd Letter”侧面按钮102。为了键入与正面按键相关的第三个字母,用户在按下该正面按键的同时保持住“3rd Letter”侧面按钮。任何键入的字符都是小写的,除非“Shift”侧面按钮也被保持住,在这种情况下字母将大写。为了键入与按键相关的数字或符号(0-9或“*”或“#”),用户按“Num Lock”按钮104以进入数字锁定模式,键入与该数字或符号相对应的正面按键,并且(在键入其它希望的数字或*或#以后)再次按下“Num Lock”按钮,以退出数字锁定模式。如果手机设计包括“Num”侧面按钮(如图2)而不是“Num Lock”正面按钮(如图1),则键入与正面按键(0-9或*或#)相关的数字或符号,用户在键入正面按钮的同时保持住该“Num”侧面按钮。
当用户握着基于图1或图2实施例的手机(或其它装置)并且用户被给予在前面段落中所述的指令时,对他来说,可以更容易立即使用该手机键入文本。相对于其它蜂窝电话手机,一个新用户可以在此类手机上相当快地键入详尽的、正确标点的句子,即使用户只用一个手指来敲击正面按键。
使用本实施例,积极的用户可以学习相对于其它蜂窝电话手机设计来说非常快地打字。他们可以通过学习使用3个手指而不是一个手指敲击正面按键来做到这一点在图1中所示的电话上,该用户对于按键的左面一列(图1中的按键“1”、“4”、“7”和“*”)使用食指,对于按键的中间一列(按键“2”、“5”、“8”和“0”)使用中指,对于按键的第三列使用无名指(按键“3”、“6”、“9”和“#”)。如果电话被设计成使用右手握并且使用左手按键,则用户对左面的列使用无名指,对中间的列使用中指并且对右面的列使用食指。熟练的超市付款出口的工人(以及出纳)学习通过对每列数字使用三个不同手指来快速地在加法机小键盘上键入数字。相似地,本发明的熟练用户也可以学习十分快速地键入详尽文本,通过在一只手中握手机,使用另一只手的3个手指敲击正面按键(对于正面按键的每列使用不同的手指),同时使用“shift”、“2nd Letter”和“3rd Letter”侧面按钮(使用握手机的那只手的手指),以决定在任意给定时刻应该生成正面按键上的哪个字符。一个实践并取得本技术经验的人将能够发展肌肉-记忆和脑-眼协调之类经验,使得许多人可以快速地在计算机键盘或者加法机上打字。也许用户在本发明的蜂窝电话手机上不能象他们在计算机键盘上打字那样快速地打字。但是,许多用户有可能学会在一种本实施例所设计的手机上比他们在以前的蜂窝电话手机设计上更快地打字。
根据本实施例,用户将典型地使用两只手打字-一只握电话并操纵侧面按钮,而另一只敲击正面按键。如果手机设计者想使用户也能使用握手机的同一只手来键入文本-以便完全单手操作-他或她可以将手机设计得用户能够使用指动轮(thumb-wheel)[有时也被称为滚轮(jog dial)]或其它类型的控制、侧面按钮或正面按键来使手机进入每个字符多按键模式。在这种模式,手机会象现在的大多数蜂窝电话手机一样工作,要求对每个字符重复地按键而同时允许用户只使用正面按键打字。然而,不需要包含这个额外的模式大多数用户并不需要使用一只手在蜂窝电话手机上键入文本,即使在理论上这在一些现在的手机上是可能的,因为这样做太困难和繁琐。如果说它有优点的话,就是这个特性可以方便单手的用户。然而,手机设计对于用户来说在用另一只手驾驶或者携带公文包时应该易于用一只手握住,并且易于使用持手机的那只手的拇指或者手指利用指动轮或者其它控制部件来在存储在手机中的功能和数据之间快速滚动。例如,用户应当可以只使用一只手在他们的联系人、或者他们的其它子集之间滚动,并且初始化到这些联系人中的任何一个的电话呼叫或者语音消息。许多现代的蜂窝电话手机很好地解决了这个问题。
在许多语言的文本中最常用的字符是空格字符,因此在为这些语言所设计的手机上应当特别容易键入空格。图1示出了一个空格字符,作为手机左下角的“*”正面按键113上的第一个字符。在打字需要的情况下,由于空格字符是“*”按键上的第一个字符,用户可以简单地通过敲击“*”正面按键来键入空格字符,而不需要保持住任何侧面按钮。图2示出了一个备选配置,其中空格按键213被独立在手机左侧的大空格条中-使得用户可以更容易地敲击空格按键。这类似于大多数计算机上的空格键。通过将空格按键独立在图2中所示的大的正面按键213中可以获得额外的速度。如果空格按键被独立成在正面按键其它列一侧的它自己的大的正面按键213,那么用户可以在如上所述使用他们右手的食指、中指以及无名指键入其它字符的同时使用他或她的拇指键入空格字符。相似地,如图4所示将退格按键独立成它自己的分开的大正面按键412,可以使用户更快地编辑文本和纠正错误。将空格按键和退格按键独立成分开的大正面按键的代价是尺寸电话机变得比它们没有那些分开按键时更宽。但是所获得的额外速度使用户当在手持装置上键入文本时变得更加舒适(并且快速)。同样,将空格和退格按键分开成他们独立的正面按键释放了在正面按键主要的列上的位置,这允许附加的符号。例如,通过将空格和退格按键换成大的独立正面按键,图4示出了一个高度功能、易于学习、易于使用并且很好地对称字符的布局。
手机设计者可以调整装置的侧面按钮的确切顺序和位置。用户可以选择不同于本段中前面所述的那些手指的其它手指来操纵这些侧面按钮。手机也可以被设计成使用右手来拿住-在这种情况下这些侧面按钮被放置在手机的左侧,在那里用户可以使用右手手指操纵这些按钮。或者手机可以被设计成修改按钮在手机的两侧-在左侧有一套shift、2nd Letter和3rd Letter修改按钮;而在右侧有一套镜像的shift、2nd Letter和3rd Letter修改按钮。按侧面按钮和正面按钮并不需要太多的技巧或者手-眼协调-当然比例如系鞋带或者在正常的计算机键盘上打字所要求的更少。因此,发明者相信不需要根据使用左手或右手的习惯来设计“左手的”或者“右手的”蜂窝电话。注意,许多现有的手机在手机的左侧包含指动轮[有时也被称为“滚轮”],并且对于某些应用,这些指动轮会比所建议的新侧面按钮要求更多的技能和手-眼协同。但是有些人喜欢用他们的左手握电话,而其它的人喜欢用右手握,因此允许使用任一只手操作按钮(通过在装置的两侧都放置修改按钮)可以满足这两种现象。
典型地,使用本发明的蜂窝电话手机被用于接入到多个移动因特网服务和语音业务。根据业务提供商所提供的业务,用户能够访问email、即时消息、Web页面、远程驻留的应用程序以及其它业务。有许多方式可以使用户能够指示他们在给定时刻想要使用的业务指动轮可以被用于在选项之间滚动并作出选择,如在当今的一些蜂窝电话手机上所见的;手机任一侧的侧面按钮可以被使用;可以在手机的正面(或者甚至是背面)增加按钮以允许用户在功能之间切换;或者可以使用这些特征的组合。
以上所描述的优选实施例适合使用字母的语言和区分大写和小写的语言。对于不包括大写和小写字母的语言,Shift侧面按钮是不需要的因此可以被停用,或者用其它的修改侧面按钮代替,例如“4thLetter”侧面按钮、“Alternative Letter(可替换字母)”侧面按钮、或者其它侧面按钮。例如,“Alternative Letter”侧面按钮可以作为大多数PC键盘上的“Alt”按键或者“Ctrl”按键-修改被同时按下的正面按键或者侧面按钮的行为。
不可避免地,用户有时也许想要退格或者消除他们以前的键入。图1示出了一个退格键作为手机号码按键右上角的“1”正面按键112的第一个字符。在需要键入的情况下,用户简单地敲击“1”正面按键就可以键入退格(由于退格按键是“1”按键上的第一个字符,因此不需要保持任何侧面按钮)。图4示出了一个替换的配置,其中退格按键412被独立成手机左侧上面的一个大的空格键-使得用户更加容易退格。这类似于大多数计算机键盘上被扩大的退格键。
蜂窝电话手机(以及其它手持装置)越来越多地被用于浏览Web页面和应用程序并进行交互-这种趋势好像还在加速,这是因为新的小显示器类型允许用户在手持装置上浏览比较大的Web页面和应用程序屏幕(或者其大部分)。由于这种趋势的加速,用户需要更加容易的方式在他们的小装置上航巡Web页面和应用表格,以及需要更好的方式来选择那些可选择条目。如图3所示,为了允许用户快速在web页面和应用表格的可选择条目之间移动和选择,引入了3个附加正面按键316在显示器上“focus(聚焦)”中的条目是用户在按下“Select(选择)”正面按键的时候被选择的条目。该条目可以是按钮、检查框、单选按钮(radio button)、可编辑文本框或者任何其它的可选择条目。如果是可编辑文本框在聚焦中,在该可编辑文本框中应该显示文本输入标记,指示用户开始键入时下一个字符将会出现的位置。(这和当今大多数的台式计算机上的字处理中发生的情况相似一个闪烁的“I光标”文本输入标记示出下一个被键入的字符将会出现的地方。)当一个新的表格、屏幕、窗口或者web页面被显示时,应用程序可以将初始焦点设定在适当的条目上(例如表格中的第一个可选择条目)。用户然后可以使用“Tab”正面按键(如图3图解的按键列316的右侧所示的)从一个可选择条目移动聚焦到下一个。用户可以使用“Tabback”正面按键从一个可选择条目移动聚焦到前一个。在Web页面或者应用表格上的每个可选择条目之间,使用“Select”按键来实际选择当前聚焦的条目。
如同本发明中所述的其它正面按键或侧面按钮一样,这些正面按键或侧面按钮的确切位置和名称可以不同。在装置的正面放置“Tab”、“Tab back”以及“Select”按键的一种替换方式是将他们的部分或者全部象侧面按钮一样放在手机的侧面-优选地放在手机拇指通常放置的地方(例如,在“Shift”,“2nd Letter”以及“3rd Letter”修改按钮相反的一侧,就好象它们只出现在装置的一侧)。另一种替换方式是将他们的全部或者部分放在装置的背面,这样用户能够使用一个或多个手指操作。
配备用于“Tab”、“Tab back”以及“Select”功能的正面按键或侧面按钮的一个替换方式是在手机的一侧配有指动轮108(优选地该侧是用户拇指搁置的地方)。用户可以用他们的拇指滚动指动轮,以便快速地在所有可选择条目之间tab(跳跃)向前(当向一个方向滚动时)或者tab向后(当向另一个方向滚动时)-每次滚轮向前或者向后滚动了给定量时,聚焦到下一个或者前一个可选择条目。此外,指动轮可以作为按钮使用当压入到手机中时,处于焦点中的条目将被选中。一种替换方式是允许用户通过滚动指动轮来改变焦点,但是要求用户按手机正面上的“Select”正面按键来选择当前处于聚焦的条目。
大多数蜂窝电话手机包括了图1到图4中所示的许多条目,如图1所示,包括一个扬声器105、一个开/关按钮106、一个显示器107、一个用于开始呼叫的按钮109、一个用于结束呼叫的按钮110以及一个麦克风115。
图1和图2示出了出现在许多蜂窝电话手机上的一个控制键,在这些手机上面用户可能需要键入文本-一个左箭头/右箭头控制键111使用户可以在文本(如正被键入的文本)中向后或者向前移动输入入口点。这些操作类似于大多数计算机键盘上的左与右箭头。图3和图4示出了这种控制键更高级的方式-左/右/上/下箭头控制键311使得用户可以在一块文本中向左、右、上或者下移动-就像大多数计算机键盘上的左、右、上和下箭头一样。并且更高级的装置可以包括一个完全光标控制,允许光标在装置的显示器上所示的图像的实际各个方向上的移动。
用户有时希望能够键入比大多数蜂窝电话手机上可利用的字符更多的字符(或者至少是更容易使用)。使用前面所述的(并且图1中所示的)“Shift”“2nd Letter”以及“3rd Letter”侧面按钮,用户已经可以键入比大多数的蜂窝电话手机上更多的字符。并且如图2中所示,再多增加几个正面按键216,使得用户可以键入更多的符号。如图2中所示,为了键入左括号字符“(”,用户只敲击上面具有该字符的正面按键。为了键入左方括号“[”,用户将在敲击相同正面按键的同时保持住“Shift”侧面按钮(由于“[”字符被表示在该正面按键的“(”之上)。为了键入双引号”,用户在保持“2nd Letter”侧面按纽的同时敲击相同的正面按键,这是由于双引号字符是该正面按键的第二个字符。为了键入单引号“’”,用户在保持“Shift”侧面按钮和“2nd Letter”侧面按钮的同时敲击同一个正面按键,因为单引号字符在该正面按键的第二个字符上方。为了键入右括号“)”,用户在保持“3rd Letter”侧面按钮的同时敲击同一个正面按键,因为右括号是该按键上的第三个字符。而且,为了键入右方括号“]”,用户在敲击同一个正面按键的同时保持“Shift”侧面按钮和“3rd Letter”侧面按钮,因为右方括号在该按键上的第三个字符上方。图2中手机底部的其它正面按键216上的其它字符以相似的方式键入。
按键上确切的字符和位置以及所使用的按键数字可以不同,这使得使用给定手机设计可以键入范围很大的可能字符。例如,使用图4中所示的正面按键设计,用户能够键入在一个典型的美式英语计算机键盘上可以看到的几乎每个字符。其它的手机设计甚至可以增加更多的按键,使得更大范围的字符可以被键入。并且设计者可以使用备选控制来让用户访问正面按键上没有表示的字符例如,在装置正面或者侧面的“alternative characters”按钮、或者在装置前方或者侧面的指动轮能够让用户在备选字符间滚动。
如前所述,在仍然遵守本发明的同时,可以改变侧面按钮的顺序,尽管在图1和图2中示出了我们推荐的侧面按钮的顺序,因为这只是对用户的教导顺序,使得容易学习。正面按键上的字母、符号甚至数字的位置可以不同。在图1、2、3和4中示出了一些变化。
特别是图4,和在大多数被设计用于可英语键入的电话相比,在前面的9个电话拨号正面按键上使用了稍微不同的字母表放置。我们相信这会比传统电话上的字母表设计(它和图1中所示的相似)稍微易于学习和使用。被设计用于英语键入的传统电话手机在“2”按键上开始字母表,将“pqrs”放在“7”按键上并且将“wxyz”放在“9”按键上,而在按键3、4、5、6和8上分别只放3个字母。比较老的手机没有用q和z字符。图4的字母设计在某些方面更加简单在图4中字母表在“1”按键上开始,按照数字按键的顺序继续,在“9”按键上结束-使得整个字母表按顺序驻留在9个正面按键上(在一个3×3的按键阵列中)。并且,每个按键有3个字符。相对于传统电话机,改变字母位置也许值得考虑。但是,即使今天,不同的电话机将q和z字符放在不同的位置。由于即便有也只是很少的用户在当前的电话手机上发展了快速的文本键入技巧,因此移动字母应该不是一个真正的问题。尽管它有时也会有点困扰,如果用户已经使用字母记忆了电话号码的话。例如“1-800-STOCKS5”,对于涉及用于Web冲浪或者使用Web应用程序的手机来说,很少需要考虑。个人手机设计者可以对他们特殊的手机和用户群选择适当的字母安排,而不会背离本发明的精神和范围。
注意图4中所示的手机设计可以被用于打电话、即时消息、电子邮件、Web浏览以及计算(例如在饭店中计算小费或者分割帐单时,使用手机作为计算器)。
利用“Shift”按钮,本发明还可以被用于增加类似Blackberry的装置(具有Qwerty键盘),这样用户可以使用一只手按键的同时用另一只手敲击字符按键。与作为两个独立事件不得不先按下“Shift”按钮然后再按字符按键相比,这使得键入大写字母更加快速。Shift按钮可以被放置在QWERTY装置的侧面、顶部或者底部。优选实施例具有两个shift按钮-一个按纽靠近QWERTY布局的左下方,一个按纽处于右下方-类似于大多数实际大小的键入键盘的安排。这使得用一只手按shift按钮的同时使用另一只手键入字符更加容易。
除了简化字母表文本的键入以外,本发明的一般形式可被用于允许用户产生不同的操作类型。例如,按下使用本发明的装置侧面的修改按钮之一的同时按下装置正面的“menu”按钮可以引出一个不同的菜单,它与只按下“menu”按钮而不按下修改按钮时出现的菜单不同。而在按下装置侧面的修改按钮之一的同时使用光标控制可以做一些有趣的事情,而不仅仅使简单的移动光标-诸如打电话到光标正处于上面的个人或者电话号码。关键是修改按钮可以被用于修改装置上的任何其它按钮或者控制的行为-仅仅是通过在按修改按钮的同时操作这些按钮或者控制。尽管本发明解决“快速键入”问题,但是本发明可应用于键入之外的其他操作。
某些语言(例如汉语)涉及到大量的图形字符-而不是相对较小的字母字符集合。本发明可被用于允许用户一笔一划有效地写入图形字符。这可以用多种方式实施。例如装置正面的键盘上的每个按键都有3个唯一的笔划写在它上面,这和英语电话的每个按键都有3个主要字符写在上面的方式类似。在每个按键上方是3个另外的唯一笔划,这种方式类似于我们前一个例子中某些按键上面具有附加的字符,它们可以使用Shift修改按钮被访问。为了键入按键上的第一个笔划,用户只需要按该按键。为了键入按键上的第二个笔划,用户需要在保持住装置侧面的“2nd Letter”修改按钮的同时敲击该按键。为了键入按键上的第三个笔划,用户在按下装置侧面的“3rd Letter”修改按钮的同时敲击该按键。为了键入该按键上的三个附加笔划中的任何一个笔划,将会使用“Shfit”修改按钮。对于该应用,所有的这些修改按钮可以被给予不同的名称。(例如装置开发人员会将“Shift”按钮称为“Alt”(备选(alternative)的缩写)、或者给予它一个非英文名称、或者选择不去标记它、或者选择使用符号代替单词来标识该按钮以及其它的选择。相似地,装置开发人员会选择将“2nd Letter”修改按钮标记为“2nd”或者其它名称。)随着用户键入笔划,软件可以写入笔划,以组成完整字符实际上,用户可以逐个笔划写入字符。当用户完成一个字符时,他或她可以按装置上的手机上的指定按钮(例如“next character(下一个字符)”按钮),以移动到下一个字符上。合理地,每个按键也可以具有多于或者少于3个唯一的笔划,或者在多个按键上具有相同的笔划。每个按键三个唯一的笔划(加上3个可以通过Shift修改按钮访问的其它笔划)只是一种方便的安排。装置开发人员还可以选择增加“4th Letter”(也许被称为“4th”),这使得用户可以键入多达4个笔划而不必压下Shift按钮,并且在按下shift按钮时还可以键入多至4个的其他笔划。
如所注意的,在一个实施例中,其中装置使用本发明以便能够有效地键入基于笔划的图形字符,在该装置上的软件将随着用户键入笔划而写入每个笔划(并且任选地允许用户使用按钮或者其它控制方式调整每个笔划的位置),一笔一划地组成一个完整的字符。当用户完成给定字符的比划的键入时,用户可以按一个按钮(例如标记为“nextcharacter”或者“character done”或者只是在上面具有一个唯一的符号)来指示该字符已被完成。然后,用户可以开始一笔一划地键入新的字符。以下是用于说明在侧面具有4个修改按钮(记为“Shift”“2nd”“3rd”和“4th”)、15个正面按键(在他们上面均具有8个笔划)以及一个“next character”按键的示例装置的这一过程的伪码<pre listing-type="program-listing"><![CDATA[//对应于每个修改按钮被按下或者被释放的代码#define kShiftDown=1;//按下shift修改按钮#define kShiftUp=2; //释放shift修改按钮#define k2ndDown=3; //按下2nd按钮#define k2ndUp=4;//释放2nd按钮#define k3rdDown=5; //按下3rd按钮#define k3rdUp=6;//释放3rd按钮#define k4thDown=7; //按下4th按钮#define k4thUp=8;//释放4th按钮//对应于“next character”按钮按下的代码#define kNextCharDown=10;//对应于用于键入笔划的正面按键被按下的代码#define klstFaceKey=101;#define k2ndFaceKey=102;...等等...#define k15thFaceKey=115;//假设具有诸如串口队列的一个队列-其中在用户操作一个修改按钮或者正面按键时,固件写入以上代码之一。IntegerQueue Q;//对于能够被键入的每个唯一笔划,也定义唯一常量,其中在15个正面按键之中的每个正面按键上具有多达8个笔划#define kStroke0101=101;#define kStroke0102=102;#define kStroke0103=103;...等等...#define kStroke1507=1507;#define kStroke1508=1508;//在各种情况下,装置应当将按键和按钮的按下解释为键入-例如,以使用户键入电子邮件或即时消息int code=0;boolean gShift=false;boolean g2ndStroke=false;boolean g3rdStroke=false;boolean g4thStroke=false;char strokeToType=null;while(in-typing-context){strokeToType=null;code=ReadFromQueue(Q);//从队列中提取下一个代码//根据相应修改按钮的最近按下或者释放来设定shift、2nd、3rd以及4th变量if(code==kShiftDown)gShift=true;else if(code==kShiftUp)gShift=false;else if(code==k2ndDown)g2ndStroke=true;else if(code==k2ndUp)g2ndStroke=false;else if(code==k3rdDown)g3rdStroke=true;else if(code==k3rdUp)g3rdStroke=false;else if(code==k4thDown)g4thStroke=true;else if(code==k4thUp)g4thStroke=false;//如果“next character”按钮被按下,则假定用户已完成当前字符的键入else if(code==kNextCharDown){ FinishTypingCurrentChar();}//处理键入的笔划//处理利用被同时按下的修改按钮的任意组合被按下的每个正面按钮 if(code==klstFaceKey){//用户按下第一正面按键 if(g4thStroke){ if(gShift)strokeToType=kStroke0108; //第一按键上的第八笔划 elses trokeToType=kStroke0107;//第一按键上的第七笔划}else if(g3rdStroke){if(gShift)strokeToType=kStroke0106;//第一按键上的第六笔划elses trokeToType=kStroke0105;//第一按键上的第五笔划}elseif(g2ndStroke){if(gShift)strokeToType=kStroke0104;//第一按键上的第四笔划else strokeToType=kStroke0103;//第一按键上的第三笔划}else{if(gShift)strokeToType=kStroke0102;//第一按键上的第二笔划else strokeToType=kStroke0101;//第一按键上的第一笔划}}elseif(code==k2ndFaceKey){//用户按下第二正面按键if(g4thStroke){ if(gShift)strokeToType=kStroke0208;//第二按键上的第八笔划 else strokeToType=kStroke0207;//第二按键上的第七笔划}else if(g3rdStroke){if(gShift)strokeToType=kStroke0206;//第二按键上的第六笔划else strokeToType=kStroke0205;//第二按键上的第五笔划}else if(g2ndStroke){if(gShift)strokeToType=kStroke0204;//第二按键上的第四笔划else strokeToType=kStroke0203;//第二按键上的第三笔划}else{if(gShift)strokeToType=kStroke0202;//第二按键上的第二笔划else strokeToType=kStroke0201;//第二按键上的第一笔划 }}...等等,处理每个正面按键,直到最后一个...else if(code==k15thFaceKey){//用户按下第十五正面按键if(g4thStroke){ if(gShift)strokeToType=kStroke1508;//第15按键上的第八笔划else strokeToType=kStroke1507;//第15按键上的第七笔划}else if(g3rdStroke){ if(gShift)strokeToType=kStroke1506;//第15按键上的第六笔划else strokeToType=kStroke1505;//第15按键上的第五笔划}else if (g2ndStroke){ if(gShift)strokeToType=kStroke1504;//第15按键上的第四笔划else strokeToType=kStroke1503;//第15按键上的第三笔划}else{ if(gShift)strokeToType=kStroke1502;//第15按键上的第二笔划else strokeToType=kStroke1501;//第15按键上的第一笔划}}//完成按键和按钮的解释以识别被按下的笔划//将笔划附加到被键入的当前字符上if(strokeToType!=null)TypeStrokeInCurrentChar(strokeToType);}//结束while循环//结束伪码实例]]></pre>如前一个伪码例子中所示,在按钮或者按键被键入时,可以使用一个查找表来更加有效地翻译被发送到代码队列的代码,而不是使用许多的if-then语句。如在前面的伪码例子中所示,此装置还可以包括“Num Lock”正面按键,允许用户可以键入在每个按键上的附加符号-诸如数字或者非字母符号。
本发明可以被用于开发装置,允许用户只是通过键入不同的按键和修改按钮的组合来键入字符、笔划、符号或整个字或者产生功能-所有这些都是在同一装置上。作为一个极端的例子(仅用于说明),我们可以想象一个装置,在上面键入给定的正面按键而不同时按下任何修改按钮也许会产生字母“a”,键入同一个按键而按下Shift修改按钮会产生大写字母“A”,键入同一个按键而按下“2nd Letter”修改按钮并且不按下Shift修改按钮会产生笑脸符号(或者其它图形对象),键入同一个按键而按下“2nd Letter”修改按钮和Shfit修改按钮会触发“提取新的电子邮件”功能(作为可以在此装置上使用的一个功能的例子),键入同一按键而按下“3rd Letter”修改按钮并且不按下Shift修改按钮会产生一个图形笔划(例如汉字字符的一部分),键入同一按键而按下“3rd Letter”修改按钮并且按下Shift修改按钮会产生完整的汉字字符,键入同一按键而按下“4th Letter”修改按钮(假定此装置具有一个“4th Letter”修改按钮)并且不按下Shift修改按钮会产生整个单词“Yes”,而且键入同一按键并且按下“4thLetter”和shift按钮会产生完整的单词“No”。在本例中,用户通过在键入单一按键的同时按下不同修改按钮的组合能够产生多达8个不同的东西。如果在这个示例装置上有15个正面按键,那么用户可以使用单个键入事件键入多达120(8×15)个不同字符、笔划、符号、单词或者功能中的任何一个(其中“键入事件”指用一只手键入单个正面按键,同时用另一只手按下修改按钮的某些组合。)装置可以有修改按钮的多余备份。例如,我们的示例装置之一将在此装置的每一侧上都有Shift、2nd-Letter和3rd-Letter按纽-使得用户可以更方便地使用两只手握住和操作电话机。(具有修改按钮的多余备份的装置还可以包括一个活动的盖,用户可以将它放在装置一侧或者另一侧的修改按钮上,只需在用户知道他或她将只会使用另一侧上的按钮时盖住一侧上的按钮。)修改按钮可以被放在任何合适的位置。例如,一种可能有用的配置是将它们放在装置正面的底部,在键盘的其余部分的下方。随后,用户可以使用一只手的拇指来操作修改按键而同时用另一只手按键盘按键。
但是我们的优选实施例将修改按钮放在了装置的一侧,在那里他们可以被握手机的那只手的食指、中指和无名指进行操作,而另一只手按装置的键盘上的按键。我的发明很细心地安排了按钮,这样人们在手持装置时,其食指、中指和无名指能够自然地搁置在装置一侧的3个修改按钮上,而拇指舒适地放在装置的另一侧上。
本发明的另一个实施例是将侧面修改按钮放在缺口或者“手指槽(finger well)”中,以适应握手机的那只手的手指。
在另一个实施例中,一个相对简单的滑动面板装置能够让用户在装置的一侧向上或者向下移动按钮,以便将这些按纽放在用户觉得最适于操作那些修改按钮的地方。
另一个实施例是在装置的一侧有一个修改按钮的可移动条,用户可以将它抽出并放入到装置的另一侧。这让用户可以选择在装置的哪一侧放置修改按钮(即,他们在操作这些修改按钮时想用哪只手来握住装置)。如前面已提到的,一个备选方式是简单地在电话的两侧都包括修改按钮。
本发明可以被应用于范围很广的手持装置用于交互式TV和允许Web的因特网装置的遥控器、被野外工作人员用于远程监控站的输入装置、移动输入装置(例如,被诸如FedEx(联邦快递)工人的人员使用),等等。特别有用的是,当在同一装置中结合使用显示器时,将在装置中看到正被键入的文本。
许多其它的特性可以被增加或者组合到上述的电话机中。例如,存在这样的软件,它尝试在用户结束键入单词之前自动完成单词。使用这种软件,用户也许键入“comp”而软件会写出整个单词“computer”。用户然后可以敲击enter(回车)按键来接受该单词,或者此用户能够继续键入。如果用户的下一个字符是“r”-“compr”-那么软件也许写出单词“compromise”,猜测这就是用户想要键入的单词。例如,微软的因特网浏览器(Internet Explorer)在用户键入URL时使用了自动单词完成。自动单词完成可以帮助一些人在某些情况下更加快速地键入,尽管它也许有点分散注意。自动单词完成可以与本申请文件中所描述的所有实施例结合使用。
我已经用包括优选操作方法的详细的优选实施例描述了本发明。然而,应当明白这些描述和操作可以用不同于那些描述的部件和步骤来实现。这些实施例只是作为例子示出而不意味着用来限制本发明的精神和范围,本发明将由后面的权利要求书来定义。
权利要求
1.一种手持电子装置,具有至少一个正面按键并且在所述装置的一侧上具有一个或多个修改按钮,其中所述装置的用户能够利用一只手握住所述装置,并通过在使用握住所述装置的那只手的手指同时按下所述一个或多个修改按钮之中的零个修改按纽、一个修改按纽或修改按纽的组合的同时使用没有握住所述装置的那只手的手指按下所述至少一个正面按键之一来键入字符或者调用功能。
2.权利要求1的手持电子装置,包括两个修改按钮并且具有与至少一个正面按键相关的多个字符,其中同时按下所述至少一个正面按键而不按下任何修改按钮导致产生与所述正面按键相关的第一字符。
3.权利要求2的手持电子装置,其中同时按下所述正面按键和一个修改按钮导致产生与所述正面按键相关的第二字符。
4.权利要求3的手持电子装置,其中同时按下所述正面按键和一个第二修改按钮导致产生与所述正面按键相关的第三字符。
5.权利要求4的手持电子装置,包括第三修改按钮,其中同时按下所述正面按键和所述第三修改按钮导致产生与所述正面按键相关的第四字符。
6.权利要求1的手持电子装置,在所述装置的一侧上具有一个“Num”按钮并且具有所述至少一个正面按键,所述至少一个正面按键还具有与之相关的诸如“0”到“9”的数字或者诸如“*”或“#”的非字母字符,其中同时按下所述至少一个正面按键和所述Num按钮产生所述数字或非字母字符。
7.权利要求1的手持电子装置,具有第一修改按钮,其中同时按下所述第一修改按钮和所述至少一个正面按键之一以及该装置可能具有的附加修改按钮之中的零个、一个或一个以上的附加修改按钮的任意特定组合能够导致产生一个字符或功能,此字符或功能与同时按下所述正面按键和所述零个、一个或一个以上的附加修改按钮的任意特定组合而不同时按下所述第一修改按钮时所产生的字符或功能不同。
8.权利要求7的手持电子装置,其中所述第一修改按钮被指定为Shift按钮。
9.权利要求1的手持电子装置,具有位于所述装置的正面上的“NumLock”按钮,其中(a)第一次按下Num Lock按钮导致随后按下任意一个所述至少一个正面按钮会产生所述数字或者非字母字符,以及(b)此后按下Num Lock按钮导致随后按下任意一个所述至少一个正面按钮会产生字母字符。
10.权利要求1的手持电子装置,具有一个作为侧面按键安置或者作为比所述至少一个正面按键大的正面按键安置的Space Bar按钮,其中按下所述Space Bar导致在键入的文本中产生一个空格。
11.权利要求1的手持电子装置,具有一个作为侧面按键安置或者作为比所述至少一个正面按键大的正面按键安置的Backspace按钮,其中按下所述Backspace按钮导致删除一个字符。
12.权利要求1的手持电子装置,其中这些修改按钮位于滑动面板上,以允许这些修改按钮在所述装置的侧面上的位置可以被调整。
13.权利要求1的手持电子装置,其中这些修改按钮被包含在所述装置的一侧上的修改按钮的可移动带中,它可以被移去和被插入到所述装置的另一侧中。
14.权利要求1的手持电子装置,具有3个修改按钮,其中这些修改按钮被放置得可以利用握住所述装置的那只手的食指、中指和无名指来操作。
15.权利要求1的手持电子装置,其中所述至少一个正面按键位于一个10键键盘上。
16.权利要求1的手持电子装置,其中所述修改按钮位于所述装置的两侧并且可被操作以使用户能够使用任一只手握住所述装置和操作所述修改按钮。
17.权利要求1的手持电子装置,具有4个修改按钮,其中这些修改按钮被放置得可以利用握住所述装置的那只手的食指、中指、无名指和小指来操作。
18.权利要求1的手持电子装置,其中至少一个修改按钮被放置在手指槽里。
19.一种手持电子装置,具有多个正面按键、一个或多个显示器以及安置在所述装置的一侧或者两侧上的一个或多个修改按钮,其中用户通过在不按下所述一个或多个修改按钮之中的任何一个按钮、按下所述一个或多个修改按钮之中的一个按钮或按钮组合的同时按下正面按键之一来键入字符或者调用功能。
20.权利要求19的手持电子装置,其中按下一个正面按键而不按下任何修改按钮产生给定字符或者功能,而在按下所述修改按钮之一或者一种按钮组合的同时按下同一正面按键能够产生不同的字符或者功能。
21.权利要求19的手持电子装置,还包括一个菜单按钮,其中在按下所述菜单按钮的同时按下所述修改按钮之一会引起产生一个菜单,此菜单与在所述菜单按钮被按下而不按下所述修改按钮时将会出现的菜单不同。
22.权利要求19的手持电子装置,还包括一个光标控制部件,用于控制在所述一个或多个显示器的至少一个显示器上的光标,其中在操作所述光标控制部件的同时按下一个或多个修改按钮的一种特定组合将引起一种功能,此功能与在所述光标控制部件被操作而不同时按下一个或多个修改按钮的所述组合时出现的功能不同。
23.权利要求22的手持电子装置,其中所述装置是一个蜂窝电话机,并且当所述光标正在所述一个或多个显示器上显示的人名上时,通过在按下一个或多个修改按钮的特定组合的同时操作所述光标控制部件所引起的功能是设置电话呼叫到所述光标正处在其名字上的那个人。
24.权利要求22的手持电子装置,其中所述装置是一个蜂窝电话机,并且当所述光标正在所述一个或多个显示器上所显示的电话号码上时,通过在按下一个或多个修改按钮的特定组合的同时操作所述光标控制部件所引起的功能是设置电话呼叫到所述光标正处在其上面的电话号码。
25.权利要求19的装置,其中在按下所述修改按钮的给定组合的同时按下所述正面按键的所述一个正面按键会产生一个字符或功能,此字符或功能和在所述正面按键被按下的同时按下修改按钮的不同组合或者不按下任何修改按钮时所产生的字符或功能不同。
26.权利要求19的手持电子装置,包括两个修改按钮并且具有与至少一个正面按键相关的多个字符,其中按下一个正面按键的同时而不按下任何修改按钮会产生与所述正面按键相关的第一字符。
27.权利要求26的手持电子装置,其中同时按下所述一个正面按键和一个修改按钮导致产生与所述正面按键相关的第二字符。
28.权利要求27的手持电子装置,其中同时按下所述一个正面按键和第二修改按钮导致产生与所述正面按键相关的第三字符。
29.权利要求28的手持电子装置,包括第三修改按钮,其中同时按下所述正面按键和所述第三修改按钮导致产生与所述正面按键相关的第四字符。
30.权利要求19的手持电子装置,具有“Num”侧面按键和所述至少一个正面按键,所述至少一个正面按键还具有与之相关的诸如“0”到“9”的数字或者诸如“*”或者“#”的非字母字符,其中同时按下所述至少一个正面按键和所述Num侧面按键产生所述数字或者字符。
31.权利要求19的手持电子装置,具有Shift侧面修改按钮,其中同时按下所述Shift按钮和所述至少一个正面按键之一以及所述装置可能具有的附加修改按钮之中的零个、一个或者一个以上的附加修改按钮的任意特定组合能够产生一个字符或功能,此字符或功能与同时按下所述正面按键和所述零个、一个或者一个以上的附加修改按钮的所述组合而不同时按下所述Shift按钮时得到的字符或功能不同。
32.权利要求19的手持电子装置,具有一个“Num Lock”按钮位于所述装置的正面,其中(a)第一次按下所述Num Lock正面按钮导致随后按下任何所述至少一个正面按钮产生所述数字或者非字母字符,以及(b)此后按下所述Num Lock正面按钮导致随后按下任何一个所述至少一个正面按钮产生字母字符。
33.权利要求19的手持电子装置,具有一个作为侧面按键安置或者作为比所述至少一个正面按键大的正面按键安置的Space Bar按钮,其中按下所述Space Bar导致在键入的文本中产生一个空格。
34.权利要求19的手持电子装置,具有一个作为侧面按键安置或者作为比所述至少一个正面按键大的正面按键安置的Backspace按钮,其中按下所述Backspace按钮导致删除一个字符。
35.权利要求19的手持电子装置,被用于使用所述一个或多个显示器之中的至少一个显示器来电子聚焦在万维网页面或者其它应用文档或者表格的可选择条目上。
36.权利要求35的手持电子装置,具有一个作为侧面按键安置或者作为正面按键安置的Tab-Forward按钮,其中按下所述Tab-Forward按钮导致快速地从页面、文档或者表格上的第一可选择条目移动聚焦到所述页面、文档或者表格上的下一个可选择条目。
37.权利要求36的手持电子装置,具有一个作为侧面按键或者作为正面按键安置的Tab-Backward按钮,其中按下所述Tab-Backward按钮导致快速地从所述页面、文档或者表格上的第一可选择条目移动聚焦到所述页面、文档或者表格上的前一个可选择条目。
38.权利要求35的手持电子装置,具有一个Select按钮,其中按下所述Select按钮导致选择当前聚焦中的条目。
39.权利要求19的手持电子装置,其中所述装置是一个无绳电话机。
40.权利要求19的手持电子装置,其中所述装置是用于交互式电视或者Web允许的因特网应用的遥控装置。
41.权利要求19的手持电子装置,其中所述装置是被现场工作者用来远程监控站的输入装置。
42.权利要求35的手持电子装置,具有安置在所述装置的前端上或者在一侧或者两侧上的指动轮,其中(1)用拇指或者其它手指在一个方向滚动所述指动轮导致在所述可选择条目之间跳跃向前,以及(2)使用拇指或者其它手指在另一个方向滚动所述指动轮导致在可选择条目之间跳跃向后。
43.权利要求42的手持电子装置,其中所述指动轮能够附加地被按下,以选择当前聚焦的条目。
44.权利要求19的手持电子装置,具有3个修改按钮,其中所述修改按钮被放置得可以利用持有所述装置的那只手的食指、中指和无名指来操作。
45.权利要求19的手持电子装置,具有4个修改按钮,其中所述修改按钮被放置得可以利用持有所述装置的那只手的食指、中指、无名指和小指来操作。
46.权利要求19的手持电子装置,其中至少一个修改按钮被放置在手指槽中。
47.一种具有标准Qwerty键盘的手持电子装置,所述Qwerty键盘具有字符按键并且具有shift按钮,其中用户使用一只手按下所述shift按钮并且同时使用另一只手按下字符按键。
48.权利要求47的手持电子装置,在Qwerty键盘上具有第一shift按钮并且在Qwerty键盘上具有第二shift按钮,其中在另一只手按下字符按键的同时,任何一只手都能够按下所述shift按钮之一。
49.权利要求48的手持电子装置,其中第一附加shift按钮在所述键盘的左下方,而第二附加shift按钮在所述键盘的右下方。
50.权利要求1或19的手持电子装置,其中Shift修改按钮可以被放置在所述装置的侧面、顶端或者底部。
51.一种手持电子装置,在所述装置的正面或者在所述装置的一侧或者两侧上具有多个正面按键、一个或多个显示器以及一个或多个修改按钮,其中用户通过在不按下任何一个所述修改按钮、按下所述修改按钮之中的一个修改按纽或者组合的同时按下所述正面按键之一来键入图形笔划或者调用功能。
52.权利要求51的手持电子装置,其中多个按键均具有与之相关的许多图形笔划。
53.权利要求52的手持电子装置,其中单独按下所述多个正面按键之一使第一预定的一个图形笔划被产生,在按下一个修改按钮的同时按下所述一个正面按键使第二预定的一个图形笔划被产生,在按下第二修改按钮的同时按下所述一个按键使第三预定的一个图形笔划被产生,并且如果所述装置包括第三修改按钮,在按下所述第三修改按钮的同时按下所述一个正面按键使第四预定的一个图形笔划被产生。
54.权利要求53的手持电子装置,还具有第一修改按钮,其中同时按下第一修改按钮和一个特定的正面按键以及零个、一个或一个以上的附加修改按钮的特定组合会产生一个图形笔划或者功能,此图形笔划或者功能与当所述正面按键和修改按钮的所述组合被同时按下而所述第一修改按钮没有被按下时所产生的图形笔划或者功能不同。
55.权利要求54的手持电子装置,其中第一修改按钮被指定为Shift按钮。
56.权利要求53的手持电子装置,其中包含在所述装置中的软件使所述图形笔划从所述图形笔划中组成一个字符或者一个图形符号,以便在所述显示器上显示。
57.权利要求56的手持电子装置,具有一个控制按钮,其中按下所述控制按钮使所述软件认为当前的字符或者图形符号是完整的并且允许用户开始键入随后的字符或者图形符号。
58.权利要求57的手持电子装置,其中所述控制按钮被指定为“next character”按钮。
59.一种计算机执行的过程,用于解释手持电子装置上的键击以及生成键入的字符,所述手持电子装置具有至少一个正面按键并且在所述装置的一侧或者两侧上具有至少一个修改按钮,其中所述装置的用户可以使用一只手来握住所述装置,并且通过在使用握住所述装置的那只手的手指按下所述至少一个修改按钮之一或者组合的同时使用没有握住所述装置的另一只手的手指按下所述至少一个正面按键之一来键入字符或者调用功能,所述过程包括以下步骤对于被按下或者被释放的每个按键与按钮,发送一个唯一代码到一个队列,当按键和按钮被按下或者被释放时,搜索在所述队列中出现的新代码,将所述代码解释为包括键入的功能,但不限于所述键入功能,以及连续读入这样的代码并将这样的代码解释为这样的功能。
60.权利要求59的计算机执行的过程,还包括生成表示被键入的每个字符的字符代码的步骤。
61.权利要求60的计算机执行的过程,其中将代码解释为键入的步骤触发将生成的表示键入字符的字符代码发送到文本缓冲器。
62.权利要求59的计算机执行的过程,其中表查找过程用于解释所述代码。
63.权利要求59的计算机执行的过程,包括以下步骤对于长于一个最小时间量的一个时间,将一个按键和零个、一个或者一个以上的按钮的给定组合的按下和保持解释为提供附加的有用功能的指示。
64.权利要求63的计算机执行的过程,其中所述有用功能之一是自动键入。
65.一种计算机执行的过程,用于解释在手持电子装置上的键击,所述手持电子装置具有多个正面按键、一个或多个显示器以及位于所述装置的一侧或者两侧上的一个或多个修改按钮,其中用户通过在不按下所述一个或多个修改按钮、按下所述一个或多个修改按钮之一或者组合的同时按下所述正面按键之一来键入字符或者调用功能,所述过程包括以下步骤对于被按下或被释放的每个按键和按钮,发送一个唯一代码到一个队列,当按键和按钮被按下或者被释放时,搜索在所述队列中出现的新代码,将所述代码解释为包括键入的功能,但不限于键入的功能,以及连续读出这样的代码并将这样的代码解释为这样的功能。
66.权利要求65的计算机执行的过程,包括生成表示被键入的每个字符的字符代码的另一步骤。
67.权利要求66的计算机执行的过程,包括在所述一个或多个显示器上显示键入的所述字符代码的另一步骤。
68.权利要求67的计算机执行的过程,其中将代码解释为键入的步骤触发了将生成的表示每个字符的字符代码发送到文本缓冲器。
69.权利要求65的计算机执行的过程,其中表查找过程用于解释所述代码。
70.权利要求65的计算机执行的过程,包括以下步骤对于长于一个最小时间量的一个时间,将一个按键和零个、一个或一个以上的按钮的给定组合的按下和保持解释为提供附加有用功能的指示。
71.权利要求70的计算机执行的过程,其中所述有用功能是自动键入。
72.权利要求65的计算机执行的过程,还包括以下步骤(a)将按下正面按键而不按下任何修改按钮解释为产生给定字符或者功能,以及(b)将在按下所述修改按钮之一或者组合的同时按下同一正面按键解释为产生不同的字符或者功能。
73.权利要求65的计算机执行的过程,其中所述装置包括菜单按钮,并且其中在按下所述菜单按钮的同时按下所述修改按钮之一产生一个或多个代码,将这一个或多个代码解释为用于引起产生与所述菜单按钮被按下而不按下所述修改按钮时出现的菜单不同的菜单的指令。
74.权利要求65的计算机执行的过程,其中所述装置包括一个用于控制在所述一个或多个显示器之中的至少一个显示器上的光标的光标控制部件,其中在操作所述光标控制部件的同时按下一个或多个修改按钮的特定组合产生一个或多个代码,将这一个或多个代码解释为一个指令,用于引起产生与在操作所述光标控制部件而不同时按下修改按钮的所述组合时所生成的功能不同的功能。
75.权利要求74的计算机执行的过程,其中所述装置是蜂窝电话机,并且当所述光标正在所述一个或多个显示器上显示的人名上时,通过在按下一个或多个修改按钮的特定组合的同时操作所述光标控制所引起的功能是设置电话呼叫到所述光标正在其名字上的那个人。
76.权利要求74的计算机执行的过程,其中所述装置是蜂窝电话机,并且当所述光标正在所述一个或多个显示器上所显示的电话号码上时,通过在按下一个或多个修改按钮的特定组合的同时操作所述光标控制所引起的功能是设置电话呼叫到所述光标正处在其上面的电话号码。
77.权利要求65的计算机执行的过程,其中在按下所述修改按钮的给定组合的同时按下所述正面按键之一产生一个或多个代码,将这一个或多个代码解释为一个指令,用于产生与在按下修改按钮的不同组合或者在没有按下任何修改按钮的同时按下所述正面按键时所产生的字符或者功能不同的字符或功能。
78.权利要求65的计算机执行的过程,其中所述装置包括两个修改按钮并且具有和至少一个正面按键相关的多个字符,其中同时按下一个正面按键而不按下任何一个修改按钮产生一个或多个代码,这一个或多个代码被解释为用于产生与所述正面按键相关的第一字符的指令。
79.权利要求78的计算机执行的过程,其中同时按下所述一个正面按键和一个修改按钮产生一个或多个代码,这一个或多个代码被解释为用于产生与所述正面按键相关的第二字符的指令,以及其中同时按下所述一个正面按键和一个第二修改按钮产生一个或多个代码,这一个或多个代码被解释为用于产生与所述正面按键相关的第三字符的指令。
80.权利要求79的计算机执行的过程,其中所述装置包括一个第三修改按钮,并且其中同时按下所述至少一个正面按键和所述第三修改按钮产生一个或多个代码,这一个或多个代码被解释为用于产生与所述正面按键相关的第四字符的指令。
81.权利要求65的计算机执行的过程,其中所述装置包括一个“Num”侧面按键,并且所述至少一个正面按键还具有与之相关的诸如“0”到“9”的数字和诸如“*”或“#”的非字母字符,其中同时按下所述至少一个正面按键和所述Num侧面按键产生一个或多个代码,这一个或多个代码被解释为用于产生所述数字或者字符的指令。
82.权利要求65的计算机执行的过程,其中所述装置包括Shift侧面修改按钮,并且其中同时按下所述Shift按钮和所述至少一个正面按键之一以及所述装置可能具有的附加修改按钮之中的零个、一个或一个以上附加修改按钮的任何特定组合会产生一个或多个代码,这一个或多个代码被解释为一个指令,用于产生与同时按下所述正面按键和所述零个、一个或多个附加修改按钮的所述组合而不同时按下所述Shift按钮时所产生的字符或功能不同的字符或功能。
83.权利要求65的计算机执行的过程,其中所述装置具有一个位于所述装置的正面上的“Num Lock”按钮,并且其中(c)第一次按下所述Num Lock正面按钮导致随后按下任何一个所述至少一个正面按键产生一个或多个代码,这一个或多个代码被解释为用于产生所述数字或者非字母字符的指令,以及(d)此后按下所述Num Lock正面按钮导致随后按下任何一个所述至少一个正面按键产生一个或多个代码,这一个或多个代码被解释为用于产生字母字符的指令。
84.权利要求65的计算机执行的过程,其中所述装置具有一个作为侧面按键安置或者作为比所述至少一个正面按键大的正面按键安置的Space Bar按钮,并且其中按下所述Space Bar产生一个或多个代码,这一个或多个代码被解释为用于在键入的文本中产生空格的指令。
85.权利要求65的计算机执行的过程,其中所述装置具有一个作为侧面按键安置或者作为比所述至少一个正面按键大的正面按键安置的Backspace按钮,其中按下所述Backspace按钮产生一个或多个代码,这一个或多个代码被解释为用于删除一个字符的指令。
86.权利要求65的计算机执行的过程,其中所述装置被用于使用至少一个所述一个或多个显示器来电子聚焦在万维网页面或者其它应用文档或者表格的可选择条目上,并且所述装置具有作为侧面按键安置或者作为正面按键安置的Tab-Forward按钮,其中按下所述Tab-Forward按钮产生一个或多个代码,这一个或多个代码被解释为用于快速地从所述页面、文档或者表格上的第一可选择条目移动聚焦到所述页面、文档或者表格上的下一个可选择条目的指令。
87.权利要求86的计算机执行的过程,其中所述装置具有一个作为侧面按键或者作为正面按键安置的Tab-Backward按钮,其中按下所述Tab-Backward按钮产生一个或多个代码,这一个或多个代码被解释为用于快速地从所述页面、文档或者表格上的第一可选择条目移动聚焦到所述页面、文档或者表格上的前一个可选择条目的指令。
88.权利要求86的计算机执行的过程,其中所述装置具有一个作为侧面按键或者作为正面按键安置的Select按钮,并且其中按下所述Se1ect按钮产生一个或多个代码,这一个或多个代码被解释为用于选择当前聚焦的条目的指令。
89.权利要求65的计算机执行的过程,其中所述装置被用于使用所述一个或多个显示器中的至少一个显示器来电子聚焦在万维网页面或者其它应用文档或者表格的可选择条目上,并且具有一个位于所述装置的前端或者一侧或者两侧上的指动轮,并且其中(1)使用拇指或者其它手指朝一个方向滚动所述指动轮产生被解释为用于在所述可选择条目之间跳跃向前的指令的代码,以及(2)使用拇指或者其它手指朝另一个方向滚动所述指动轮产生被解释为用于在所述可选择条目之间跳跃向后的指令的代码。
90.权利要求89的计算机执行的过程,其中按下所述指动轮产生一个或多个代码,这一个或多个代码被解释为选择当前聚焦的条目的指令。
91.一种计算机执行的过程,用于解释手持电子装置上的键击,所述装置具有多个正面按键、一个或多个显示器以及位于所述装置的正面上或者位于所述装置的一侧或者两侧上的一个或多个修改按钮,其中(a)多个按键均具有与之相关的许多图形笔划,以及(b)单独按下所述正面按键之一产生第一代码,所述第一代码被解释为产生预定一个图形笔划的指令;在按下一个修改按钮的同时按下所述一个按键产生第二代码,所述第二代码被解释为产生第二预定的一个图形笔划的指令;在按下第二修改按钮的同时按下所述一个按键产生第三代码,所述第三代码被解释为产生第三预定的一个图形笔划的指令;并且,如果所述装置包括第三修改按钮,在按下所述第三修改按钮的同时按下所述一个正面按键使第四预定的一个图形笔划被产生。
92.权利要求91的计算机执行的过程,其中所述装置具有Shift按钮,其中同时按下所述Shift按钮和一个特定的正面按键以及零个、一个或一个以上的修改按钮的特定组合能够产生一个或多个代码,这一个或多个代码被解释为一个指令,用于产生与同时按下所述正面按键和所述修改按钮的组合而所述Shift按钮没有被按下时所产生的图形笔划或者功能不同的图形笔划或者功能。
93.权利要求92的计算机执行的过程,包括生成代码的进一步步骤,所述代码被解释为使图形笔划从所述图形笔划中组成字符或者图形符号以便在所述一个或多个显示器上显示的指令。
94.一种存储媒体,在其中嵌入了计算机代码,包含用于解释手持电子装置上的键击以及产生键入字符的计算机执行的过程,所述装置具有至少一个正面按键并且在所述装置的一侧或者两侧上具有至少一个修改按钮,其中所述装置的用户可以用一只手握住所述装置并且通过在使用握住所述装置的那只手的手指按下所述至少一个修改按钮之中的零个、一个或者组合修改按钮的同时使用没有握住所述装置的那只手的手指按下所述至少一个正面按键之一来键入字符或者调用功能,当所述存储媒体被用在所述装置中时,所述过程包括以下步骤对于被按下或者被释放的每个按键或者按钮,发送一个唯一代码到一个队列中,当按键和按钮被按下或者被释放时,搜索在所述队列中出现的新代码,将所述代码解释为包括键入的功能,但不限于键入的功能,以及连续读出这样的代码并将这样的代码解释为这样的功能。
95.权利要求94的存储媒体,其中所述计算机执行的过程还包括生成表示被键入的每个字符的字符代码的步骤。
96.权利要求94的存储媒体,其中将代码解释为键入的步骤触发了将生成的表示每个字符的字符代码发送到文本缓冲器。
97.权利要求94的存储媒体,其中表查找过程被用于解释所述代码。
98.权利要求94的存储媒体,其中所述计算机执行的过程包括以下步骤对于长于一个最小时间量的一个时间,将至少一个按键和零个、一个或者一个以上的按钮的给定组合被按下和保持解释为提供附加有用功能的指示。
99.权利要求98的存储媒体,其中所述有用功能之一是自动键入。
100.一种存储媒体,在其中嵌入了计算机代码,包含用于解释手持电子装置上的键击的计算机执行的过程,所述装置具有多个正面按键、一个或多个显示器以及位于所述装置一侧或者两侧的一个或多个修改按钮,其中用户通过在按下所述一个或多个修改按钮之中的零个、一个或者组合的修改按纽的同时按下所述正面按键之一来键入字符或者调用功能,当所述存储媒体被用在所述装置中时,所述过程包括以下步骤对于被按下或者被释放的每个按键或者按钮,发送一个唯一代码到一个队列,当按键和按钮被按下或者被释放时,搜索在所述队列中出现的新代码,将所述代码解释为包括字符、符号、笔划或者单词的键入的功能,但不限于字符、符号、笔划或者单词的键入的功能,在所述一个或多个显示器上显示所述被键入的字符、符号、笔划或者单词,以及重复所述步骤发送代码到一个队列、从所述队列中读出代码、解释所述代码、以及当所述代码被解释为键入时在所述一个或多个显示器上显示所述被键入的条目。
101.权利要求100的存储媒体,其中所述计算机执行的过程还包括生成表示每个键入字符的字符代码的步骤。
102.权利要求95的存储媒体,其中将代码解释为键入的步骤触发了将生成的表示每个字符的字符代码发送到文本缓冲器。
103.权利要求100的存储媒体,其中所述计算机执行的过程使用表查找过程来解释所述代码。
104.权利要求100的存储媒体,其中所述计算机执行的过程包括以下步骤对于大于一个最小时间量的一个时间,将一个按键和零个、一个或者一个以上的按钮的给定组合的按下和保持解释为提供附加有用功能的指示。
105.权利要求104的存储媒体,其中所述有用功能是自动键入。
106.权利要求100的存储媒体,其中所述计算机执行的过程还包括以下步骤(a)将按下正面按键而没有按下任何修改按钮解释为产生给定字符或者功能,以及(b)将在按下所述修改按钮之一或者组合的同时按下同一正面按键解释为产生不同的字符或者功能。
107.权利要求100的存储媒体,其中所述装置包括一个菜单按钮,并且所述计算机执行的过程包括将在按下所述菜单按钮的同时按下所述修改按钮之一解释为引起一个菜单被产生,所述菜单不同于在所述菜单按钮被按下而没有按下所述修改按钮时所出现的菜单。
108.权利要求100的存储媒体,其中所述装置包括一个用于控制在所述一个或多个显示器的至少一个显示器上的光标的光标控制部件,并且其中在操作所述光标控制部件的同时按下一个或多个修改按钮的一个特定组合产生一个或多个代码,这一个或多个代码被解释为一个指令,用于引起不同于在所述光标被操作而不同时按下所述修改按钮的组合时所产生的功能的一个功能。
109.权利要求108的存储媒体,其中所述装置是一个蜂窝电话机,并且当所述光标正在所述一个或多个显示器上所显示的人名上时,通过在按下一个或多个修改按钮的特定组合的同时操作所述光标控制所引起的功能是设置电话呼叫到所述光标正在其名字上的那个人。
110.权利要求108的存储媒体,其中所述装置是蜂窝电话机,并且当所述光标正在所述一个或多个显示器上所显示的电话号码上时,通过在按下一个或多个修改按钮的特定组合的同时操作所述光标控制所引起的功能是设置电话呼叫到所述光标正处在其上面的电话号码。
111.权利要求100的存储媒体,其中在按下所述修改按钮的给定组合的同时按下所述正面按键之一引起产生代码的过程,所述代码被解释为一个指令,用于产生与在按下修改按钮的不同组合的同时或者在不按下任何修改按钮的同时按下所述正面按键时所产生的字符或功能不同的字符或功能。
112.权利要求100的存储媒体,其中所述装置包括两个修改按钮并且具有与所述至少一个正面按键相关的多个字符,其中为了响应用户同时按下所述至少一个正面按键之一而不按下任何修改按钮,所述计算机执行的过程产生一个或多个代码,这一个或多个代码被解释为用于产生与所述正面按键相关的第一字符的指令。
113.权利要求112的存储媒体,其中为了响应用户同时按下所述至少一个正面按键和一个修改按钮,所述计算机执行的过程产生一个或多个代码,这一个或多个代码被解释为用于产生与所述正面按键相关的第二字符;以及其中为了响应用户同时按下所述至少一个正面按键和第二修改按钮,所述计算机执行的过程产生一个或多个代码,这一个或多个代码被解释为用于产生与所述正面按键相关的第三字符。
114.权利要求113存储媒体,其中为了响应用户同时按下所述至少一个正面按键和一个第三按钮,所述计算机执行的过程产生一个或多个代码,这一个或多个代码被解释为用于产生与所述正面按键相关的第四字符的指令。
115.权利要求100的存储媒体,其中所述装置包括一个“Num”侧面按键和所述至少一个正面按键,并且所述至少一个正面按键还具有与之相关的诸如“0”到“9”的数字或者诸如“*”或“#”的非字母字符,其中为了响应用户同时按下所述至少一个正面按键和所述Num侧面按键,所述计算机执行的过程产生一个或多个代码,这一个或多个代码被解释为用于产生所述数字或者字符的指令。
116.权利要求100的存储媒体,其中所述装置包括Shift侧面修改按钮,并且其中为了响应用户同时按下所述Shift按钮和所述至少一个正面按键之一以及所述装置可能具有的附加修改按钮之中的零个、一个或一个以上的附加修改按钮的任意特定组合,所述计算机执行的过程产生一个或多个代码,这一个或多个代码被解释为用于生成一个字符或功能的指令,所述字符或功能与用户同时按下所述正面按键和所述零个、一个或一个以上的附加修改按钮的所述组合而不同时按下所述Shift按钮时所产生的字符或者功能不同。
117.权利要求100的存储媒体,其中所述装置具有位于所述装置的正面上的“Num Lock”按钮,并且其中(a)第一次按下所述Num Lock正面按钮导致随后按下任何一个所述至少一个正面按键会使所述计算机执行的过程生成一个或多个代码,这一个或多个代码被解释为用于产生所述数字或者非字母字符的指令,以及(b)此后按下所述Num Lock正面按钮导致随后按下任何一个所述至少一个正面按键会使所述计算机执行的过程生成一个或多个代码,这一个或多个代码被解释为用于产生字母字符的指令。
118.权利要求100的存储媒体,其中所述装置具有一个作为侧面按键安置或者作为比所述至少一个正面按键大的正面按键安置的Space Bar按钮,其中为了响应用户按下所述Space Bar按钮,所述计算机执行的过程产生一个或多个代码,这一个或多个代码被解释为用于在键入的文本中产生空格的指令。
119.权利要求100的存储媒体,其中所述装置具有一个作为侧面按键安置或者作为比所述至少一个正面按键大的正面按键安置的Backspace按钮,其中为了响应用户按下所述Backspace按钮,所述计算机执行的过程产生一个或多个代码,这一个或多个代码被解释为用于删除字符的指令。
120.权利要求100的存储媒体,所述装置被用于使用所述一个或多个显示器之中的至少一个显示器来电子聚焦在万维网页面或者其它应用文档或者表格的可选择条目上,并且具有一个作为侧面按键安置或者作为正面按键安置的Tab-Forward按钮,其中为了响应用户按下所述Tab-Forward按钮,所述计算机执行的过程产生一个或多个代码,这一个或多个代码被解释为用于快速地从所述页面、文档或者表格上的第一可选择条目移动聚焦到所述页面、文档或者表格上的下一个可选择条目。
121.权利要求120的存储媒体,其中所述装置具有一个作为侧面按键或者作为正面按键安置的Tab-Backward按钮,并且其中为了响应用户按下所述Tab-Backward按钮,所述计算机执行的过程产生一个或多个代码,这一个或多个代码被解释为用于快速地从所述页面、文档或者表格上的第一可选择条目移动聚焦到所述页面、文档或者表格上的前一个可选择条目。
122.权利要求120的存储媒体,其中所述装置具有一个作为侧面按键或者作为正面按键安置的Select按钮,并且其中为了响应用户按下所述Select按钮,所述计算机执行的过程产生一个或多个代码,这一个或多个代码被解释为用于选择当前聚焦的条目的指令。
123.权利要求120的存储媒体,其中所述装置具有一个位于所述装置的一侧上的指动轮,并且其中(1)为了响应用户使用拇指或者其它手指朝一个方向滚动所述指动轮,所述计算机执行的过程产生代码,这些代码被解释为用于在所述可选择条目之间跳跃向前的指令,以及(2)为了响应用户使用拇指或者其它手指朝另一个方向滚动所述指动轮,所述计算机执行的过程产生代码,这些代码被解释为用于在所述可选择条目之间跳跃向后的指令。
124.权利要求123的存储媒体,其中为了响应用户按下所述指动轮,所述计算机执行的过程产生一个或多个代码,这一个或多个代码被解释为选择当前聚焦的条目的指令。
125.一种存储媒体,在其中嵌入了一个计算机执行的过程,用于解释在手持装置上的键击,所述手持装置具有多个正面按键、一个或多个显示器、以及位于所述装置的正面上或者位于所述装置的一侧或者两侧上的一个或多个修改按钮,其中用户通过在按下所述修改按钮之中的零个、一个或者组合的同时按下所述正面按键之一来键入或者调用功能;其中多个按键均具有与之相关的许多图形笔划,以及(a)为了响应用户只按下所述多个正面按键之一,所述计算机执行的过程产生第一代码,所述第一代码被解释为产生预定的一个图形笔划的指令,(b)为了响应用户在按下一个修改按键的同时按下所述一个按键,所述计算机执行的过程产生第二代码,所述第二代码被解释为产生第二预定的一个图形比划的指令,以及(c)为了响应用户在按下第二修改按钮的同时按下所述一个按键,所述计算机执行的过程产生第三代码,所述第三代码被解释为产生第三预定的一个图形笔划的指令。
126.权利要求125的存储媒体,其中所述装置具有一个Shift按钮,并且其中为了响应用户同时按下所述Shift按钮和一个特定的正面按键以及所述修改按钮的特定组合,所述计算机执行的过程产生一个或多个代码,这一个或多个代码被解释为产生一个图形笔划或功能的指令,所述图形笔划或功能与在同时按下所述特定的正面按键和所述修改按钮的组合而不按下所述Shift按钮时所产生的笔划或功能不同。
127.权利要求125的存储媒体,其中所述计算机执行的过程产生一个或多个代码,这一个或多个代码被解释为使所述图形笔划从所述图形笔划中组成字符或者图形符号以便在所述显示器上显示的指令。
128.权利要求1或权利要求19或权利要求51的手持电子装置,其中对于正面按键和侧面修改按钮的任何给定组合同时被按下或被操作,键入的字符或者键入的笔划或者被调用的功能根据软件环境而能够改变。
129.权利要求59或权利要求65或权利要求91的计算机执行的过程,其中对于键击和按钮按下的解释根据软件环境而能够改变。
130.权利要求94或权利要求100或权利要求125的存储媒体,其中对于键击和按钮按下的解释根据软件环境而能够改变。
131.权利要求19的手持电子装置,其中所述装置是一个蜂窝电话机,还包括(1)主要利用一只手操作的每个字母多次按键按下的键入模式,以及(2)一个界面,允许用户在所述键入模式和通过在按下所述一个或多个修改按钮之中的零个、一个或者组合的同时按下所述正面按键之一来操作的键入模式之间切换。
132.一种手持电子装置,包括至少一个正面按键并且包括在所述装置的一侧或者两侧上的一个或多个修改按钮,其中所述装置的用户可以用一只手握住所述装置并且通过在利用握住所述装置的那只手的手指按下所述一个或多个修改按钮之中的零个、一个或者组合的同时利用没有握住所述装置的那只手的手指按下所述至少一个正面按键之一来键入符号或者调用功能。
133.权利要求132的手持电子装置,其中能够被键入的符号包括字符、笔划、整个单词以及图像。
全文摘要
本发明是一个手持装置(图1)。它包括在它正面上的多个按键(112,113)(“正面按键”)以及在它侧面上的多个按钮(101,102,103)(“侧面按钮”)。用户通过在利用握住所述装置的那只手的手指保持侧面按钮的组合的同时利用没有握住所述装置的那只手的手指按下一个正面按键来键入字符(或者调用功能)。按下正面按键而不保持任何一个侧面按键产生给定字符(或者功能)。在保持侧面按键的给定组合的同时按下同一正面按键可以得出不同的字符(或者功能)。本发明允许在蜂窝电话手机和其它手持装置上比较快速地键入文本。
文档编号G09G5/00GK1496550SQ02806400
公开日2004年5月12日 申请日期2002年3月12日 优先权日2001年3月13日
发明者马修G·帕拉科夫, 马修G 帕拉科夫 申请人:运行移动系统公司