-
HINTERGRUND
-
In modernen Berührungsbildschirmgeräten gibt es Möglichkeiten, dass ein Nutzer ein stiftartiges Objekt verwenden kann, um den Schriftsatz hervorzuheben. Es gibt spezielle Schriftsatz editierende Prinzipien für Eingabeverfahren wie feste Tastaturen, Software-Tastaturen, Maus- und Fingereingaben. Die gegenwärtigen Verfahren, die stiftartige Objekte verwenden, um einen Schriftsatz zu editieren, übernehmen jedoch irgendwelche der Verfahren für Mäuse, wobei derartige Verfahren erfordern, dass sich das Gerät in einem separaten Modus befindet, um das Editieren auszuführen.
-
Eine Möglichkeit besteht in einem Bewegen eines stiftartigen Objektes und einem Ausrichten mit einem Cursor-Winkelzeichen. Für ein berührungsoptimiertes Gerät erfordern derartige Ansätze von dem Nutzer jedoch anzuhalten, um einen hervorhebenden Modus einzugeben und dann den Stift zu bewegen, um die Region anzupassen. Ein anderer Ansatz verwendet eine "Lasso"-Geste, die durch den Nutzer ausgeführt wird, um den gewünschten Text hervorzuheben. Ein Defizit dieses Ansatzes ist es jedoch, dass der ausgewählte Text ein blockorientiertes Objekt ist und nicht auf einem Einzelzeichen- oder Nicht-Block-Niveau liegt. Darüber hinaus haben gegenwärtige berührungsfähige Geräte Schwierigkeiten zwischen Berührungsgesten und Handschrift zu unterscheiden.
-
ZUSAMMENFASSUNG
-
Es wird ein Ansatz bereitgestellt zum Empfangen von Nutzereingaben auf einem Berührungsbildschirm eines Gerätes, wobei jede Nutzereingabe einen Satz von Eingabeeigenschaften umfasst. Basierend auf den Eingabeeigenschaften wird ein beabsichtigter Eingabetyp aus einer Anzahl von Eingabetypen mit Eingabetypen, die einen Handschrifttyp und einen Gestentyp umfassen, identifiziert. Basierend auf den empfangenen Nutzereingaben werden für den identifizierten beabsichtigten Eingabetyp Systemeingaben erzeugt. Die Systemeingaben werden in das Gerät eingegeben.
-
Das Vorhergehende ist eine Zusammenfassung und enthält somit notwendigerweise Vereinfachungen, Verallgemeinerungen und Auslassungen von Details; konsequenterweise ist es für den Fachmann der Technik ersichtlich, dass die Zusammenfassung nur darstellend ist und nicht beabsichtigt in irgendeiner Weise begrenzend zu sein. Andere Aspekte, erfinderische Merkmale und Vorteile werden in der nicht begrenzenden detaillierten Beschreibung, die unten folgt, deutlich.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
Diese Offenbarung kann besser durch Bezugnahme auf die begleitenden Zeichnungen verstanden werden, wobei:
-
1 ein Blockdiagramm eines Datenverarbeitungssystems ist, in dem die Verfahren, die hierin beschrieben werden, ausgeführt werden können;
-
2 eine Vergrößerung der Umgebung des Informationshandhabungssystems, das in 1 gezeigt ist, darstellt, um zu illustrieren, dass die Verfahren, die hierin beschrieben werden, auf einer breiten Vielfalt von Informationshandhabungssystemen ausgeführt werden können, welche in einer Netzwerkumgebung arbeiten;
-
3A ein Draufsichtdiagramm ist, das fingerbasierte und stiftbasierte Eingaben für handschriftliche und getippte Eingaben sowohl in die Applikationsschicht als auch in die transparente Schicht zeigt;
-
3B ein Seitenansichtsdiagramm ist, das fingerbasierte und stiftbasierte Eingaben für handschriftliche und getippte Eingaben sowohl in die Applikationsschicht als auch in die transparente Schicht zeigt;
-
4 ein Flussdiagramm ist, das Schritte zeigt, die durch einen Installationsprozess getätigt werden;
-
5 ein Flussdiagramm ist, das Schritte zeigt, die durch einen Prozess getätigt werden, der einen beabsichtigten Eingabetyp zum Empfangen von Berührungsbildschirm-Eingaben identifiziert;
-
6 ein Flussdiagramm ist, das Schritte zeigt, die durch einen Prozess getätigt werden, der eine beabsichtigte Zielschicht zum Empfangen von Berührungsbildschirm-Eingaben identifiziert;
-
7 ein Flussdiagramm ist, das Schritte zeigt, die während eines kontextbasierenden Tests der Berührungsbildschirm-Eingaben in dem identifizierten Eingabetyp getätigt werden und die auf die identifizierte Zielschicht gerichtet sind; und
-
8 ein Flussdiagramm ist, das Schritte zeigt, die getätigt werden, um Nutzerreaktionen auf die Berührungsbildschirm-Eingaben zu handhaben, die als ein identifizierter Eingabetyp für die identifizierte Zielschicht verwendet werden.
-
Detaillierte Beschreibung
-
Die Terminologie, die hierin verwendet wird, dient nur dem Zweck des Beschreibens besonderer Ausführungsformen und beabsichtigt nicht, die Erfindung zu begrenzen. Wie hierin verwendet, beabsichtigen die Singularformen "ein", "eine" und "der, die, das" auch die Vielzahl der Pluralformen einzuschließen, außer es wird im Kontext klar anders angezeigt. Es ist ferner verständlich, dass die Ausdrücke "umfassen" und/oder "umfassend," wenn sie in dieser Spezifikation verwendet werden, die Anwesenheit von dargestellten Merkmalen, vollständigen Ganzen, Schritten, Operationen, Elementen und/oder Komponenten spezifizieren, aber nicht die Anwesenheit oder den Zusatz von einem oder mehreren anderen Merkmalen, vollständigen Ganzen, Schritten, Operationen, Elementen, Komponenten und/oder Gruppen davon ausschließen.
-
Die entsprechenden Strukturen, Materialien, Aktionen und Äquivalente von allen Mitteln oder Schritten plus Funktionselementen in den Ansprüchen unten beabsichtigen jede Struktur, jedes Material oder jede Aktion zum Durchführen der Funktion in Kombination mit anderen beanspruchten Elementen, wie speziell beansprucht, einzuschließen. Die detaillierte Beschreibung wurde zum Zweck der Darstellung präsentiert, sie ist aber nicht beabsichtigt erschöpfend oder begrenzend für die Erfindung in der offenbarten Form zu sein. Viele Modifikationen und Variationen sind für den Fachmann der Technik, ohne von dem Rahmen und dem Geist der Erfindung abzuweichen, naheliegend. Die Ausführungsform wurde ausgewählt und beschrieben, um die Prinzipien der Erfindung und die praktische Anwendung am besten zu erklären und um andere mit normalem technischen Verständnis in die Lage zu versetzen, die Erfindung für verschiedene Ausführungsformen mit verschiedenen Modifikationen zu verstehen, wie sie für die betrachtete besondere Verwendung geeignet ist.
-
Wie für den Fachmann der Technik ersichtlich, können Aspekte als System, Verfahren oder Computerprogrammprodukt ausgeführt sein. Demgemäß können Aspekte die Form einer vollständigen Hardwareausführung, einer vollständigen Softwareausführung (einschließlich Firmware, residenter Software, Mikrocode usw.) oder einer Ausführungsform annehmen, die Software- und Hardwareaspekte kombiniert, auf die zusammen hierin generell als eine “Schaltung”, ein “Modul” oder ein “System” Bezug genommen wird. Weiterhin können Aspekte der vorliegenden Offenbarung die Form von Computerprogrammprodukten einnehmen, die in einem oder mehreren computerlesbaren Medien enthalten sind, welche darin verkörperte computerlesbare Programmcodes aufweisen.
-
Es können irgendwelche Kombinationen von einem oder mehreren computerlesbaren Medien verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann zum Beispiel ein elektronisches, magnetisches, optisches, elektromagnetisches, infrarotes oder halbleitendes System, Vorrichtung oder Gerät oder irgendeine geeignete Kombination der Vorhergehenden sein, ist aber nicht darauf beschränkt. Speziellere Beispiele (eine nicht erschöpfende Liste) des computerlesbaren Speichermediums würde die folgenden einschließen: eine elektrische Verbindung, die einen oder mehrere Drähte aufweist, eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Festwertspeicher (ROM,), einen löschbaren, programmierbaren Festwertspeicher (EPROM oder Flash-Speicher), eine optische Faser, einen tragbaren Kompaktdisk-Festwertspeicher (CD-ROM), ein optisches Speichergerät, ein magnetisches Speichergerät oder irgendeine geeignete Kombination der Vorhergehenden. In dem Kontext von diesem Dokument kann ein computerlesbares Speichermedium irgendein materielles Medium sein, das ein Programm zum Gebrauch durch ein oder in Verbindung mit einem Instruktionsausführungssystem, einer Vorrichtung oder einem Gerät enthalten oder speichern kann.
-
Ein computerlesbares Signalmedium kann ein sich verbreitendes Datensignal mit darin enthaltenem, computerlesbarem Programmcode einschließen, zum Beispiel in einem Basisband oder als Teil einer Trägerwelle. Ein derartiges sich verbreitendes Signal kann eine Vielfalt von Formen einnehmen, einschließlich und nicht begrenzt auf elektromagnetische, optische oder irgendwelche geeigneten Kombinationen davon. Ein computerlesbares Signalmedium kann irgendein computerlesbares Medium sein, das kein computerlesbares Speichermedium ist und das ein Programm zum Gebrauch durch ein oder in einer Verbindung mit einem Instruktionsausführungssystem, einer Vorrichtung oder einem Gerät kommunizieren, sich verbreiten oder transportiert werden kann. Wie hierin verwendet, umfasst ein computerlesbares Speichermedium kein computerlesbares Signalmedium.
-
Einen Computerprogrammcode zum Ausführen von Operationen für Aspekte der vorliegenden Offenbarung kann in irgendeiner Kombination von einer oder mehreren Programmiersprachen geschrieben werden, einschließlich einer objektorientierten Programmsprache wie Java, Smalltalk, C++ oder dergleichen und konventionell durchführbaren Programmiersprachen wie der "C"-Programmiersprache oder ähnliche Programmiersprachen. Der Programmcode kann vollständig auf einem Computer des Nutzers, teilweise auf einem Computer des Nutzers, als allein stehendes Softwarepaket, teilweise auf dem Computer des Nutzers und teilweise auf einem entfernten Computer, oder vollständig auf dem entfernten Computer oder Server ausgeführt werden. In dem letzteren Szenarium kann der entfernte Computer mit dem Computer des Nutzers über irgendeine Art von Netzwerk verbunden sein, einschließlich einem lokalen Netzwerk (LAN) oder einem Weitverkehrsnetz (WAN), oder kann die Verbindung durch einen externen Computer (z.B. durch das Internet, das einen Internet-Service-Provider verwendet) ausgeführt werden.
-
Aspekte der vorliegenden Offenbarung werden unten mit Bezug auf Flussdiagrammdarstellungen und/oder Blockdiagrammen von Verfahren, Vorrichtung(en), (Systemen) und Computerprogrammprodukten beschrieben. Es ist verständlich, dass jeder Block der Flussdiagrammdarstellungen und/oder Blockdiagramme und Kombinationen der Blöcke in den Flussdiagrammdarstellungen und/oder Blockdiagrammen durch Computerprogramminstruktionen ausgeführt sein kann. Diese Computerprogramminstruktionen können durch einen Prozessor eines Computers für allgemeine Zwecke, eines Computers für spezielle Zwecke oder anderer programmierbarer Datenverarbeitungsvorrichtungen bereitgestellt werden, um eine Maschine zu erzeugen, so dass die Instruktionen, welche über den Prozessor des Computers oder anderer programmierbarer Datenverarbeitungsvorrichtungen ausgeführt werden, Mittel zum Ausführen der Funktionen/Aktionen, die in den Flussdiagrammen und/oder Blockdiagrammen eines Blockes oder der Blöcke spezifiziert sind, erzeugen.
-
Diese Computerprogramminstruktionen können auch in einem computerlesbaren Speichermedium gespeichert werden, das einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder andere Geräte anweisen kann, um Funktionen in einer bestimmten Weise auszuführen, so dass die Instruktionen, die in dem computerlesbaren Speichermedium gespeichert sind, einen hergestellten Artikel ergeben, der Instruktionen, welche die Funktionen/Aktionen, die in den Flussdiagrammen und/oder Blockdiagrammen, eines Blocks oder Blöcken spezifiziert sind, ausführen, einschließt.
-
Die Computerprogramminstruktionen können auch auf einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Geräte geladen werden, um zu veranlassen, dass eine Serie von operativen Schritten auf dem Computer, anderen programmierbaren Vorrichtungen oder anderen Geräten ausgeführt wird, um einen computerausgeführten Prozess zu erzeugen, so dass die Instruktionen, welche auf dem Computer oder anderen programmierbaren Vorrichtungen ausgeführt werden, Prozesse für das Ausführen der Funktionen/Aktionen, die in dem Flussdiagramm und/oder Blockdiagramm, Block oder Blöcken spezifiziert werden, bereitstellen.
-
Die folgende detaillierte Beschreibung wird allgemein der Zusammenfassung folgen, wie sie oben ausgeführt ist, und ferner die Definitionen der verschiedenen Aspekte und Ausführungsformen, falls notwendig, erklären und erweitern. An diesem Punkt wird die detaillierte Beschreibung als erstes eine Computerumgebung in 1 festlegen, die geeignet ist, um Software- und/oder Hardwaretechniken, die mit der Offenbarung assoziiert sind, auszuführen. Eine Netzwerkumgebung wird in 2 als eine Erweiterung der Basiscomputerumgebung dargestellt, um zu betonen, dass moderne Computertechniken über mehrfache diskrete Geräte ausgeführt werden können.
-
1 stellt ein Informationshandhabungssystem 100 dar, welches ein vereinfachtes Beispiel eines Computersystems ist, das in der Lage ist, die Computeroperationen, die hierin beschrieben werden durchzuführen. Das Informationshandhabungssystem 100 umfasst einen oder mehrere Prozessoren 110, die mit einem Prozessorschnittstellen-Bus 112 gekoppelt sind. Der Prozessorschnittstellen-Bus 112 verbindet die Prozessoren 110 mit einer Northbridge 115, welche auch als Speichersteuerknoten (MCH) bekannt ist. Die Northbridge 115 verbindet den Systemspeicher 120 und stellt Mittel für den(die) Prozessor(en) 110 zum Zugriff auf den Systemspeicher bereit. Ein Grafikcontroller 125 ist auch mit der Northbridge 115 verbunden. In einer Ausführungsform verbindet ein PCI-Express-Bus 118 die Northbridge 115 mit dem Grafikcontroller 125. Der Grafikcontroller 125 ist mit einem Anzeigegerät 130 wie einem Computermonitor verbunden.
-
Die Northbridge 115 und die Southbridge 135 sind unter Verwenden des Busses 119 miteinander verbunden. In einer Ausführungsform ist der Bus ein Direct Media Interface (DMI) Bus, der Daten bei hoher Geschwindigkeit in jede Richtung zwischen der Northbridge 115 und der Southbridge 135 transferiert. In einer anderen Ausführungsform verbindet ein Peripheral Interconnect-(PCI)Bus die Northbridge und die Southbridge. Die Southbridge 135, die auch als der Ein/Aus Steuerknoten (ICH) bekannt ist, ist ein Chip, der allgemein Fähigkeiten ausführt, die bei niedrigeren Geschwindigkeiten arbeiten als die Geschwindigkeiten, die durch die Northbridge bereitgestellt werden. Die Southbridge 135 stellt typischerweise verschiedene Busse bereit, die zum Verbinden verschiedener Komponenten verwendet werden. Diese Busse umfassen zum Beispiel PCI und PCI-Express-Busse, einen ISA-Bus, einen Systemmanagement-Bus (SMBus oder SMB) und/oder einen Low Pin Count-(LPC)Bus. Der LPC-Bus verbindet oft niedrige Bandbreitengeräte, wie ein Boot-ROM 196 und “Legacy” I/O-Geräte (unter Verwenden eines “Super I/O” Chips). Die "Legacy" I/O Geräte (198) können zum Beispiel serielle und parallele Ports, Tastaturen, Mäuse und/oder einen Floppydisk-Controller einschließen. Der LPC-Bus verbindet auch die Southbridge 135 mit einem Trusted Platform Module (TPM) 195. Andere Komponenten, die oft in der Southbridge 135 enthalten sind, umfassen einen direkten Speicherzugriff (DMA), einen Programmable Interrupt Controller (PIC) und ein Speichergerät-Controller, welcher die Southbridge 135 mit dem nicht-flüchtigen Speichergerät 185, wie einem Festplattenlaufwerk, unter Verwendung eines Busses 184 verbindet.
-
Eine ExpressCard-Buchse 155 ist ein Schlitz, der schnell einsteckbare Geräte mit dem Informationshandhabungssystem verbindet. Die ExpressCard-Buchse 155 unterstützt sowohl die PCI-Express- als auch die USB-Verbindbarkeit, wenn diese mit der Southbridge 135 unter Verwenden sowohl des Universal Serial Busses (USB) als auch des PCI-Express-Busses verbunden werden. Die Southbridge 135 umfasst das USB-Steuergerät 140, das eine USB-Verbindbarkeit mit Geräten bereitstellt, die mit dem USB verbunden sind. Diese Geräte schließen eine Webcam (Kamera) 150, einen Infrarot-(IR)Empfänger 148, eine Tastatur und ein Trackpad 144 und ein Bluetooth-Gerät 146 ein, welche Private Area Networks (PANs) bereitstellen. Das USB-Steuergerät 140 stellt auch eine USB-Verbindbarkeit mit anderen diversen über USB verbunden Geräten 142 zur Verfügung, wie eine Maus, ein entfernbares nicht-flüssiges Speichergerät 145, Modems, Netzwerkkarten, ISDN-Verbinder, Fax, Drucker, USB-Knoten und viele andere Arten von USB-verbundenen Geräten. Während entfernbare nicht-flüchtige Speichergeräte 145 als ein USB-verbundenes Gerät gezeigt werden, könnten entfernbare nicht-flüchtige Speichergeräte 145 unter Verwenden einer anderen Schnittstelle, wie einer Firewire-Schnittstelle und so weiter, verbunden werden.
-
Ein drahtloses lokales Netzwerk-(LAN)Gerät 175 verbindet sich mit der Southbridge 135 über den PCI. oder PCI-Express-Bus 172. Das LAN-Gerät 175 führt typischerweise eine der IEEE 802.11 Standards der Funkmodulationstechniken aus, die alle das gleiche Protokoll verwenden, um zwischen dem Informationshandhabungssystem 100 und einem anderen Computersystem oder Gerät drahtlos zu kommunizieren. Ein optisches Speichergerät 190 verbindet sich mit der Southbridge 135 unter Verwenden eines seriellen ATA-(SATA-)Bus 188. Der serielle ATA-Adapter und die Geräte kommunizieren über eine serielle Hochgeschwindigkeitsverbindung. Der serielle ATA-Bus verbindet auch die Southbridge 135 mit anderen Formen der Speichergeräte, wie Festplattenlaufwerken. Eine Audioschaltung 160, wie eine Soundkarte, verbindet sich mit der Southbridge 135 über den Bus 158. Eine Audioschaltung 160 stellt auch Funktionalitäten wie eine Audioeinleitung und einen optischen digitalen Audioport 162, einen optischen digitalen Ausgang und eine Kopfhörerbuchse 164, interne Lautsprecher 166 und ein internes Mikrofon 168 bereit. Ein Ethernet-Steuergerät 170 verbindet sich mit der Southbridge 135 unter Verwenden eines Busses, wie dem PCI- oder PCI-Express-Bus. Das Ethernet-Steuergerät 170 verbindet das Informationshandhabungssystem 100 mit einem Computernetzwerk, wie einem lokalen Netzwerk (LAN), dem Internet und anderen öffentlichen und privaten Computernetzwerken.
-
Während 1 ein einziges Informationshandhabungssystem zeigt, kann ein Informationshandhabungssystem viele Formen einnehmen. Zum Beispiel kann ein Informationshandhabungssystem die Form eines Desktops, eines Servers, eines tragbaren Computers, eines Laptops oder andere Formfaktoren von Computern oder Datenverarbeitungssystemen annehmen. Zusätzlich kann ein Informationshandhabungssystem andere Formfaktoren wie einen Personal Digital Assistant (PDA), ein Spielegerät, eine ATM-Maschine, ein tragbares Telefongerät, ein Kommunikationsgerät oder andere Geräte, die einen Prozessor und einen Speicher aufweisen, annehmen.
-
Das Trusted Platform Module (TPM 195), das in 1 gezeigt und das hierin beschrieben ist, um Sicherheitsfunktionen bereitzustellen, ist nur ein Beispiel eines Hardware-Sicherheitsmoduls (HSM). Deshalb umfasst das TPM, das hierin beschrieben und beansprucht wird, jede Art von HSM, einschließlich aber nicht begrenzt auf Hardware-Sicherheitsgeräte, die dem Sicherheits-Computergruppen-(TCG)Standard entsprechen und als “Trusted Platform Module (TPM) Specification Version 1.2” bezeichnet werden. Das TPM ist ein Hardware-Sicherheitshilfssystem, das in irgendeiner Anzahl von Informationshandhabungssystemen eingebaut sein kann, wie solchen, die in 2 dargestellt sind.
-
2 stellt eine Vergrößerung der Umgebung des Informationshandhabungssystems, das in 1 gezeigt wird, bereit, um darzustellen, dass die Verfahren, die hierin beschrieben werden, auf einer breiten Vielfalt von Informationshandhabungssystemen, die in einer Netzwerkumgebung betrieben werden, ausgeführt werden können. Arten von Informationshandhabungssystemen reichen von kleinen handgehaltenen Geräten, wie einem handgehaltenen Computer/Mobiltelefon 210, zu Großrechnersystemen, wie einem Großrechnercomputer 270. Beispiele handgehaltener Computer 210 schließen Personal Digital Assistants (PDAs), persönliche Entertainmentgeräte, wie MP3-Players, tragbare Fernsehgeräte und Kompaktdisk-Wiedergabegeräte ein. Andere Beispiele von Informationshandhabungssystemen umfassen einen Stift- oder Tablet-Computer 220, einen Laptop- oder Notebook-Computer 230, einen Arbeitsrechner 240, ein persönliches Computersystem 250 und einen Server 260. Andere Arten von Informationshandhabungssystemen, die nicht individuell in 2 gezeigt sind, werden durch das Informationshandhabungssystem 280 dargestellt. Wie gezeigt, können verschiedene Informationshandhabungssysteme über Netzwerke unter Verwenden eines Computernetzwerks 200 zusammenarbeiten. Arten von Computernetzwerken, die verwendet werden können, um die verschiedenen Informationshandhabungssysteme zusammenzuschließen, umfassen lokale Netzwerke (LANs), drahtlose lokale Netzwerke (WLANs), das Internet, das öffentlich geschaltete Telefonnetzwerk (PSTN), andere drahtlose Netzwerke und irgendeine andere Netzwerktopologie, die verwendet werden kann, um die Informationshandhabungssysteme untereinander zu verbinden. Viele der Informationshandhabungssysteme umfassen nicht-flüchtige Datenspeicher, wie feste Laufwerke und/oder nicht-flüchtige Speicher. Einige der Informationshandhabungssysteme, die in 2 gezeigt werden, zeigen separate nicht-flüchtige Datenspeicher (der Server 260 verwendet einen nicht-flüchtigen Datenspeicher 265, der Großrechner 270 verwendet einen nicht-flüchtigen Datenspeicher 275 und das Informationshandhabungssystem 280 verwendet einen nicht-flüchtigen Datenspeicher 285). Der nicht-flüchtige Datenspeicher kann eine Komponente sein, die extern zu den verschiedenen Informationshandhabungssystemen ist oder kann intern in einem der Informationshandhabungssysteme vorhanden sein. Zusätzlich kann ein entfernbares nicht-flüchtiges Speichergerät 145 auf zwei oder mehr Informationshandhabungssysteme unter Verwenden verschiedener Techniken verteilt sein, wie ein Verbinden des entfernbaren nicht-flüchtigen Speichergerätes 145 mit einem USB-Port oder einem anderen Anschluss der Informationshandhabungssysteme.
-
3–8 zeigen eine Näherung, die sowohl eine beabsichtigte Interaktionsschicht eines Nutzers (die transparente Schicht oder die Applikationsschicht) als auch den vom Nutzer beabsichtigten Eingabetyp (eine Geste oder eine Handschrift) identifiziert. Die transparente Schicht ermöglicht Nutzern auf der Oberseite von irgendwelchen Applikationen oder Fenstern zu schreiben und den erkannten Text zu den geeigneten Texteingabefeldern oder Dokumentenbereichen zu senden. Während die Nutzer schreiben, möchten sie jedoch auch die Möglichkeit haben, die Applikation darunter zu steuern, wie durch Scrollen, Klicken eines Schalters usw. Die Wichtungseigenschaften der Nutzereingabe bestimmen die beabsichtigte Interaktionsschicht sowie den beabsichtigten Eingabetyp.
-
Die Näherungsfilter-Bewegungsereignisse basieren direkt auf dem Ereignisquellentyp bzw. Eventquellentyp für die beabsichtigte Interaktionsschicht. Wenn zum Beispiel stiftartige Ereignisse vom Finger, von einer Maus oder anderen unterschieden werden können, lassen sich alle Ereignisse, die sich von Stiftereignissen unterscheiden, durch die Applikation darunter ausführen. Die Nicht-Stift-Ereignisse können direkt die Zielapplikation erreichen oder durch die transparente erste Schicht verbraucht und nachher erneut eingegeben werden. Wenn Stift-Schwebeereignisse durch die transparente Schicht nicht verwendet werden, sollten sie auch ausgefiltert werden. Stiftereignisse werden kontinuierlich überwacht. Für einen einzelnen Stiftstrich kann, wenn der Startpunkt oder die Mehrzahl der Punktkoordinaten oberhalb eines bestimmten Entscheidungspunktes oder Schwellwertes liegt, dieser Stich vollständig oder teilweise eher als Interaktion mit der unteren Applikation, als eine Handschrifteingabe behandelt werden. Der Entscheidungspunkt oder der Schwellwert könnte ein zweidimensionaler Euklidabstand von der Texteingaberegionsgrenze zu den Punktkoordinaten sein. Die historischen Ereignisse bzw. Events werden für eine spätere mögliche Injektion gespeichert. Das handschriftliche Eingabeereignis wird somit nicht in die Applikation eingespeist. Für mehrfache kontinuierliche Stiftstriche kann die Beziehung zwischen früheren und späteren Strichen helfen zu entscheiden und die bereits erfolgte Entscheidung korrigieren. Zum Beispiel bei mehreren Strichen, die in sehr kurzer Zeitdifferenz erzeugt wurden, wenn die späteren Striche als Handschrift behandelt werden, gewinnen die früheren auch eine höhere Möglichkeit Handschriften zu sein, selbst wenn sie als Applikationsinteraktion behandelt wurden. Ferner analysiert die Näherung Berührungsgesten, die für Applikationsinteraktionen wie Einzelantippen, langes Pressen usw. üblich sind.
-
Der transparente IME (transparente Schicht) ist ein Modell, das der Nutzer für Tintenstriche wie ein Umkreisen, ein Durchstreichen usw. verwenden kann, um auf den Schriftsatz in dem Texteingabebereich zu arbeiten. Neben handschriftlichen Formen können andere direkte Berührungsgesten wie ein einziges Tippen auch als Kommando verwendet werden. Zum Beispiel kann ein Nutzer wünschen anstelle einer Kreisgeste ein “o” zu schreiben, anstelle einer Durchstreichgeste ein “–“ zu schreiben oder anstelle einer einzelnen Tippgeste einen “.” zu schreiben.
-
Handschriftliche Eingaben und Gesteneingaben haben, basierend auf dem Kontext, unterschiedliche Bedeutungen. Der Kontext kann ein Inhalt unter der Nutzereingabe sein. Wenn es darunter zum Beispiel Schriftsätze gibt, ist eine Nutzereingabe eher eine Geste, oder wenn es einen unteren Schalter gibt, ist es wahrscheinlicher, dass es eine Geste ist. Für eine einzelne Tippeingabe ist es, wenn die Tipppunktgeometrie innerhalb eines bestimmten Distanzschwellwerts von der Cursorposition ist, wahrscheinlicher, dass es eine Punkteingabe ist. Wenn die Nutzereingabeformgröße klein ist, ist es weniger wahrscheinlich eine Geste und wahrscheinlicher eine Handschrift. Wenn eine kleine Zeit zwischen Nutzereingaben liegt, ist es eher eine kontinuierliche Handschrifteingabe und somit weniger wahrscheinlich, dass es eine gestenartige Eingabe ist. Durch Vergleichen der Erkennungsergebnisse und dem vertrauten Ergebnis zwischen vorher verwendeten Eingaben können die Nutzereingaben entweder als Gesten oder als Handschrift identifiziert werden. Der Vergleich kann auch nach dem Anwenden der Erkenntnis und nach einem Senden der Textergebnisse zu dem Eingabefeld erfolgen, wenn die neue Eingabe einen Gesamtinhalt logischer macht oder es wahrscheinlicher ist, eine Handschrifteingabe zu sein. Für Gesten wird die Gestenwahrscheinlichkeitsgewichtung basierend auf vorhergehenden Nutzereingaben angepasst. Durch kontinuierliches Überwachen der Nutzereingaben können die letzten Nutzereingaben unterschiedliche Wahrscheinlichkeitsbedeutungen gewinnen, um sie als Gesten oder als Handschrift zu behandeln. Wenn die Nutzereingaberichtung entgegen der normalen Handschrift ist, ist es eher eine Geste, beispielsweise eine Durchstreichgeste von rechts nach links.
-
3A ist ein Draufsichtdiagramm, das fingerbasierte und stiftbasierte Eingaben für handschriftliche und getippte Eingaben sowohl in die Applikationsschicht als auch in die transparente Schicht zeigt. Ein Berührungsbildschirm-Gerät weist eine Berührungsbildschirm-Oberfläche auf, auf welcher ein Nutzer eine Eingabe als Handschrift oder als Gesten unter Verwenden verschiedener Eingabegeräte 350 eingeben kann, einschließlich Eingaben mit Fingern 370 und stiftartigen Eingaben 360.
-
Die transparente Schicht 310 wird als virtuelle "Abdeckung" über der Berührungsbildschirm-Oberfläche gezeigt. Der Nutzer kann mit der transparenten Schicht 310 unter Verwenden der Berührungsbildschirm-Eingabegeräte 350, unter Verwenden einer Vielfalt von Gesten und in einigen Fällen durch Handschrifteingaben interagieren. Unter der transparenten Schicht 310 ist eine Applikation, wobei eine oder mehrere Applikationen 320 enthalten sein können. Anders als die transparente Schicht 310, sind die Applikationen 320 für den Nutzer auf der Oberfläche des Berührungsbildschirm-Gerätes 300 sichtbar. Die Eingabefelder 325 können als Anzeigeapplikation 320 abhängig von der Art der Applikation, die angezeigt wird, dargestellt werden. Zusätzlich kann ein Cursor 330, der anzeigt, wo der eingegebene Text auf dem Bildschirm angezeigt werden wird, eine sichtbare Komponente auf der Oberfläche des Berührungsbildschirm-Gerätes 300 sein. In dem gezeigten Beispiel ist der Cursor gegenwärtig in einem der Eingabefelder der angezeigten Applikation. Softwaretasten 340 können basierend auf den Applikationen in der Applikationsschicht angezeigt werden oder wenn eine textartige Eingabe angefragt wird durch die transparente Schicht. Wenn sichtbar, dann verursacht eine Nutzereingabe, die auf eine der Tasten des Softwaretastaturbereichs gerichtet ist, einen Eintrag der entsprechenden Zeichen, ähnlich zu dem Effekt eines Drückens eines Zeichens auf einer physikalischen Tastatur.
-
3B ist ein Seitenansichtsdiagramm, das fingerbasierte und stiftbasierte Eingaben für handschriftliche und getippte Eingaben sowohl in die Applikationsschicht als auch in die transparente Schicht zeigt. Diese Ansicht zeigt, dass die transparente Schicht 380 virtuell auf der Oberseite der Applikationsschicht 390 enthalten ist. Unter Verwenden der Prozesse und Schritte, die in den 4–8 gezeigt werden, unterscheidet das System zwischen Nutzereingaben, die auf die transparente Schicht 380 gerichtet sind, und solchen Eingaben, die auf die Applikationsschicht 390 gerichtet sind. Ferner unterscheidet das System zwischen Nutzereingaben, die gestenartige Eingaben sind, und Nutzereingaben, die handschriftartige Eingaben sind. Gestenartige Eingaben ermöglichen es dem Nutzer das Berührungsbildschirm-Gerät 300 basierend auf einer Nutzereingabe oder einer Berührung, die dem Gerät durch den Nutzer unter Verwenden eines Eingabegerätes 350 bereitgestellt wird, zu steuern. Arten der Gesten schließen Gesten des "Schwenkens" ein, um das virtuelle Fenster, das auf der Berührungsbildschirm-Oberfläche erscheint, zu scrollen und einen anderen Teil des virtuellen Bildschirms zu sehen, des "Zoomens", um einen Gegenstand auf dem Berührungsbildschirm-Gerät größer oder kleiner erscheinen zu lassen, des "Drehens", um einen Gegenstand, wie ein Bild oder eine Karte, in einer kreisenden Richtung zu bewegen und um Menüs und andere Geräteinteraktionsgegenstände zu sehen.
-
Das System identifiziert die beabsichtigte Interaktionsschicht (die transparente Schicht oder die Applikationsschicht) basierend auf Eigenschaften der Nutzereingaben, die von dem System empfangen werden, sowie der Art und der Eingabe (Handschrift oder Geste), die durch den Nutzer beabsichtigt ist, basierend auf den Eigenschaften der Nutzereingaben. Nutzereingaben, die identifiziert werden, auf die transparente Schicht ausgerichtet zu sein, werden auf die transparente Schicht gerichtet, während Eingaben, die identifiziert werden, auf die Applikationsschicht ausgerichtet zu sein, auf die Applikationsschicht gerichtet werden, oder noch spezifischer auf eine Applikation, die in der Applikationsschicht erscheint. Eingaben, die als Gesten identifiziert werden, werden als solche in der beabsichtigten Interaktionsschicht behandelt. Zum Beispiel würde eine "Schwenk-"Geste, die auf die transparente Schicht gerichtet ist, das virtuelle Fenster, das auf dem Berührungsbildschirm-Gerät 300 erscheint, schwenken, um somit andere Applikationen, die gegenwärtig "außerhalb des Schirms" sind, "auf dem Schirm" und sichtbar für den Nutzer abzubilden. Die gleiche "Schwenk-"Geste, die auf die Applikationsschicht gerichtet ist, würde die Applikation in der Applikationsschicht schwenken, wie ein Scrollen einer Liste von Gegenständen, die in der Applikation auftreten. In ähnlicher Weise werden Nutzereingaben als Handschrift identifiziert und als solche behandelt. Wenn sie auf ein Texteingabefeld ausgerichtet ist, wird die Handschrift in einen entsprechenden Text konvertiert (z.B. ein Handschriftzeichen "a" wird zu einem Textzeichen "a" konvertiert usw.) und in das System als Textdaten eingegeben. Auf diese Weise kann der Nutzer handgeschriebene Nutzereingaben auf Eingabefelder in einer Applikation ausrichten und das System wird nicht nur identifizieren, dass die Eingabe auf die Applikationsschicht gerichtet ist, sondern auch erkennen, dass die Handschrift als Eingabe in Felder beabsichtigt ist, die Handschrift in einen Text konvertieren und den Text in die Eingabefelder eingeben.
-
4 ist ein Flussdiagramm, das Schritte zeigt, die durch einen Schriftsatzprozess getätigt werden. 4 beginnt bei 400 und zeigt die Schritte, die durch einen Prozess getätigt werden, der sowohl den beabsichtigten Eingabetyp als auch die beabsichtigte Zielschicht basierend auf Nutzereingaben, die auf einem Berührungsbildschirm-Gerät empfangen werden, identifiziert. Beim Schritt 405 prüft der Prozess die Nutzerkonfigurationsdaten, welche durch den Nutzer etabliert wurden und in dem Konfigurationsdatenspeicher 410 gespeichert sind. Der Prozess bestimmt, ob die Konfigurationseinstellung durch den Nutzer eingerichtet wurde (Entscheidung 415). Wenn die Nutzerkonfigurationseinstellungen zur Verfügung stehen, dann verzweigt sich die Entscheidung 415 zu dem 'Ja-'Zweig, woraufhin beim Schritt 420 der Prozess die Nutzerkonfigurationseinstellungen, die durch den Nutzer eingerichtet sind, einliest. Andererseits, wenn der Nutzer keine Konfigurationseinstellungen eingerichtet hat, dann verzweigt sich die Entscheidung 415 zu dem 'Nein-'Zweig, woraufhin der Prozess beim Schritt 425 eher Standardeinstellungen verwendet als nutzerdefinierte Konfigurationseinstellungen.
-
Beim Schritt 430 speichert der Prozess die Nutzereingaben, die auf dem Berührungsbildschirm-Gerät 300 empfangen wurden, in einem Speicherbereich 435. Beim Schritt 440 initialisiert der Prozess Wichtungen für die beabsichtigte Interaktionsschicht und den beabsichtigten Eingabetyp. Die beabsichtigte Interaktionsschicht ist entweder die transparente Schicht oder die Applikationsschicht und der beabsichtigte Eingabetyp ist entweder eine handschriftartige Eingabe oder eine gestenartige Eingabe. Wenn die Nutzereingaben durch vorbestimmte Prozesse 450 und 460 verarbeitet werden, werden die Wichtungen basierend auf Eigenschaften, die mit den empfangenen Nutzereingaben assoziiert sind, angepasst. Die Option mit der höheren Wichtung wird als die beabsichtigte Option des Nutzers ausgewählt. Wenn zum Beispiel nach einem Ausführen eines vordefinierten Prozesses 450, die gestenartige Eingabe eine höhere Wichtung aufweist als die handschriftartige Eingabe, dann werden die gestenartigen Eingaben als beabsichtigter Eingabetyp des Nutzers identifiziert. Auf ähnliche Weise wird, wenn nach dem Ausführen des vordefinierten Prozesses 460 die Applikationsschicht eine höhere Wichtung aufweist als die transparente Schicht, die Applikationsschicht als die beabsichtigte Interaktionsschicht des Nutzers identifiziert.
-
Als vordefinierter Prozess 450 führt der Prozess das Identifizieren einer beabsichtigten Eingabetyproutine durch (siehe 5 und entsprechende Textverarbeitungsdetails). Der beabsichtigte Eingabetyp, der durch den vordefinierten Prozess 450 identifiziert wird, wird in dem Speichergebiet 455 gespeichert. Der beabsichtigte Eingabetyp wird entweder als Gesteneingabetyp oder als Handschrifteingabetyp identifiziert.
-
Beim vordefinierten Prozess 460 führt der Prozess das Identifizieren der beabsichtigten Interaktionsschichtroutine durch (siehe 6 und entsprechende Textverarbeitungsdetails). Die beabsichtigte Interaktionsschicht, die durch den vordefinierten Prozess 460 identifiziert wird, wird in dem Speichergebiet 465 gespeichert. Die beabsichtigte Interaktionsschicht wird entweder als die transparente Schicht oder als die Applikationsschicht identifiziert.
-
Beim vordefinierten Prozess 470 führt der Prozess den kontextlichen Test der beabsichtigten Zielschicht und die Eingabetyproutine durch (siehe 7 und entsprechende Textverarbeitungsdetails). Der kontextliche Test verwendet die Nutzereingabe in die identifizierte Interaktionsschicht als den beabsichtigten Eingabetyp (Handschrift oder Gesten). Die Ergebnisse des kontextbasierten Tests erscheinen auf dem Berührungsbildschirm-Gerät, wo sie für den Nutzer sichtbar sind. Beim vordefinierten Prozess 475 führt der Prozess die Nutzerreaktion für angewandte Beabsichtigungsroutinen durch (siehe 8 und entsprechende Textverarbeitungsdetails). Wenn der Nutzer die Ergebnisse des kontextuellen Schrittes sieht, der durch den vordefinierten Prozess 470 ausgeführt ist, kann der Nutzer anzeigen, ob die beabsichtigte Interaktionsschicht nicht korrekt war, der beabsichtigte Eingabetyp nicht korrekt war oder beides nicht korrekt war. Diese Reaktion wird von dem Nutzer bei dem vordefinierten Prozess 475 empfangen. Das Gerät könnte zum Beispiel so konfiguriert sein, dass, wenn der Nutzer das Gerät innerhalb eines vorbestimmten Zeitintervalls von Seite zu Seite schüttelt, nachdem der kontextbasierte Test durchgeführt wurde, die Nutzerantwort anzeigt, dass die beabsichtigte Interaktionsschicht nicht korrekt ist, das Rauf- und Runterschütteln innerhalb des Intervalls zeigt, dass der beabsichtigte Eingabetyp nicht korrekt ist, und diagonales Schütteln des Gerätes zeigt, dass die beabsichtigte Interaktion und der beabsichtigte Eingabetyp nicht korrekt sind.
-
Der Prozess bestimmt, ob die Identifizierungen sowohl in Bezug auf die beabsichtigte Interaktionsschicht als auch den beabsichtigten Eingabetyp korrekt waren (Entscheidung 480). Wenn eine oder mehrere Identifizierungen nicht korrekt waren, dann verzweigt sich die Entscheidung 480 zu dem 'Nein-'Zweig, woraufhin beim Schritt 485 der Prozess die identifizierte Interaktionsschicht und/oder den identifizierten Eingabetyp basierend auf der Nutzereingabe (z.B. Schütteln des Gerätes rauf/runter, links/rechts, diagonal usw. innerhalb eines vorbestimmten Zeitintervalls) ändert. Wenn zum Beispiel der vordefinierte Prozess 450 den beabsichtigten Eingabetyp inkorrekt als Geste identifiziert, dann würde der beabsichtigte Eingabetyp in einen Handschrifteingabetyp beim Schritt 485 geändert werden. Wenn der vordefinierte Prozess 460 die beabsichtigte Interaktionsschicht inkorrekt als transparente Schicht identifiziert, dann wird auf ähnliche Weise die beabsichtigte Interaktionsschicht in die Applikationsschicht beim Schritt 485 geändert.
-
Das Verarbeiten wird dann zu dem vordefinierten Prozess 470 zurückgekoppelt, um den kontextlichen Test des aktuellen beabsichtigten Eingabetyps und/oder der beabsichtigten Interaktionsschicht neu auszuführen. Dieses Rückkoppeln wird fortgesetzt, bis die Identifizierungen der Absichten des Nutzers korrekt sind. Wenn beide Identifizierungen, sowohl der beabsichtigte Eingabetyp als auch die beabsichtigte Interaktionsschicht, korrekt sind, dann verzweigt sich die Entscheidung 480 zu dem 'Ja-'Zweig, woraufhin beim Schritt 490 der Prozess die Nutzereingaben zusammen mit der sich ergebenden identifizierten beabsichtigten Interaktionsschicht und dem identifizierten beabsichtigten Eingabetyp in den historischen Datenspeicher 495 speichert. Der historische Datenspeicher wird mit den Nutzereingaben verglichen, um Ähnlichkeiten in den Nutzereingaben herauszufinden, so dass vorher für gültig erkannte Identifizierungen der beabsichtigten Eingabetypen und der beabsichtigten Eingabeschichten im nachfolgenden Gebrauch des Gerätes verwendet werden können.
-
5 ist ein Flussdiagramm, das Schritte zeigt, die durch einen Prozess getätigt werden, der einen beabsichtigten Eingabetyp zum Empfangen von Berührungsbildschirm-Eingaben identifiziert. Beim Schritt 500 identifiziert der Prozess den beabsichtigten Eingabetyp basierend auf Nutzereingaben auf dem Berührungsbildschirm-Gerät. Beim Schritt 505 vergleicht der Prozess die empfangene Nutzereingabe mit historischen Daten von vorhergehenden Nutzereingaben, die verarbeitet wurden und die mit dem beabsichtigten Eingabetyp derartiger vorhergehender Nutzereingaben assoziiert sind. Der Prozess bestimmt, ob ähnliche Sätze von Eingaben in den historischen Daten gefunden werden (Entscheidung 510). Wenn ähnliche Eingabesätze in den historischen Daten gefunden werden, dann verzweigt sich die Entscheidung 510 zu dem 'Ja-'Zweig, woraufhin beim Schritt 515 der Prozess den Eingabetyp zugunsten des vorhergehenden Eingabetyps wichtet (Handschrift oder Geste), der in der Eingabehistorie, welcher mit ähnlichem Satz von Nutzereingaben assoziiert war, gefunden wurde. Wenn andererseits ein ähnlicher Satz von Eingaben nicht in den historischen Daten gefunden wurde, dann verzweigt sich die Entscheidung 510 zu dem 'Nein-'Zweig unter Umgehen des Schrittes 515.
-
Der Prozess bestimmt, ob mehrfache Nutzereingaben in einer relativ kurzen Zeitdauer empfangen wurden (Entscheidung 520). Wenn mehrfache Eingaben in einer relativ kurzen Zeitdauer empfangen wurden, dann verzweigt sich die Entscheidung 520 zu dem 'Ja-'Zweig, woraufhin beim Schritt 525 das Wichten des handschriftlichen Eingabetyps verstärkt wird. Andererseits, wenn die mehrfachen Eingaben nicht in einer kurzen Zeitdauer empfangen werden, dann verzweigt sich die Entscheidung 520 zu dem 'Nein-'Zweig, woraufhin beim Schritt 525 das Wichten des Gesteneingabetyps verstärkt wird.
-
Beim Schritt 535 wählt der Prozess die erste Nutzereingabe, die von dem Nutzer des Berührungsbildschirm-Gerätes empfangen wurde Der Prozess bestimmt, ob die ausgewählte Nutzereingabe Koordinateneigenschaften aufweist, welche die gewählte Nutzereingabe in der Nähe von oder nahe den gegenwärtigen Koordinaten des Cursors, der auf dem Screen gezeigt wird, anordnet (Entscheidung 540). Wenn die gewählte Nutzereingabe nahe zu der laufenden Cursorposition ist, dann verzweigt sich die Entscheidung 540 zu dem 'Ja-'Zweig, woraufhin beim Schritt 545 das Wichten des Handschrifteingabetyps verstärkt wird. Wenn andererseits die gewählte Nutzereingabe nicht in der Nähe der gegenwärtigen Cuserposition ist, dann verzweigt sich die Entscheidung 540 zu dem 'Nein-'Zweig, woraufhin beim Schritt 550 das Wichten des Gesteneingabetyps verstärkt wird.
-
Der Prozess bestimmt, ob eine Softtastenfläche auf dem Bildschirm zur gleichen Zeit auftritt, zu welcher die Nutzereingabe empfangen wurde (Entscheidung 555). Wenn eine Softtastenfläche auf dem Schirm zur gleichen Zeit auftritt, zu der die Nutzereingabe empfangen wurde, dann verzweigt sich die Entscheidung 555 zu dem 'Ja-'Zweig, woraufhin beim Schritt 560 das Wichten des Gesteneingabetyps verstärkt wird. Wenn andererseits eine Softtastenfläche nicht zur gleichen Zeit auf dem Schirm erscheint zu der die Nutzereingabe empfangen wurde, dann verzweigt sich die Entscheidung 555 zu dem 'Nein-'Zweig, woraufhin beim Schritt 565 das Wichten des Handschrifteingabetyps verstärkt wird.
-
Der Prozess bestimmt, ob die Größe der Nutzereingabe relativ klein im Vergleich zu der Größe des berührungsfähigen Bildschirms (Entscheidung 570) ist. Wenn die Größe der Nutzereingabe relativ klein ist, dann verzweigt sich die Entscheidung 570 zu dem 'Ja-'Zweig für die weitere Verarbeitung. Wenn andererseits die Größe der Nutzereingabe klein ist, dann verzweigt sich die Entscheidung 570 zu dem 'Nein-'Zweig, woraufhin beim Schritt 590 das Wichten des Gesteneingabetyps verstärkt wird. Unter Verfolgen des 'Ja-'Zweigs der Entscheidung 570 bestimmt der Prozess als nächstes, ob die Nutzereingabe ein Tippen auf den Bildschirm ist (Entscheidung 575). Wenn die Nutzereingabe ein Tippen auf den Bildschirm ist, dann verzweigt sich die Entscheidung 575 zu dem 'Ja-'Zweig, woraufhin beim Schritt 580 das Wichten des Gesteneingabetyps verstärkt wird. Wenn andererseits die Nutzereingabe kein Tippen auf dem Bildschirm ist, dann verzweigt sich die Entscheidung 575 zu dem 'Nein-'Zweig, woraufhin beim Schritt 585 das Wichten des Handschrifteingabetyps verstärkt wird.
-
Der Prozess bestimmt, ob weitere Nutzereingaben auf dem Berührungsbildschirm-Gerät empfangen werden (Entscheidung 595). Wenn es mehrere Nutzereingaben gibt, dann verzweigt sich die Entscheidung 595 zu dem 'Ja-'Zweig, welcher zu dem Schritt 535 zurückgekoppelt wird, um auszuwählen und die Nutzereingabe zu bearbeiten. Diese Rückkopplung wird fortgesetzt, bis es keine Nutzereingaben zum Verarbeiten mehr gibt, an welchem Punkt sich die Entscheidung 595 zu dem 'Nein-'Zweig verzweigt und das Verarbeiten zu der Aufrufroutine (siehe 4) bei 599 zurückkehrt. Die Routine kehrt zurück zu dem beabsichtigten Eingabetyp basierend auf welcher der Eingabetypen (Handschrift oder Geste) die größte Wichtung während der Ausführung der Routine bekommen hat.
-
6 ist ein Flussdiagramm, das Schritte zeigt, die durch einen Prozess getätigt werden, der eine beabsichtigte Interaktionsschicht zum Empfangen von Berührungsbildschirm-Eingaben identifiziert. Beim Schritt 600 identifiziert der Prozess die beabsichtigte Interaktionsschicht basierend auf Nutzereingaben, die auf dem Berührungsbildschirm-Gerät empfangen werden. Beim Schritt 605 vergleicht der Prozess die empfangene Nutzereingabe mit historischen Daten der vorhergehenden Nutzereingaben, welche verarbeitet wurden, und der beabsichtigten Interaktionsschicht, die mit derartigen vorhergehenden Nutzereingaben assoziiert ist. Der Prozess bestimmt, ob ein ähnlicher Eingabesatz in den historischen Daten gefunden wurde (Entscheidung 610). Wenn ein ähnlicher Eingabesatz in den historischen Daten gefunden wurde, dann verzweigt sich die Entscheidung 610 zu dem 'Ja-'Zweig, woraufhin beim Schritt 615 der Prozess die beabsichtigte Interaktionsschicht (transparente Schicht oder Applikationsschicht) zugunsten der vorher beabsichtigen Interaktionsschicht wichtet, die in der Eingabehistorie gefunden wurde, welche mit dem ähnlichen Satz von Nutzereingaben assoziiert war. Wenn andererseits kein ähnlicher Eingabesatz in den historischen Daten gefunden wurde, dann verzweigt sich die Entscheidung 610 zu dem 'Nein-'Zweig unter Umgehung des Schrittes 615.
-
Der Prozess bestimmt, ob vielfache Nutzereingaben in einer relativ kurzen Zeitdauer empfangen wurden (Entscheidung 620). Wenn vielfache Eingaben in einer relativ kurzen Zeitspanne empfangen wurden, dann verzweigt sich die Entscheidung 620 zu dem 'Ja-'Zweig, woraufhin beim Schritt 625 das Wichten der Applikationsschicht verstärkt wird. Wenn andererseits die vielfachen Einaben nicht in einer kurzen Zeitdauer empfangen wurden, dann verzweigt sich die Entscheidung 620 in den 'Nein-'Zweig, woraufhin beim Schritt 625 das Wichten der transparenten Schicht verstärkt wird.
-
Beim Schritt 635 wählt der Prozess die erste Nutzereingabe von dem Satz der Nutzereingaben, die auf dem Berührungsbildschirm-Gerät empfangen wurden, aus. Bei der Entscheidung 640 wird durch den Prozess eine Bestimmung getätigt, ob der Oberflächenbereich der Eingabe die Gestalt und Größe hat, die mit einer stiftartigen Ausführung (z.B. Griffel, Stift usw.) übereinstimmt, welche kleiner ist als der Oberflächenbereich einer Eingabe, die mit einem Finger oder einer anderen nicht stiftartigen Ausführung getätigt wird. Wenn der Oberflächenbereich der ausgewählten Eingabe von einer stiftartigen Ausführung ist, dann verzweigt sich die Entscheidung 640 zu dem 'Ja-'Zweig, woraufhin beim Schritt 645 das Wichten der transparenten Schicht verstärkt wird. Wenn andererseits der Oberflächenbereich der ausgewählten Eingabe nicht von einer stiftartigen Ausführung ist, dann verzweigt sich die Entscheidung 640 zu dem 'Nein-'Zweig, woraufhin beim Schritt 650 das Wichten der Applikationsschicht verstärkt wird.
-
Der Prozess bestimmt, ob die ausgewählte Eingabe Koordinaten hat, die sich innerhalb der zugrunde liegenden Applikationstexteingaberegion befinden (Entscheidung 655). Wenn die Koordinaten nahe bei oder innerhalb dem zugrunde liegenden Applikationsbereich sind, dann verzweigt sich die Entscheidung 655 zum 'Ja-'Zweig, woraufhin beim Schritt 660 das Wichten der Applikationsschicht verstärkt wird. Wenn andererseits die Koordinaten nicht nahe bei oder innerhalb des zugrunde liegenden Applikationsbereichs sind, dann verzweigt sich die Entscheidung 655 zu dem 'Nein-'Zweig, woraufhin beim Schritt 665 das Wichten der transparenten Schicht verstärkt wird.
-
Der Prozess bestimmt, ob die ausgewählte Eingabe zuvor als übliche Applikationsgeste durch die Routine, die in 5 (Entscheidung 670) gezeigt wird identifiziert wurde. Wenn die ausgewählte Eingabe vorher als gewöhnliche Applikationsgeste identifiziert wurde, dann verzweigt sich die Entscheidung 670 zu dem 'Ja-'Zweig, woraufhin beim Schritt 675 das Wichten der Applikationsschicht verstärkt wird. Wurde die ausgewählte Eingabe andererseits nicht vorher als übliche Applikationsgeste identifiziert, dann verzweigt sich die Entscheidung 670 zu dem 'Nein-'Zweig, woraufhin beim Schritt 680 das Wichten der transparenten Schicht verstärkt wird.
-
Der Prozess bestimmt, ob mehrere Nutzereingaben des Nutzers auf dem Berührungsbildschirm-Gerät empfangen wurden (Entscheidung 690). Wenn mehrere Nutzereingaben vorliegen, dann verzweigt sich die Entscheidung 690 zu dem 'Ja-'Zweig, der zum Schritt 635 zurückkoppelt, um die nächste Nutzereingabe auszuwählen und zu verarbeiten. Diese Rückkopplung wird fortgesetzt, bis es keine Nutzereingaben in dem Prozess mehr gibt, an welchem Punkt die Entscheidung 690 zum 'Nein-'Zweig verzweigt und die Verarbeitung zu der Aufrufroutine (siehe 4) bei 695 zurückkehrt. Die Routine kehrt zurück zu der beabsichtigten Interaktionsschicht, basierend auf welcher der Interaktionsschichten (transparente Schicht oder Applikationsschicht) das größte Wichten während der Ausführung der Routine empfangen hat.
-
7 ist ein Flussdiagramm, das Schritte zeigt, die während eines kontextbasierten Tests der Berührungsbildschirm-Eingaben in dem identifizierten Eingabetyp getätigt werden und auf die identifizierte Zielschicht gerichtet sind. 7 beginnt bei 700 und zeigt die Schritte, die durch einen Prozess getätigt werden, der einen kontextbasierten Test ausführt. Beim Schritt 704 findet der Prozess eine Reaktion von dem Speicherbereich 708 wieder auf, die irgendeinen vorhergehenden Versuch des Eingabetyps und der Interaktionsschicht (falls verfügbar) betrifft. Der Prozess bestimmt, ob eine Nutzerreaktion verfügbar ist (Entscheidung 712). Wenn eine Nutzerreaktion nicht verfügbar ist, dann verzweigt sich die Entscheidung 712 zu dem 'Nein-'Zweig, um die Schritte 716 bis 764 auszuführen. Beim Schritt 716 sichert der Prozess das Originalsystem und die Applikationskontexte. Beim Schritt 724 wählt der Prozess den Eingabetyp (Handschrift oder Geste) aus, welcher die größere Wichtung während des Verarbeitens, das in 5 gezeigt wird, empfangen hat. Beim Schritt 728 wählt der Prozess die Interaktionsschicht aus (transparente Schicht oder Applikationsschicht), welche die größere Wichtung während der Verarbeitung, die in 6 gezeigt wird, empfangen hat. Der Prozess bestimmt, ob der Eingabetyp der "Gesten-"Eingabetyp ist (Entscheidung 732). Wenn der Eingabetyp der "Gesten-"Eingabetyp ist, dann verzweigt sich die Entscheidung 732 zu dem 'Ja-'Zweig, woraufhin beim Schritt 736 der Prozess die Eingaben als Gesten verwendet, um die Interaktionsschicht auszuwählen (entweder die transparente oder die Applikationsschicht). Ist andererseits der Eingabetyp keine "Geste" (sondern anstelle dessen "Handschrift"), dann verzweigt sich die Entscheidung 732 zu dem 'Nein-'Zweig, woraufhin beim Schritt 740 der Prozess die Eingaben als Handschrift für die gewählte Interaktionsschicht (entweder die transparente oder Applikationsschicht) verwendet.
-
Beim Schritt 744 prüft der Prozess die Eingaben im Hintergrund, ohne die Ergebnisse der Eingaben, die auf dem Bildschirm zu sehen sind. Der Prozess bestimmt, ob Eingaben für ein Auswählen der Interaktionsschicht, basierend auf dem Kontext (Entscheidung 748) logisch sind. Wenn die Eingaben für die ausgewählte Interaktionsschicht basierend auf dem Kontext logisch sind, dann verzweigt sich die Entscheidung 748 zu dem 'Ja-'Zweig. Wenn die Eingaben für die ausgewählte Interaktionsschicht basierend auf dem Kontext andererseits nicht logisch sind, dann verzweigt sich die Entscheidung 748 zu dem 'Nein-'Zweig. Beim Schritt 752 löscht der Prozess die Testeingaben von dem Hintergrund. Beim Schritt 756 ändert der Prozess den Eingabetyp und/oder die Interaktionsschicht wie benötigt und testet die Eingaben erneut in dem Hintergrund durch Rückkopplung zu dem 744. Beim Schritt 760 verwendet der Prozess die getesteten Eingaben für den Vordergrund (transparente oder Applikationsschicht). Dann kehrt das Verarbeiten zu der Aufrufroutine zurück (siehe 4) bei 764.
-
Zur Entscheidung 712 zurückkehrend, wenn eine Nutzerreaktion verfügbar ist, verzweigt sich die Entscheidung 712 dann zu dem 'Ja-'Zweig, um die Schritte 768 bis 799 durchzuführen. Beim Schritt 768 verwendet der Prozess das Originalsystem und Applikationskontexte für das Gerät. Der Prozess bestimmt, ob eine Nutzerreaktion in einem Unterlassen und Widerrufen der Änderungen, die für das Gerät getätigt wurden, besteht (Entscheidung 772). Zum Beispiel könnte das Gerät konfiguriert sein, so dass, falls der Nutzer das Gerät während des vorbestimmten Zeitintervalls herumdreht, die Reaktion als ein Unterlassen und Widerrufen der Änderungen gedeutet wird. Wenn die Nutzerreaktion war, die Änderungen, die für das Gerät getätigt wurden, zu unterlassen und zu widerrufen, dann verzweigt sich die Entscheidung 772 zu dem 'Ja-'Zweig und die Verarbeitung endet bei 776.
-
Wenn die Nutzerreaktion andererseits kein Unterlassen und Widerrufen der Änderungen, die für das Gerät getätigt wurden ist, dann verzweigt sich die Entscheidung 772 zu dem 'Nein-'Zweig für ein weiteres Bearbeiten. Der Prozess bestimmt, ob eine Reaktion einen inkorrekten beabsichtigten Eingabetyp anzeigt (Entscheidung 780). Zum Beispiel kann das Gerät konfiguriert sein, so dass ein rauf und runter Schütteln des Gerätes innerhalb eines Zeitintervalls anzeigt, dass der beabsichtigte Eingabetyp inkorrekt ist. Wenn die Reaktion, die von dem Nutzer empfangen wird, einen inkorrekten beabsichtigten Eingabetyp anzeigt, dann verzweigt sich die Entscheidung 780 zu dem 'Ja-'Zweig, woraufhin beim Schritt 784 der Prozess den anderen Eingabetyp auswählt (der mit der geringeren Wichtung). Wenn andererseits die von dem Nutzer empfangene Reaktion keinen inkorrekten beabsichtigten Eingabetyp anzeigt, dann verzweigt sich die Entscheidung 780 zu dem 'Nein-'Zweig und umgeht den Schritt 784. Der Prozess bestimmt, ob eine Nutzerreaktion anzeigt, dass die identifizierte beabsichtigte Interaktionsschicht inkorrekt ist (Entscheidung 788). Zum Beispiel könnte das Gerät konfiguriert sein, so dass, wenn der Nutzer das Gerät innerhalb eines vorbestimmten Zeitintervalls von Seite zu Seite schüttelt, nachdem der kontextliche Test durchgeführt ist, die Nutzerreaktion zeigt, dass die beabsichtigte Interaktionsschicht inkorrekt ist. Wenn die Nutzerreaktion zeigt, dass die identifizierte beabsichtigte Interaktionsschicht inkorrekt ist, dann verzweigt sich die Entscheidung 788 zu dem 'Ja-'Zweig, woraufhin beim Schritt 792 die beabsichtigte Interaktionsschicht mit einer geringeren Wichtung ausgewählt wird (die andere Interaktionsschicht). Wenn andererseits die Nutzerreaktion nicht anzeigt, dass die identifizierte beabsichtigte Interaktionsschicht inkorrekt ist, dann verzweigt sich die Entscheidung 788 zu dem 'Nein-'Zweig unter Umgehung des Schrittes 792. Beim Schritt 796 verwendet der Prozess Nutzereingaben als ausgewählten Eingabetyp für die ausgewählte Interaktionsschicht, wie es durch den Nutzer angezeigt wird. Die Verarbeitung endet danach bei 799.
-
8 ist ein Flussdiagramm, das Schritte zeigt, die getätigt werden, um Nutzerreaktionen auf die Berührungsbildschirm-Eingaben, die als ein identifizierter Eingabetyp für die identifizierte Zielschicht verwendet werden, zu handhaben. Beim Schritt 805 präsentiert der Prozess dem Nutzer eine Anzeige, welche die Ergebnisse zeigt, nachdem der identifizierte Eingabetyp (Gesten oder Handschrift) auf die identifizierte Interaktionsschicht (transparente oder Applikationsschicht) angewandt wird. Der Prozess bestimmt, ob der identifizierte beabsichtigte Eingabetyp und die identifizierte beabsichtigte Interaktionsschicht beide inkorrekt sind (Entscheidung 810). Wenn sowohl der identifizierte beabsichtigte Eingabetyp als auch die identifizierte beabsichtigte Interaktionsschicht inkorrekt sind, dann verzweigt sich die Entscheidung 810 zu dem 'Ja-'Zweig, um die Schritte 815 bis 835 auszuführen.
-
Der Prozess bestimmt, ob der Vorgang zu widerrufen ist oder die Eingaben unter Verwenden eines verschiedenen Eingabetyps und einer verschiedenen Interaktionsschicht erneut zu versuchen ist (Entscheidung 815). Falls der Nutzer wünscht, den Vorgang zu widerrufen, dann verzweigt sich die Entscheidung 815 zu dem 'Ja-'Zweig, woraufhin beim Schritt 820 der Nutzer die Widerrufsreaktion ausführt (z.B. das Gerät umdreht usw.) und 8 verarbeitet danach die Rückrufroutine (siehe 4) bei 825, die anzeigt, dass der Nutzer den Vorgang zu widerrufen wünscht.
-
Wenn der Nutzer andererseits wünscht, die Eingaben unter Verwenden eines verschiedenen Eingabetyps und einer verschiedenen Interaktionsschicht zu wiederholen, dann verzweigt sich die Entscheidung 815 zu dem 'Nein-'Zweig, woraufhin beim Schritt 830 der Nutzer die Wiederholungsreaktion ausführt (z.B. das Gerät diagonal zu schütteln, um sowohl den Eingabetyp als auch die Interaktionsschicht als inkorrekt zu zeigen, usw.) und 8 verarbeitet danach eine Rückkehr zu der Aufrufroutine (siehe 4) bei 835 mit der Reaktion, die anzeigt, dass sowohl der identifizierte beabsichtigte Eingabetyp als auch die identifizierte beabsichtigte Interaktionsschicht inkorrekt waren.
-
Zur Entscheidung 810 zurückkehrend, falls sowohl der identifizierte beabsichtigte Eingabetyp als auch die identifizierte beabsichtigte Interaktionsschicht nicht inkorrekt sind, dann verzweigt sich die Entscheidung 810 zu dem 'Nein-'Zweig, um die Schritte 840 bis 870 auszuführen. Der Nutzer bestimmt, ob der identifizierte beabsichtigte Eingabetyp inkorrekt war (Entscheidung 840). Wenn der identifizierte beabsichtigte Eingabetyp inkorrekt war, dann verzweigt sich die Entscheidung 840 zu dem 'Ja-'Zweig, woraufhin beim Schritt 845 der Nutzer eine Reaktion wie ein rauf/runter Schütteln des Gerätes ausführt, um anzuzeigen, dass der identifizierte beabsichtigte Eingabetyp inkorrekt ist, und das Verarbeiten kehrt zu der Aufrufroutine (siehe 4) bei 850 mit einem Anzeichen, dass der identifizierte beabsichtigte Eingabetyp inkorrekt war, zurück.
-
Wenn andererseits der identifizierte beabsichtigte Eingabetyp korrekt ist, dann verzweigt sich die Entscheidung 840 zu dem 'Nein-'Zweig unter Umgehung des Schrittes 845. Der Nutzer bestimmt, ob die identifizierte beabsichtigte Interaktionsschicht inkorrekt ist (Entscheidung 855). Wenn die identifizierte beabsichtigte Interaktionsschicht inkorrekt ist, dann verzweigt sich die Entscheidung 855 zu dem 'Ja-'Zweig, woraufhin der Nutzer beim Schritt 860 eine Reaktion wie ein Schütteln des Gerätes von Seite zu Seite ausführt, um anzuzeigen, dass die identifizierte Interaktionsschicht inkorrekt ist, und das Verarbeiten kehrt zu der Aufrufroutine (siehe 4) bei 865 mit einer Anzeige, dass die identifizierte beabsichtigte Interaktionsschicht inkorrekt war, zurück.
-
Wenn andererseits die identifizierte beabsichtigte Interaktionsschicht korrekt ist, dann verzweigt sich die Entscheidung 855 zu dem 'Nein-'Zweig unter Umgehung des Schrittes 860 und kehrt zum Verarbeiten zur Aufrufroutine (siehe 4) bei 870 zurück, unter Anzeigen, dass sowohl die Identifizierung des beabsichtigten Eingabetyps als auch die beabsichtigte Interaktionsschicht korrekt sind. Wenn in einer Ausführungsform keine Reaktion von dem Nutzer innerhalb eines vorbestimmten Zeitintervalls (z.B. drei Sekunden usw.) empfangen wird, dann wird angenommen, dass sowohl der identifizierte beabsichtigte Eingabetyp als auch die identifizierte beabsichtigte Interaktionsschicht korrekt sind.
-
Während besondere Ausführungsformen gezeigt und beschrieben wurden, ist es für den Fachmann der Technik naheliegend, dass basierend auf den hierin vorhandenen Lehren, Änderungen und Modifikationen ohne von dieser Offenbarung und ihren breiteren Aspekten abzuweichen, ausgeführt werden können. Deshalb umfassen die anhängenden Ansprüche innerhalb ihres Rahmens alle derartigen Änderungen und Modifikationen, soweit sie innerhalb des wahren Geistes und des Schutzrahmens dieser Offenbarung liegen. Weiterhin ist es verständlich, dass die Erfindung einzig und allein durch die anhängenden Ansprüche definiert wird. Es ist für den Fachmann der Technik verständlich, wenn eine spezifische Anzahl eines eingeführten Anspruchselements beabsichtigt ist, dass eine derartige Absicht ausdrücklich in den Ansprüchen vorgetragen wird und in Abwesenheit einer derartigen Aufzählung keine derartige Begrenzung vorhanden ist. Als nicht-begrenzendes Beispiel, als Hilfe zum Verständnis enthalten die nachfolgenden Ansprüche den Gebrauch der Einleitungsausdrücke “wenigstens ein” und “eines oder mehrere”, um Anspruchselemente einzuführen. Der Gebrauch von derartigen Ausdrücken sollte jedoch nicht konstruiert sein, um zu beinhalten, dass die Einführung eines Anspruchselements durch die unbestimmten Artikel “ein” oder “eine” irgendeinen bestimmten Anspruch, der ein derartiges einführendes Anspruchselement enthält, gegenüber anderen, die nur ein derartiges Element enthalten, abzugrenzen, selbst wenn der gleiche Anspruch den einführenden Ausdruck “ein oder mehrere” oder “wenigstens einen” und unbestimmte Artikel wie “ein” oder “eine” einschließt; das Gleiche gilt für den Gebrauch von bestimmten Artikeln in den Ansprüchen.