-
ALLGEMEINER STAND DER TECHNIK
-
Computervorrichtungen (z. B. Smartphones, Tablets, Smartwatches, Aktivitätstracker, Heads-Up-Anzeigekomponenten usw.) können einen Bildschirminhalt zum Anzeigen ausgeben. Eine Computervorrichtung kann beispielsweise eine grafische Benutzerschnittstelle (GUI) ausgeben, die eine oder mehrere grafische Elemente umfasst. Die Computervorrichtung kann dem Benutzer ermöglichen, basierend auf einer Vielzahl von unterschiedlichen Eingaben, wie Einzel- und Mehrfachberührungsgesten, Spracheingabe, Zeigevorrichtungen und Tastaturen, mit Informationen in der Vorrichtung zu interagieren. Um einen Benutzer beim Finden von Informationen oder Ausführen verschiedener Aufgaben zu unterstützen, können einige Computervorrichtungen als automatisierte persönliche Assistenten arbeiten. Die Computervorrichtung kann zum Beispiel Empfehlungen ausgeben, um die Menge an erforderlichem Aufwand des Benutzers zum Lokalisieren von Informationen oder zum Ausführen von Aufgaben zu reduzieren. Einige Computervorrichtungen können jedoch Empfehlungen erzeugen, die für den Benutzer eine begrenzte Relevanz haben. In solchen Fällen muss der Benutzer eventuell zusätzlichen Aufwand aufwenden, um Informationen zu lokalisieren oder Aufgaben auszuführen.
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist ein konzeptionelles Diagramm, das ein beispielhaftes System veranschaulicht, welches eine Computervorrichtung umfasst, die einen Unterstützungshinweis basierend auf einem bestimmten Bildschirmkontext einer Anzeigekomponente gemäß einem oder mehreren Aspekten der vorliegenden Offenbarung bereitstellt.
-
2 ist ein Blockdiagramm, das eine beispielhafte Computervorrichtung gemäß einem oder mehreren Aspekte der vorliegenden Offenbarung veranschaulicht.
-
3 ist ein Blockdiagramm, das eine beispielhafte Computervorrichtung veranschaulicht, die Bildschirminhalt zum Anzeigen auf einer Remote-Vorrichtung gemäß einer oder mehrerer Techniken der vorliegenden Offenbarung ausgibt.
-
4 ist ein konzeptionelles Diagramm, das ein beispielhaftes System veranschaulicht, welches eine Servervorrichtung umfasst, die einen Unterstützungshinweis basierend auf einem bestimmten Bildschirmkontext einer Remote-Anzeigekomponente gemäß einem oder mehreren Aspekten der vorliegenden Offenbarung bereitstellt.
-
5 ist ein Flussdiagramm, das beispielhafte Operationen einer Computervorrichtung veranschaulicht, die Techniken zum Bestimmen eines Unterstützungshinweises gemäß einem oder mehreren Aspekten der vorliegenden Offenbarung implementiert.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Diese Offenbarung ist im Allgemeinen an Techniken zum Ausgeben von Unterstützungshinweisen an einen Benutzer basierend auf einem Bildschirmkontext einer grafischen Benutzerschnittstelle, die durch eine Anzeigekomponente angezeigt wird, gerichtet. Eine Computervorrichtung kann beispielsweise Bildschirmkontextdaten extrahieren oder anderweitig bestimmen, die den gegenwärtigen Bildschirminhalt der Anzeigekomponente reflektieren, und einen oder mehrere Unterstützungshinweise zum Verkünden basierend auf den Bildschirmkontextdaten erzeugen. Durch Erfassen von Bildschirmkontextdaten von Bildschirminhalt, der für den Benutzer unmittelbar sichtbar ist, können Techniken der Offenbarung die Relevanz von Unterstützungshinweisen, die ausgegeben werden, verbessern. Da an der Anzeigekomponente angezeigter Inhalt das Hauptaugenmerk des Benutzers sein kann, kann die Verwendung solch eines Inhalts die kontextabhängige Relevanz von Unterstützungshinweisen verbessern.
-
Im Betrieb kann die Computervorrichtung ein Modul umfassen, das mit Betriebssystemprivilegien ausführt und eine Ansichtshierarchie einer Anwendung durchläuft, um zu bestimmen, welche bestimmte Ansicht der Anwendung mit in der grafischen Benutzerschnittstelle erforderlichem Inhalt verknüpft ist. Die Computervorrichtung kann alternativ einen Screenshot der grafischen Benutzerschnittstelle erfassen und Bildschirmkontextdaten durch Ausführen einer Bildanalyse des Screenshots bestimmen. Die Computervorrichtung kann bei einigen Beispielen ein oder mehrere Benutzerschnittstellenelemente der grafischen Benutzerschnittstelle bewerten, um entsprechende Werte für die Elemente zu bestimmen, welche die Computervorrichtung als Kontextdaten verwenden kann. Durch Bestimmen der Kontextdaten basierend auf Bildschirminhalt der grafischen Benutzerschnittstelle kann eine Computervorrichtung relevantere Empfehlungen erzeugen und/oder wahrscheinlichere nächste Aktionen für einen Benutzer bestimmen. Techniken der Offenbarung können daher die Notwendigkeit eines Anwendungsentwicklers, explizit kontextabhängige Daten in die Anwendung selbst zu codieren, damit diese verwendet werden, um Unterstützungshinweise zu erzeugen, reduzieren oder eliminieren. Auf diese Weise können Techniken der Offenbarung eine generalisierte Herangehensweise zum Erlangen kontextabhängiger Daten von irgendeiner grafischen Benutzerschnittstelle, die zum Anzeigen ausgegeben wird, bereitstellen.
-
1 ist ein konzeptionelles Diagramm, das ein beispielhaftes System veranschaulicht, welches eine Computervorrichtung umfasst, die einen Unterstützungshinweis basierend auf dem bestimmten Bildschirmkontext einer Anzeigekomponente gemäß einem oder mehreren Aspekten der vorliegenden Offenbarung bereitstellt. Basierend mindestens teilweise auf Kontextdaten, die von Inhalt bestimmt sind, der in einer grafischen Benutzerschnittstelle zum Anzeigen auf einem Vordergrund oder einem vom Benutzer ausgewählten Ort einer Anzeigekomponente beinhaltet ist, kann eine Computervorrichtung wie nachfolgend weiter beschrieben einen Unterstützungshinweis bestimmen, der kontextuell mit dem in der grafischen Benutzerschnittstelle beinhalteten Inhalt in Zusammenhang steht.
-
Wie in 1 gezeigt umfasst das System 102 die Computervorrichtung 104. Im Beispiel von 1 ist die Computervorrichtung 104 als ein Mobiltelefon beschrieben. Bei einigen Beispielen kann die Computervorrichtung 104 jedoch eine computerisierte Uhr (z. B. eine Smartwatch), eine computerisierte Brille, computerisierte Kopfbedeckung, andere Arten von tragbaren Computervorrichtungen, ein Tablet-Computer, ein Personal Digital Assistant (PDA), ein Laptop, ein Spielesystem, ein Mediaplayer, ein E-Book-Reader, eine Fernsehplattform, ein Navigationssystem eines Kraftfahrzeugs, eine Digitalkamera oder irgendeine andere Art einer mobilen- und/oder nicht mobilen Computervorrichtung sein, die zum Steuern einer Anzeigekomponente konfiguriert ist. Wie später beschrieben wird, kann die Anzeigekomponente in der Computervorrichtung 104 fest eingebaut sein oder sich entfernt davon befinden.
-
Bei dieser Ausführungsform umfasst die Computervorrichtung 104 die Anzeigekomponente 106, eine oder mehrere Anwendungen 108, das Hilfsmodul 110 und Kontextmodul 111. Die Module 108, 110 und 111 können die hierin beschriebenen Operationen unter Verwendung von Software, Hardware, Firmware oder einer Mischung aus Hardware, Software und/oder Firmware ausführen, die sich darin befindet, und/oder bei der Computervorrichtung 104 ausführt. Die Computervorrichtung 104 kann die Module 108, 110 und 111 mit einem oder mehreren Prozessoren ausführen. Die Computervorrichtung 104 kann bei einigen Beispielen die Module 108, 110 und 111 als eine oder mehrere virtuelle Maschinen ausführen, die auf darunterliegender Hardware der Computervorrichtung 104 laufen. Die Module 108, 110 und 111 können als ein oder mehrere Dienste oder Komponenten von Betriebssystemen oder Computerplattformen der Computervorrichtung 104 ausgeführt werden. Die Module 108, 110 und 111 können als eine oder mehrere ausführbare Programme auf Anwendungsebenen von Computerplattformen der Computervorrichtung 104 mit den Betriebssystemprivilegien oder mit Zugriff auf eine Laufzeitbibliothek der Computervorrichtung 104 ausgeführt werden. Die Anzeigekomponente 106, die Anwendungen 108 und/oder die Module 110 und 111 können bei einigen Beispielen entfernt angeordnet und der Computervorrichtung 104 zum Beispiel über Interaktion durch die Computervorrichtung 104 mit einer oder mehreren entfernten Netzwerkvorrichtungen von der Ferne zugänglich sein.
-
Die Anzeigekomponente 106 der Computervorrichtung 104 kann entsprechende Eingabe- und/oder Ausgabekomponenten für die Computervorrichtung 104 umfassen. Die Anzeigekomponente 106 kann bei einigen Beispielen als Eingabekomponente unter Verwendung einer präsenzsensitiven Eingabekomponente, wie einem Widerstandstouchscreen, einem Akustikoberflächenwellen-Touchscreen, einem kapazitiven Touchscreen, einem projizierenden kapazitiven Touchscreen, einem druckempfindlichen Bildschirm, einem akustischen Pulserkennungs-Touchscreen oder einer anderen Anzeigekomponententechnologie arbeiten. Die Anzeigekomponente 106 kann auch eine Anzeigekomponente umfassen, die Inhalt in einer grafischen Benutzerschnittstelle gemäß einer oder mehreren Techniken der gegenwärtigen Offenbarung ausgeben kann, wie beispielsweise eine Flüssigkristallanzeige (LCD), eine Punktmatrixanzeige, eine Leuchtdioden-(LED)-Anzeige, eine organische Leuchtdioden-(OLED)-Anzeige, E-Druckfarben- oder ähnliche Monochrom- oder Farbanzeigen, die fähig sind, an einen Benutzer der Computervorrichtung 104 sichtbare Informationen auszugeben.
-
Die präsenzsensitive Eingabekomponente der Anzeigekomponente 106 empfängt bei einigen Beispielen eine taktile Eingabe von einem Benutzer der Computervorrichtung 104. Die präsenzsensitive Eingabekomponente der Anzeigekomponente 106 kann Hinweise auf eine taktile Eingabe durch Detektieren von einer oder mehreren Gesten von einem Benutzer empfangen (z. B. indem der Benutzer auf einen oder mehrere Orte der Anzeigekomponente 106 mit einem Finger oder einem Tablettstift zeigt oder diese berührt). Eine Anzeigekomponente der Anzeigekomponente 106 kann einem Benutzer eine Ausgabe darstellen. Die Anzeigekomponente der Anzeigekomponente 106 kann die Ausgabe als eine grafische Benutzerschnittstelle darstellen (z. B. eine Benutzerschnittstelle zum Ansehen einer Benachrichtigung basierend auf Benachrichtigungsdaten), die mit Funktionalität verknüpft sein kann, die durch die Computervorrichtung 104 bereitgestellt wird. Die Anzeigekomponente der Anzeigekomponente 106 kann beispielsweise verschiedene Benutzerschnittstellen darstellen, die mit der Funktionalität von Computerplattformen, Betriebssystemen, Anwendungen und/oder Diensten in Zusammenhang stehen, die durch die Computervorrichtung 104 ausgeführt werden oder durch diese zugänglich sind (z. B. Benachrichtigungsdienste, elektronische Nachrichtenanwendungen, Internetbrowseranwendungen, mobile oder Desktopbetriebssysteme usw.). Ein Benutzer kann mit einer Benutzerschnittstelle interagieren, die auf der Anzeigekomponente 106 dargestellt ist, um die Computervorrichtung 104 zu veranlassen, Operationen im Zusammenhang mit Funktionen auszuführen.
-
Wie in 1 gezeigt kann die Computervorrichtung 104 eine oder mehrere Anwendungen 108A bis 108C umfassen, die in der Anwendungsliste 118 durch das Kontextmodul 111 organisiert oder anderweitig strukturiert sein können. Die Anwendungsliste 118 kann eine Liste, eine Warteschlange, eine Sammlung usw. der Anwendungen 108 sein. Die Anwendungsliste 118 kann bei einigen Beispielen den Anwendungen eine Reihenfolge auferlegen, in der diese zum Anzeigen durchiteriert sein können. Um zu bestimmen, welche Anwendungen gegenwärtig aktiv und/oder im Speicher gespeichert sind (und in der Anwendungsliste 118 beinhaltet sind), kann das Kontextmodul 111 in einem Benutzerraum ausgeführt werden und kann auf eine Komponente eines Betriebssystems auf der Computervorrichtung 104 wie eine Prozesstabelle oder einen Scheduler zugreifen. Das Kontextmodul 111 kann bei anderen Beispielen als eine Komponente innerhalb des Betriebssystems beinhaltet sein. Bei noch weiteren Beispielen kann das Kontextmodul 111 ein separates Managermodul abfragen, das die Anwendungsliste 118 verwaltet, um eine Vordergrundanwendung von der Anwendungsliste 118 zu bestimmen. Eine laufende Anwendung 108 kann eine Ansichtshierarchie 130 erzeugen und modifizieren, die verwendet wird, um mindestens einen Teil der grafischen Benutzerschnittstelle zu steuern, die von der Anzeige 106 angezeigt wird.
-
Das Kontextmodul 111 kann eine Ansichtshierarchie für jede laufende Anwendung 108 analysieren, wobei die Ansichtshierarchie als eine Liste oder eine andere geeignete Datenstruktur implementiert sein kann. Jede Ansichtshierarchie kann eine Reihe von Referenzen für jedes Element eines bestimmten Bildschirms einer grafischen Benutzerschnittstelle umfassen. Eine Ansichtshierarchie einer Anwendung kann zum Beispiel eine Referenz auf ein Textansichtsobjekt umfassen, das Anzeigetext derart anzeigt, dass verschiedene Eigenschaften (z. B. Ansichtsobjektbezeichner, Ansichtsobjektanordnung usw.) des Textansichtobjekts für das Kontextmodul 111 zugänglich sind. Zum Veranschaulichen kann ein Benutzer mit einer ersten Anwendung 108A, die gegenwärtig eine erste grafische Benutzerschnittstelle rendert, interagieren. Der Benutzer kann dann eine erste Aktion ausführen und die erste Anwendung 108A spricht durch Rendern eines unterschiedlichen Bildschirms an.
-
Gemäß einer oder mehrerer Techniken der gegenwärtigen Offenbarung kann die Anzeigekomponente 106 der Computervorrichtung 104 die grafische Benutzerschnittstelle 112 wie durch die Anwendung 108A gesteuert ausgeben, die in den Anwendungen 108 beinhaltet ist. Die Anwendung 108A ist in der Reihe der Anwendungen 108 in der Anwendungsliste 118 der Computervorrichtung 104 beinhaltet. Zur Veranschaulichung kann im Beispiel von 1 die Anzeigekomponente 106 der Computervorrichtung 104 die grafische Benutzerschnittstelle 112 ausgeben, die vom Benutzer angeforderte Informationen über Restaurants, Bars oder Ereignisse zeigen kann. Im Beispiel von 1 umfasst die grafische Benutzerschnittstelle 112 Informationen über das Restaurant Allison's Bistro, das sich bei 1234 Crunch Street in Nashville Tennessee befindet. Auf der grafischen Benutzerschnittstelle 112 befindet sich auch eine Werbung für ein Konzert von Miranda Lambert, das diesen Samstag stattfindet.
-
Das Kontextmodul 111 der Computervorrichtung 104 kann die grafische Benutzerschnittstelle 112 für die Anzeigekomponente 106 analysieren. Dabei kann das Kontextmodul 111 auf die Ansichtshierarchie 130 zugreifen. Das Kontextmodul 111 kann wie vorstehend angegeben mit Betriebssystemprivilegien arbeiten oder in eine Laufzeitbibliothek der Computervorrichtung 104 implementiert sein oder darauf Zugriff haben, die dem Kontextmodul 111 ermöglicht, auf die Ansichtshierarchie 130 zuzugreifen und Informationen bezüglich Ansichtsobjekten zu empfangen, die Teil der gegenwärtig angezeigten grafischen Benutzerschnittstelle 112 sind. Bei einigen Beispielen können Ansichtsobjekte jedes Element sein, das zum Anzeigen durch eine Computervorrichtung ausgegeben wird. Beispiele von Ansichtsobjekten können neben anderen Eigenschaften umfassen, sind aber nicht beschränkt auf, Textinformationen, Bildinformationen, Frameinformationen, lineare Informationen, Strukturinformationen oder Tasteninformationen. Im Beispiel von 1 bestimmt das Kontextmodul 111 von der Ansichtshierarchie 130, dass es drei wesentliche Inhalte gibt: Inhalt 114A (von einem Ansichtsobjekt genannt „Restaurant_Name_Text“), Inhalt 114B (von einem Ansichtsobjekt genannt „Restaurant_Addresse_Text“) und Inhalt 114C (von einem Ansichtsobjekt genannt „Event_Information_Text“). Obwohl jeder der Inhalte 114A–114C als Text gezeigt ist, kann das darunterliegende Ansichtsobjekt für den Inhalt 114A–114C irgendeine Art von Objekt wie vorstehend beschrieben sein und kann Nichttextinhalt, Textinhalt oder beides enthalten.
-
Ansprechend auf das Bestimmen, dass die grafische Benutzerschnittstelle 112 der Anwendung 108A zum Anzeigen im Vordergrund der Anzeigekomponente 106 ausgegeben wird, kann das Kontextmodul 111 der Computervorrichtung 104 Kontextdaten von dem Inhalt 114A bis 114C bestimmen, der in der grafischen Benutzerschnittstelle 112 beinhaltet ist, und kann optional damit in Zusammenhang stehende Ansichtsobjekteigenschaften verwenden, um zusätzliche Kontextdaten vom Inhalt 114A bis 114C zu bestätigen oder zu extrahieren. Im Beispiel von 1 kann das Kontextmodul 111 Kontextdaten für jedes der drei Ansichtsobjekte bestimmen. Das Kontextmodul 111 kann beispielsweise bestimmen, dass der Inhalt 114A einen Namen eines Restaurants umfasst. Das Kontextmodul 111 kann bestimmen, dass der Inhalt 114B eine Adresse umfasst. Das Kontextmodul 111 kann weiter bestimmen, dass der Inhalt 114C einen Eigennamen und ein Datum umfasst.
-
Das Hilfsmodul 110 der Computervorrichtung 104 kann, basierend mindestens teilweise auf den vorstehend bestimmten Kontextdaten einen Unterstützungshinweis bestimmen, der kontextuell mit dem Inhalt 114A bis 114C in Zusammenhang steht, der in der grafischen Benutzerschnittstelle 112 beinhaltet ist. Ein Unterstützungshinweis kann bei einigen Beispielen eine mögliche durchzuführende Aktion sein basierend mindestens teilweise auf den Kontextdaten und dem Inhalt. Ein Unterstützungshinweis kann bei einigen Beispielen zusätzliche Informationen sein, die nicht nur für die Kontextdaten des Inhalts des angezeigten Bildschirms relevant sind, sondern auch für irgendwelche darunterliegenden Ansichtsobjekteigenschaften. Beispiele für einen Unterstützungshinweis können umfassen, sind aber nicht beschränkt auf, Rezensionen basierend auf dem Textinhalt 114A und insbesondere Restaurantrezensionen basierend auf dem Textinhalt 114A, die das Wort „Bistro“ enthalten, und/oder der damit in Zusammenhang stehende Ansichtsobjektname „Restaurant_Name_Text“, eine Reservierung für den Textinhalt 114A, basierend auf dem Textinhalt 114A, der das Wort „Bistro“ enthält, und/oder den damit in Zusammenhang stehenden Ansichtsobjektnamen „Restaurant_Name_Text“, Informationen für den Textinhalt 114C und insbesondere Ticketinformationen, basierend auf dem damit damit in Zusammenhang stehenden Ansichtsobjektnamen „Event_Information_Text“, ein Herbeirufen eines Taxis oder Beförderungsmittels, um einen Benutzer zu einem Ort zu bringen basierend auf dem Textinhalt 114B, der auf dem Textinhalt 114C basiert, der als eine Adresse formatiert ist, und/oder der damit in Zusammenhang stehende Ansichtsobjektname „Restaurant_Addresse_Text“, eine Wegbeschreibung zu einem Ort basierend auf dem Textinhalt 114B, ein Ereignis für einen Kalender basierend auf dem Textinhalt 114C des Ereignisanzeigeobjekts oder Suchergebnisse für irgendein Text- oder Bildansichtsobjekt, um nur einige zu nennen.
-
Zur weiteren Veranschaulichung reflektiert in 1 der Inhalt 114A Text für ein Ansichtsobjekt, das anzeigt, dass es sich um einen Restaurantnamen handelt. Auf dieser Art Ansichtsobjekt sowie seinem Inhalt basierend, kann das Hilfsmodul 110 verschiedene Formen der Unterstützung bestimmen, die ein Benutzer mögen oder nützlichen finden kann, einschließlich zu einer Webseite zu gehen, um eine Reservierung bei dem Restaurant vorzunehmen oder sich das Menü des Restaurants anzusehen. Da das Ansichtsobjekt anzeigt, dass „Allison's Bistro“ ein Restaurantname anstatt eines Filmnamens ist, ist zu beachten, dass das Hilfsmodul 110 die zusätzlichen Kontextdaten verwenden kann, um zu bestätigen, dass „Bistro“ als Teil von „Allison's Bistro“ ein Restaurant bezeichnet. Wenn der Name des Ansichtsobjekts für den Inhalt 114A „Film_Name_Text“ wäre, könnte das Hilfsmodul 110 einen Filmvorstellungsbeginnhinweis zusätzlich zu oder anstelle eines Restaurantreservierungshinweises bereitstellen. Bei einem weiteren Beispiel reflektiert der Inhalt 114B Text für ein Ansichtsobjekt, das anzeigt, dass es eine Adresse eines Restaurants ist. Basierend auf diesem Typ von Inhalt und Kontext kann das Hilfsmodul 110 bestimmen, dass der Benutzer eine Wegbeschreibung zu der Adresse oder Anweisungen zum Anfordern eines Taxis brauchen kann, um ihn zu diesem Ort zu bringen. Als ein Gegenbeispiel, wenn der Name des Ansichtsobjekts für den Inhalt 114B „Film_Addresse_Text“ wäre, könnte das Hilfsmodul 110 einen Hinweis mit dem Beginn von Filmvorstellungen bei der Adresse bereitstellen, der auf der Anzeigekomponente 106 zusätzlich zu oder anstelle einer Navigation oder eines Hinweises für eine Taxianforderung gezeigt wird. Bei noch einem weiteren Beispiel reflektiert der Inhalt 114C Text für ein Ansichtsobjekt mit Ereignisinformationen. Basierend auf diesem Inhaltstyp kann das Hilfsmodul 110 bestimmen, dass der Benutzer wahrscheinlich zu einer Ticketkaufwebseite geht oder gehen möchte, um eine Verfügbarkeit von Tickets für das Ereignis zu prüfen. Basierend auf dem Inhaltstyp kann das Hilfsmodul 110 einen Unterstützungshinweis für einen oder mehrere der wesentlichen Inhalte 114A bis 114C bestimmen.
-
Das Hilfsmodul 110 kann die Anzeigekomponente 106 der Computervorrichtung 104 verwenden, um die Unterstützungshinweise auszugeben. Der Unterstützungshinweis kann in jeder geeigneten Form zur Darstellung erfolgen, wie einer Überlagerung auf dem Bildschirm, einer Überlagerung nahe dem Inhalt auf dem Bildschirm, einem Pop-Up-Fenster innerhalb der grafischen Benutzerschnittstelle oder eines Audiohinweises, um nur einige Beispiele zu nennen. Beispielsweise kann wie vorstehend beschrieben das Hilfsmodul 110 einen Unterstützungshinweis 116 erzeugen oder verkünden basierend auf dem Inhalt 114A, der ein Benutzerschnittstellenelement umfasst, das an der Oberkante der grafischen Benutzerschnittstelle 112 überlagert ist, das einen Link zu einer Webseite umfasst, die dem Benutzer ermöglicht, basierend auf dem Textinhalt des Restaurantnamens vorzubestellen. Interagierend mit dem Unterstützungshinweis 116 kann eine Reservierungsanwendung starten, eine Internetsurfanwendung für die Webseite des Restaurants starten oder das Hilfsmodul 110 kann eine Reservierungsanforderungsnachricht direkt an das Restaurant senden, wie beispielsweise zu dem Remote-Server des Restaurants. Bei einem weiteren Beispiel kann das Hilfsmodul 110 einen Unterstützungshinweis für den Inhalt 114B erzeugen oder verkünden, der ein Benutzerschnittstellenelement umfasst, das den Inhalt 114B hervorhebt oder umgibt, und das bei Auswahl eine Taxianwendung startet, um ein Fahrzeug anzufordern, um den Benutzer zu der Adresse von Inhalt 114B zu bringen. Bei noch einem weiteren Beispiel kann das Hilfsmodul 110 einen Unterstützungshinweis für den Inhalt 114C erzeugen oder verkünden, der ein Benutzerschnittstellenelement umfasst, das den Inhalt 114C hervorhebt oder umgibt, und das bei Auswahl eine Kalenderanwendung startet, um das Ereignis in den elektronischen Kalender des Benutzers aufzunehmen.
-
Ein Benutzer kann eine Ausgabe des Hilfsmoduls 110 auf vielerlei Arten anfordern. Als Beispiele kann der Benutzer eine Taste drücken, eine Berührungsgeste wie ein langes Drücken ausführen oder einen Sprachbefehl bereitstellen, um Hilfsmodulhinweise anzufordern. Der Benutzer kann auch spezifizieren, welche Anwendung und optional welchen Inhalt das Inhaltsmodul 111 auf Kontextdaten überprüfen sollte, indem er beispielsweise eine Taste drückt, um durch laufende Anwendungen durchzugehen, indem er die anfängliche Berührungsgeste fortsetzt durch Ziehen und Abheben von einem ausgewählten Fenster oder einem Inhalt, indem er eine zweite Berührungsgeste durch Tippen innerhalb eines ausgewählten Fensters oder auf einem Inhalt ausführt oder einen Sprachbefehl bereitstellt, der die angeforderte Anwendung oder den Teil des Inhaltes anzeigt, einschließlich des Verwendens eines Fürworts wie „das“ oder „es“, um eine Anwendung oder einen Inhalt auf der grafischen Benutzerschnittstelle 112 anzuzeigen. Das Hilfsmodul 110 kann anfordern, dass andere Module der Computervorrichtung 104 eine Suche nach Informationen ausführen, die einen Benutzer beim Abschließen der gefolgerten Aktion oder Aufgabe unterstützen können. Das Hilfsmodul 110 kann die Informationen an die anderen Module zum Abschließen der Aufgabe bereitstellen, oder das Ausführen der Aktion an eine oder mehrere andere Computervorrichtungen zur Darstellung für einen Benutzer (z. B. als Benutzerschnittstelle einer vernetzten Computervorrichtung) delegieren.
-
Eine Benutzer-„Notwendigkeit“ im Sinne dieser Schrift kann als ein semantisch gruppiertes Muster von Benutzeraktionen in einem gegebenen Kontext definiert werden basierend auf Beobachtungen durch ein System von Benutzeraktionen (z. B. in Aktionsprotokollen wie Suchhistorien, Kaufhistorien, Anwendungsverwendungshistorien und andere kontextabhängigen Historien). Zu beachten ist, dass dies einfach eine beispielhafte Definition zur Vereinfachung der Erörterung des Modells ist, das von dem Hilfsmodul 110 verwendet wird. Durch diese beispielhafte Definition können daher die Aufgaben oder Aktionen nicht zwangsläufig Notwendigkeiten sein, sondern beobachtete vorgenommene Aktionen, oder ausgeführte Aufgaben können vielmehr ein Proxy sein, durch welches das Hilfsmodul 110 die allgemeineren Notwendigkeiten von Benutzern von Computervorrichtungen 104 schlussfolgern kann.
-
Zusammenfassend kann das Hilfsmodul 110 eine oder mehrere Maschinenlerntechniken ausführen, um die Notwendigkeiten von Benutzern der Computervorrichtung 104 für unterschiedliche Kontexte zu lernen. Da das Hilfsmodul 110 unfähig sein kann, die Notwendigkeiten von Benutzern der Computervorrichtung 104 durch die ausgeführten Anwendungen direkt zu lernen, modelliert mit anderen Worten das Hilfsmodul 110 Benutzernotwendigkeiten. Das Hilfsmodul 110 kann kontextabhängige Informationen vom Kontextmodul 111 empfangen und diese Informationen als Eingaben an das Modell zum Trainieren des Modells bereitstellen, um die Notwendigkeiten von Benutzern für gegebene Kontexte zu lernen. Nach dem Trainieren kann das Modell einen bestimmten Kontext als eine Eingabe empfangen und als Antwort einen Hinweis (z. B. Daten) ausgeben, die auf eine oder mehrere Tasks, Aktionen oder andere beobachtbare Handlungen hinweist, die zuvor von anderen Benutzern für den bestimmten Kontext ausgeführt wurden. Das Hilfsmodul 110 kann den gegenwärtigen Kontext der Computervorrichtung 104 in ein Modell eingeben, den das Hilfsmodul 110 verwendet, um eine oder mehrere Aktionen zu schlussfolgern, die typischerweise von anderen Benutzern der Computervorrichtung 104 bei ähnlichen Kontexten ausgeführt werden. Einfach ausgedrückt kann das Hilfsmodul 110 bestimmen, ob ein Grad an Wahrscheinlichkeit (z. B. eine Wahrscheinlichkeit, eine Zählung usw.), dass die Aufgabe für den bestimmten Kontext ausgeführt wird, einen Grad an Wahrscheinlichkeit, dass die Aufgabe für einen breiteren Kontext ausgeführt wird, ausreichend aufwiegt. Auf diese Weise kann das Hilfsmodul 110 nur Informationen ausgeben müssen, wenn die Aufgabe aus dem Rahmen fällt oder anderweitig für eine bestimmte Situation einzigartig ist.
-
Während die Techniken von 1 in Bezug auf eine oder mehrere Operationen auf der Computervorrichtung 104 beschrieben wurden, können eine oder mehrere Operationen des Hilfsmoduls 110 auf einem Remote-Server ausgeführt werden. Das Kontextmodul 111 kann die kontextabhängigen Daten an den Remote-Server senden, der mögliche Unterstützungshinweise bestimmt, die dann an das Hilfsmodul 110 gesendet werden, das dafür verantwortlich ist, die Resultate zu formatieren und die Resultate an den Bildschirm in einer bestimmten Form (wie einer Überlagerung) auszugeben.
-
Durch das Bestimmen des Kontexts kann basierend auf dem Inhalt der auf der Anzeigekomponente angezeigten grafischen Benutzerschnittstelle eine Computervorrichtung Empfehlungen über wahrscheinliche nächste Aktionen für einen Benutzer geben, ohne sich darauf zu verlassen, dass Anwendungsentwickler explizit kontextabhängige Informationen von der Anwendung bereitstellen. Auf diese Weise können Techniken der Offenbarung mobile Vorrichtungen mit dem Vermögen ausstatten, wahrscheinliche nächste Aktionen zu bestimmen und Unterstützungshinweise für jede Anwendung bereitzustellen, welche die Computervorrichtung ausführen kann, ohne zu erfordern, dass Anwendungsentwickler irgendeinen zusätzlichen Code einschließen, was den Code der auf der Computervorrichtung ausführenden Anwendungen vereinfacht. Durch Extrahieren von Textinformationen und/oder Bildinformationen aus dem Bildschirm, der durch die Anwendung angezeigt wird, stellen Techniken dieser Offenbarung den Inhalt an ein Hilfsmodul bereit, das den Kontext verwendet, um Unterstützungshinweise bezüglich potenzieller nächster Aktionen eher darauf basierend bereitzustellen, was die grafische Benutzerschnittstelle 112 angezeigt hat, als darauf, was der Anwendungsentwickler explizit über feste Programmierung von kontextabhängigen Informationen bereitgestellt hat. Durch Bereitstellen von Funktionalität an die Computervorrichtung zum Bestimmen von Inhalt und Bereitstellen von Kontext wird das Anwendungscodieren vereinfacht und es kann Unterstützung universell über primäre Entwickleranwendungen und Anwendungen von Drittanbietern auf eine zuverlässige Art bereitgestellt werden. Weiter können Techniken dieser Offenbarung ermöglichen, dass eine Unterstützung für Bildschirminhalt, der zum Anzeigen ausgegeben wird, verallgemeinerungsfähiger ist.
-
In der Offenbarung sind Beispiele beschrieben, in denen eine Computervorrichtung und/oder ein Computersystem Informationen (z. B. Standorte, Geschwindigkeiten usw.), die mit einer Computervorrichtung verknüpft sind, analysiert, wenn die Computervorrichtung eine Erlaubnis vom Benutzer zum Analysieren der Informationen empfängt. So wird dem Benutzer in den nachfolgenden beschriebenen Situationen, in denen das Computergerät möglicherweise mit dem Benutzer verknüpfte Informationen sammelt oder verwendet, unter Umständen eine Möglichkeit gegeben, eine Eingabe zu machen, um zu steuern, ob Programme oder Funktionen des Computergeräts Benutzerinformationen (wie z. B. Informationen zum aktuellen Standort des Benutzers, die aktuelle Geschwindigkeit usw.) sammeln und verwenden dürfen, oder um festzulegen, ob und/oder wie das Computergerät Inhalte empfangen kann, die möglicherweise für den Benutzer relevant sind. Außerdem können bestimmte Daten auf eine oder mehrere Arten behandelt werden, bevor sie durch die Computervorrichtung und/oder das Computersystem gespeichert oder verwendet werden, sodass personenbezogene Informationen entfernt sind. Eine Benutzeridentität kann beispielsweise so behandelt werden, dass keine persönlichen identifizierbaren Informationen über den Benutzer bestimmt werden können, oder ein Standort des Benutzers kann verallgemeinert werden, wobei Standortinformationen entnommen werden (wie beispielsweise eine Stadt, Postleitzahl oder Bundesland), sodass ein bestimmter Standort eines Benutzers nicht festgestellt werden kann. Daher kann der Benutzer Kontrolle darüber haben, wie Informationen über den Benutzer gesammelt und von der Computervorrichtung benutzt werden.
-
2 ist ein Blockdiagramm, das eine beispielhafte Computervorrichtung gemäß einem oder mehreren Aspekten der vorliegenden Offenbarung veranschaulicht. 2 veranschaulicht nur ein bestimmtes Beispiel der Computervorrichtung 204 und viele andere Beispiele der Computervorrichtung 204 können in anderen Fällen verwendet werden.
-
Wie im spezifischen Beispiel von 2 gezeigt, umfasst die Computervorrichtung 204 einen oder mehrere Prozessoren 205, eine oder mehrere Eingabekomponenten 220, eine oder mehrere Kommunikationseinheiten 222, eine oder mehrere Ausgabekomponenten 224, eine oder mehrere Speichervorrichtungen 230, einen oder mehrere Sensoren 226 und die Anzeigekomponente 206. Die Computervorrichtung 204 im Beispiel von 2 umfasst die Anwendungsliste 208, das Hilfsmodul 210, das Kontextmodul 211, die Laufzeitbibliotheken 232, das Betriebssystem 234 und das I/O-Modul 236. Jede der Komponenten 205, 206, 220, 222, 224 und 226 kann (physisch, kommunikativ und/oder wirkend) für Kommunikationen zwischen den Komponenten miteinander verbunden sein. In einigen Beispielen können die Kommunikationskanäle 228 einen Systembus, eine Netzwerkverbindung, eine prozessübergreifende Kommunikationsdatenstruktur oder irgendeinen anderen Kanal zur Datenkommunikation beinhalten. Als ein Beispiel in 2 können die Komponenten 205, 206, 220, 222, 224 und 226 durch einen oder mehrere Kommunikationskanäle 228 gekoppelt sein. Die Anwendungsliste 208, das Hilfsmodul 210, das Kontextmodul 211, die Laufzeitbibliotheken 232, das Betriebssystem 234 und das I/O-Modul 236 können auch Informationen untereinander wie auch mit anderen Komponenten in der Computervorrichtung 204 kommunizieren.
-
Die Prozessoren 205 sind bei einem Beispiel konfiguriert, Funktionalität zu implementieren und/oder Prozessanweisungen für die Ausführung innerhalb der Computervorrichtung 204 auszuführen. Die Prozessoren 205 können zum Beispiel in der Lage sein, Befehle zu verarbeiten, die in der Speichervorrichtung 230 gespeichert sind. Beispiele der Prozessoren 205 können eines oder mehrere von einem Mikroprozessor, einem Controller, einem digitalen Signalprozessor (DSP), einer anwendungsorientierten integrierten Schaltung (ASIC), einem feldprogrammierbaren Gate-Array (FPGA) oder einer gleichwertigen integrierten oder diskreten Logikschaltung beinhalten.
-
Eine oder mehrere Speichervorrichtungen 230 können zum Speichern von Informationen innerhalb der Computervorrichtung 204 während des Betriebs konfiguriert sein. Die Speichervorrichtung 230 ist bei einigen Beispielen als ein computerlesbares Speichermedium beschrieben. In einigen Beispielen ist die Speichervorrichtung 230 ein temporärer Speicher, was bedeutet, dass der Hauptzweck der Speichervorrichtung 230 nicht die Langzeitspeicherung ist. Die Speichervorrichtung 230 ist bei einigen Beispielen als flüchtiger Speicher beschrieben, was bedeutet, dass die Speichervorrichtung 230 keine gespeicherten Inhalte aufrechterhält, wenn die Computervorrichtung ausgeschaltet ist. Beispiele von flüchtigen Speichern beinhalten Arbeitsspeicher (RAM), dynamische Arbeitsspeicher (DRAM), statische Arbeitsspeicher (SRAM) und andere Formen von flüchtigen Speichern, die auf dem Fachgebiet bekannt sind. Bei einigen Beispielen wird die Speichervorrichtung 230 verwendet, um Programmbefehle zur Ausführung durch die Prozessoren 205 zu speichern. Die Speichervorrichtung 230 wird bei einem Beispiel von Software oder Anwendungen verwendet, die auf der Computervorrichtung 204 laufen (z. B. die Anwendungsliste 208), um vorübergehend Informationen während der Programmausführung zu speichern.
-
Die Speichervorrichtungen 230 umfassen bei einigen Beispielen auch ein oder mehrere computerlesbare Speichermedien. Die Speichervorrichtungen 230 können konfiguriert sein, größere Datenmengen zu speichern als flüchtiger Speicher. Die Speichervorrichtungen 230 können weiter für die Langzeitspeicherung von Informationen konfiguriert sein. In einigen Beispielen beinhalten die Speichervorrichtungen 230 nicht flüchtige Speicherelemente. Beispiele von derartigen nicht flüchtigen Speicherelementen beinhalten magnetische Festplatten, optische Festplatten, Disketten, Flashspeicher oder Formen von elektrisch programmierbaren Speichern (EPROM) oder von elektrisch überschreibbaren und programmierbaren (EEPROM) Speichern.
-
Die Computervorrichtung 204 umfasst bei einigen Beispielen auch eine oder mehrere der Kommunikationseinheiten 222. Die Computervorrichtung 204 verwendet bei einem Beispiel die Kommunikationseinheit 222, um mit externen Vorrichtungen über ein oder mehrere Netzwerke, wie beispielsweise ein oder mehrere verdrahtete oder drahtlose Netzwerke, zu kommunizieren. Die Kommunikationseinheit 222 kann eine Netzwerkschnittstellenkarte, wie eine Ethernet-Karte, ein optischer Transceiver, ein Funkfrequenztransceiver oder jede andere Vorrichtungsart sein, die Informationen senden und empfangen kann. Beispiele von solchen Netzwerkschnittstellen können Bluetooth, Infrarotsignalisierung, 3G, LTE und Wi-Fi-Funkvorrichtungen sowie universeller serieller Bus (USB) und Ethernet umfassen. Bei einigen Beispielen verwendet die Computervorrichtung 204 die Kommunikationseinheit 222, um drahtlos mit einer anderen Computervorrichtung zu kommunizieren, die betriebsfähig mit der Computervorrichtung 204 gekoppelt ist.
-
Die Computervorrichtung 204 umfasst bei einem Beispiel auch eine oder mehrere Eingabekomponenten 220. Die Eingabekomponente 220 ist bei einigen Beispielen konfiguriert, eine Eingabe von einem Benutzer durch taktiles Feedback, Audio- oder Videofeedback zu empfangen. Beispiele für die Eingabekomponente 220 umfassen eine Anzeigekomponente, eine Maus, eine Tastatur, eine Kamera, ein Mikrofon oder jede andere Vorrichtungsart, um eine Eingabe von einem Benutzer zu detektieren. Bei einigen Beispielen umfasst eine Anzeigekomponente einen berührungsempfindlichen Bildschirm.
-
Eine oder mehrere Ausgabekomponenten 224 können auch in der Computervorrichtung 204 beinhaltet sein. Die Ausgabekomponente 224 ist bei einigen Beispielen konfiguriert, Ausgaben an einen Benutzer unter Verwendung von taktilen, Audio- oder Videostimuli bereitzustellen. Die Ausgabekomponente 224 umfasst bei einem Beispiel eine elektronische Anzeige, einen Lautsprecher oder jede andere Vorrichtungsart zum Umwandeln eines Signals in eine geeignete Form, die für Menschen oder Maschinen verständlich ist. Die elektronische Anzeige kann ein LCD- oder OLED-Teil eines Touchscreens sein, kann eine Nicht-Touchscreen-Direktansichtanzeigekomponente wie eine CRT, LED, LCD oder OLED sein. Die Anzeigekomponente kann auch ein Projektor anstatt einer Direktansichtanzeige sein.
-
Bei einigen Beispielen kann die Anzeigekomponente 206 Funktionalität der Eingabekomponente 220 und/oder der Ausgabekomponente 224 und/oder der Anzeigekomponente 218 umfassen. Im Beispiel von 2 kann die Anzeigekomponente 206 eine Anzeigekomponente sein. Bei einigen Beispielen kann eine präsenzsensitive Anzeige ein Objekt an und/oder nahe des Bildschirms der Anzeigekomponente detektieren. Als ein beispielhafter Bereich kann eine Anzeigekomponente ein Objekt, wie einen Finger oder einen Stift, detektieren, der sich innerhalb von 2 Zoll (~5,08 Zentimeter) oder weniger des physischen Bildschirms der Anzeigekomponente befindet. Die Anzeigekomponente kann einen Ort (z. B. (x, y)-Koordinate) der Anzeigekomponente bestimmen, an dem das Objekt detektiert wurde. Bei einem weiteren beispielhaften Bereich kann eine Anzeigekomponente ein Objekt von 6 Zoll (~15,24 Zentimeter) oder weniger des physischen Bildschirms der Anzeigekomponente detektieren und andere beispielhafte Bereiche sind auch möglich. Die Anzeigekomponente kann den Ort der Anzeige bestimmen, die durch einen Finger eines Benutzers unter Verwendung kapazitiver, induktiver und/oder optischer Erkennungstechniken ausgewählt wird. Bei einigen Beispielen stellt eine präsenzsensitive Anzeige eine Ausgabe an einen Benutzer unter Verwendung taktiler, Audio- oder Videostimuli bereit, wie in Bezug auf die Ausgabekomponente 224 beschrieben.
-
Die Computervorrichtung 204 kann das Betriebssystem 234 umfassen. Das Betriebssystem 234 steuert bei einigen Beispielen den Betrieb von Komponenten der Computervorrichtung 204. Das Betriebssystem 234 erleichtert beispielsweise bei einem Beispiel die Kommunikation der Anwendungen 208, des Hilfsmoduls 210, des Kontextmoduls 211, der Laufzeitbibliotheken 232 und des I/O-Moduls 236 mit den Prozessoren 205, der Kommunikationseinheit 222, der Speichervorrichtung 230, der Eingabekomponente 220, der Ausgabekomponente 224 und der Anzeigekomponente 206. Eine oder mehrere Komponenten der Speichervorrichtungen 230 einschließlich der Anwendungen 208, des Hilfsmoduls 210, des Kontextmoduls 211, der Laufzeitbibliotheken 232, des Betriebssystems 234 und des I/O-Moduls 236 können jeweils Programmbefehle und/oder Daten umfassen, die durch die Computervorrichtung 204 ausführbar sind. Als ein Beispiel kann die Anzeigekomponente 206 Befehle umfassen, welche die Computervorrichtung 204 veranlassen, eine oder mehrere der in der vorliegenden Offenbarung beschriebenen Operationen und Aktionen auszuführen. Bei einigen Beispielen können eine oder mehrere der Komponenten, die in der Speichervorrichtung 230 veranschaulicht sind, in Hardware und/oder einer Kombination aus Software und Hardware implementiert sein.
-
Bei einigen Beispielen kann die Computervorrichtung 204 einen oder mehrere Sensoren 226 umfassen. Ein oder mehrere der Sensoren 226 kann eine mehrere Messgrößen messen. Beispiele von einem oder mehreren der Sensoren 226 können einen oder mehrere Positionssensoren (z. B. einen globalen Positionsbestimmungssystem-(GPS)-Sensor, einen Innenraumpositionssensor oder dergleichen), einen oder mehrere Bewegungssensoren I Orientierungssensoren (z. B. einen Beschleunigungsmesser, ein Gyroskop oder dergleichen), einen Lichtsensor, einen Temperatursensor, einen Druck-(oder Griff-)-Sensor, einen physischen Schalter, einen Näherungssensor und einen oder mehrere Biosensoren umfassen, die Eigenschaften der Haut/des Blutes wie Alkohol, Blutzucker usw. messen können.
-
Das I/O-Modul 236 kann Eingaben empfangen und interpretieren, die an der Anzeigekomponente 206 detektiert werden (z. B. wenn ein Benutzer eine oder mehrere Gesten an einem oder mehreren Orten der Anzeigekomponente 206 bereitstellt, an denen eine Benutzerschnittstelle angezeigt wird), und Eingaben, die an anderen Eingabekomponenten der Computervorrichtung 204 (z. B. Mikrofone, Kameras, Sensoren, physische Tasten usw.) detektiert werden. Das I/O-Modul 236 kann Informationen über die Eingaben, die an der Computervorrichtung 204 detektiert werden, an eine oder mehrere verknüpfte Plattformen, Anwendungen und/oder Dienste weiterleiten, die auf der Computervorrichtung 204 laufen, um die Computervorrichtung 204 zu veranlassen, Funktionen auszuführen. Basierend auf der empfangenen Eingabe kann das I/O-Modul 236 beispielsweise die hierin beschriebenen Techniken initiieren. Bei einem Beispiel kann ein Benutzer eine Aktion ausführen, welche die Techniken am gesamten Inhalt in der grafischen Benutzerschnittstelle initiiert. Bei einem weiteren Beispiel kann der Benutzer einen bestimmten Inhalt auswählen, der auf der grafischen Benutzerschnittstelle angezeigt wird, an dem die Techniken ausgeführt werden.
-
Das I/O-Modul 236 kann auch Informationen und Befehle von einer oder mehreren verknüpften Plattformen, Anwendungen und/oder Diensten empfangen, die auf der Computervorrichtung 204 laufen (z. B. Hilfsmodul 210 usw.), um eine grafische Benutzerschnittstelle zu erzeugen oder eine somatosensorische Art von Benutzerschnittstelle bereitzustellen. Außerdem kann das I/O-Modul 236 als ein entsprechendes Zwischenglied zwischen der einen oder den mehreren verknüpften Plattformen, Betriebssystemen, Anwendungen und/oder Diensten, die auf der Computervorrichtung 204 laufen, und verschiedenen Ausgabekomponenten der Computervorrichtung 204 (z. B. die Anzeigekomponente 206, ein oder mehrere Sensoren 226, die Speichervorrichtungen 230, ein Lautsprecher, eine Led-Anzeige, andere Ausgabekomponenten usw.) agieren, um eine Ausgabe (z. B. eine Grafik, einen Lichtblitz, einen Ton, eine somatosensorische Antwort, eine haptische Antwort usw.) mit der Computervorrichtung 204 zu erzeugen.
-
Gemäß einer oder mehreren Techniken der vorliegenden Offenbarung kann die Anzeigekomponente 206 der Computervorrichtung 204 eine grafische Benutzerschnittstelle (wie die grafische Benutzerschnittstelle 112 von 1) einer Anwendung, die in den Anwendungen 208 beinhaltet ist, zum Anzeigen ausgeben. Die Anwendung ist in der Reihe der Anwendungen in der Anwendungsliste 218 der Computervorrichtung 204 beinhaltet. Zur Veranschaulichung kann im Beispiel von 2 die Anzeigekomponente 206 der Computervorrichtung 204 eine grafische Benutzerschnittstelle ausgeben, die eine E-Mail von einem Kontakt 13 zeigen kann, die mögliche Ereignisse für das Wochenende beschreibt. Die grafische Benutzerschnittstelle kann beispielsweise den Namen des Kontakts, eine Zeit und den Namen einer Einrichtung umfassen.
-
Das Kontextmodul 211 der Computervorrichtung 204 kann bestimmen, dass die grafische Benutzerschnittstelle der Anwendung, welche die E-Mail anzeigt, zum Anzeigen in der Anzeigekomponente 206 ausgegeben wird. Dabei kann das Kontextmodul 211 auf die Anwendungsliste 208 zugreifen, die durch das Kontextmodul 211 verwaltet wird. Das Kontextmodul 211 kann bestimmen, welche Anwendung mit der grafischen Benutzerschnittstelle 212 verknüpft ist, die gegenwärtig zum Anzeigen im Vordergrund der Anzeigekomponente 206 ausgegeben wird. Das Kontextmodul 211 kann zum Beispiel bestimmen, dass die Anwendung 208A mit der grafischen Benutzerschnittstelle 212 verknüpft ist oder diese für die Anwendung 208A anderweitig erzeugt hat. Bei einigen Beispielen kann die grafische Benutzerschnittstelle 212, die gegenwärtig zum Anzeigen auf der Anzeigekomponente 206 ausgegeben wird, mit der zuletzt angesehenen Anwendung oder auf die zuletzt zugegriffen wurde, verknüpft sein. Wie vorstehend angegeben kann das Kontextmodul 211 mit Betriebssystemprivilegien agieren oder in den Laufzeitbibliotheken 232 der Computervorrichtung 204 implementiert sein oder Zugriff darauf haben, die dem Kontextmodul 211 ermöglichen, auf die Ansichtshierarchie 230 zuzugreifen. Das Kontextmodul 211 kann auf den Inhalt der gegenwärtig angezeigten Ansicht zugreifen. Bei einigen Beispielen können Ansichtsobjekte jedes Element sein, das durch eine Computervorrichtung beispielsweise in einer grafischen Benutzerschnittstelle ausgegeben wird. Beispiele von Ansichtsobjekten können neben anderen Eigenschaften umfassen, sind aber nicht beschränkt auf, Textinformationen, Bildinformationen, Frameinformationen, lineare Informationen, Strukturinformationen oder Tasteninformationen. Das Kontextmodul 211 kann ein Ansichtsobjekt der Ansichtshierarchie identifizieren, das sich in der grafischen Benutzerschnittstelle befindet. Das Kontextmodul 211 kann weiter mindestens eine Eigenschaft des Ansichtsobjekts extrahieren und, basierend mindestens teilweise auf der mindestens einen Eigenschaft die Kontextdaten bestimmen. Im Beispiel von 2 bestimmt das Kontextmodul 211 von der grafischen Benutzerschnittstelle, dass es drei Ansichtsobjekte gibt: der Kontaktname, die Zeit und die Einrichtung.
-
Beim Bestimmen, dass die grafische Benutzerschnittstelle der Anwendung, welche die E-Mail anzeigt, zum Anzeigen auf einem Vordergrund der Anzeigekomponente 218 ausgegeben wird, kann bei einigen Beispielen das Kontextmodul 211 auf die Anwendungsliste 208 von Anwendungen zugreifen, die auf der Computervorrichtung 204 laufen, um die mit der grafischen Benutzerschnittstelle im Vordergrund der Anzeigekomponente 218 verknüpfte Anwendung auszuwählen. In Bezug auf das Beispiel von 2 kann das Kontextmodul 211 beispielsweise auf die Anwendungsliste 208 zugreifen und die E-Mail-Anwendung auswählen, da die E-Mail-Anwendung die Anwendung ist, die gegenwärtig mit der grafischen Benutzerschnittstelle im Vordergrund der Anzeigekomponente 218 verknüpft ist, da dies die Anwendung ist, die gegenwärtig auf der Anzeigekomponente 218 angezeigt wird. Das Kontextmodul 211 kann weiter die Anwendungsliste innerhalb der Anwendungsliste 208 durchlaufen, da die Anwendungsliste eine Reihe von Anwendungen auflistet, die auf der Computervorrichtung 204 in einer zeitlichen Zugriffsreihenfolge durch die Computervorrichtung 204 ausgeführt werden, mit der Anwendung, auf die zuletzt zugegriffen wurde, an einem Ende der Hierarchie und der Anwendung, auf die am längsten zurückliegend zugegriffen wurde, am anderen Ende.
-
Ansprechend auf das Bestimmen, dass die grafische Benutzerschnittstelle der E-Mail-Anwendung zum Anzeigen im Vordergrund der Anzeigekomponente 206 ausgegeben wird, kann das Kontextmodul 211 der Computervorrichtung 204 Kontextdaten von dem in der grafischen Benutzerschnittstelle beinhalteten Inhalt bestimmen. Im Beispiel von 2 kann das Kontextmodul 211 Kontextdaten auf jedem der drei wesentlichen Daten bestimmen. Das Kontextmodul 111 kann beispielsweise bestimmen, dass der Inhalt einen Kontaktnamen, eine Zeit und einen Namen einer Einrichtung umfasst. Bei einigen Beispielen können Kontextdaten eine bestimmte allgemeine Beschreibung des Inhaltes sein. Beispiele von Kontextdaten können unter anderem umfassen, sind aber nicht beschränkt auf, eine Bestimmung, dass der Inhalt ein Restaurantname, ein Level eines Videospiels, eine Adresse eines Orts in der Nähe, ein Name eines Sängers oder ein Kalendereintrag ist.
-
Bei einigen Beispielen kann beim Bestimmen der Kontextdaten das Kontextmodul 211 einen Screenshot der grafischen Benutzerschnittstelle der Anwendung erfassen, die im Vordergrund der Anzeigekomponente 218 angezeigt wird. Das Kontextmodul 211 kann eine Bildanalyse an dem Screenshot ausführen. Das Kontextmodul 211 kann basierend mindestens teilweise auf der Bildanalyse die Kontextdaten bestimmen. Das Kontextmodul 211 kann beispielsweise einen optischen Zeichenerkennungsprozess an dem Screenshot ausführen, um ein oder mehrere Zeichen im Screenshot zu bestimmen, welche die Kontextdaten basierend mindestens teilweise auf dem einen oder den mehreren Zeichen bestimmen. Da die Anwendung eine E-Mail-Anwendung ist, kann im Beispiel von 2 das Kontextmodul 211 den optischen Zeichenerkennungsprozess an einem Screenshot von der E-Mail ausführen, um die Inhalte der E-Mail zu bestimmen, sodass Kontextdaten abgeleitet werden können. Die Bildanalyse kann bei anderen Beispielen eine Websuche unter Verwendung des Bildes sein, um wie mit dem Beispiel von 4 gezeigt ein grafisches Bild im Screenshot zu bestimmen.
-
Beim Bestimmen der Kontextdaten kann bei anderen Beispielen das Kontextmodul 211 die Ansichtshierarchie 230 der Anwendung 208 analysieren. Für ein in der Ansichtshierarchie beinhaltetes Ansichtsobjekt kann das Kontextmodul 211 das Ansichtsobjekt identifizieren. Das Kontextmodul 211 kann weiter Informationen bestimmen, die mit dem identifizierten Ansichtsobjekt verknüpft sind, und kann die Kontextdaten basierend mindestens teilweise auf den bestimmten Informationen bestimmen. Eine Ansichtshierarchie der grafischen Benutzerschnittstelle für eine bestimmte Ansicht oder eine grafische Benutzerschnittstelle einer Anwendung kann zum Beispiel die Struktur von Benutzerschnittstellenelementen sein, die in der bestimmten Ansicht oder grafischen Benutzerschnittstelle beinhaltet sind. Basierend auf dieser Struktur von Benutzerschnittstellenelementen kann das Kontextmodul 211 Inhalte wie Text oder Bilder bestimmen. Im Beispiel von 2 kann das Kontextmodul 211 beispielsweise die Ansichtshierarchie der grafischen Benutzerschnittstelle, welche die E-Mail anzeigt, Benutzerschnittstellenelemente anzeigt, wie beispielsweise den Hintergrund der Anwendung, den Sender der E-Mail, das Thema der E-Mail und den Inhalt der E-Mail. Basierend auf diesen Benutzerschnittstellenelementen kann der Inhalt von jedem bestimmt werden. Das Kontextmodul 211 kann zum Beispiel den Kontaktnamen basierend auf dem Sender der E-Mail bestimmen und das Kontextmodul 211 kann die Zeit und die Einrichtung basierend auf dem Inhalt der E-Mail bestimmen. Das Kontextmodul 211 kann basierend auf diesem bestimmten Inhalt die Kontextdaten bestimmen.
-
Das Hilfsmodul 210 der Computervorrichtung 204 kann mindestens teilweise basierend auf den vorstehend bestimmten Kontextdaten einen Unterstützungshinweis bestimmen, der kontextuell mit dem in der grafischen Benutzerschnittstelle beinhalteten wesentlichen Inhalt in Zusammenhang steht. Ein Unterstützungshinweis kann eine mögliche Aktion sein, die basierend mindestens teilweise auf den Kontextdaten und dem Inhalt durchzuführen ist. Beispiele für einen Unterstützungshinweis können unter anderem umfassen, sind aber nicht beschränkt auf, das Ansehen von Rezensionen einer Einrichtung, das Erlangen einer Reservierung für eine Einrichtung, das Erlangen eines Tickets für ein Ereignis, das Anfordern eines Taxis, um einen Benutzer zu einer Adresse zu bringen, das Erlangen einer Wegbeschreibung zu einer Adresse, das Suchen nach Musik von einem Künstler, das Hinzufügen eines Ereignisses zu einem Kalender, das Erlangen von Unterstützung für ein Videospiel oder das Suchen nach Informationen über eine Person, einen Ort oder ein Objekt. Der Inhalt kann beispielsweise den Kontaktnamen eines Restaurants umfassen. Basierend auf diesem Inhaltstyp kann das Hilfsmodul 210 verschiedene Formen der Unterstützung bestimmen, die ein Benutzer mögen oder nützlich finden kann, einschließlich des Anzeigens eines Pop-Up-Bildes der Visitenkarte des gegebenen Kontakts oder kürzlich ausgetauschter Textnachrichten zwischen einem Benutzer und dem Kontakt. Bei einem weiteren Beispiel kann der Inhalt die angeforderte Zeit für das Treffen umfassen. Das Hilfsmodul 210 kann basierend auf diesem Inhaltstyp bestimmen, dass der Benutzer wahrscheinlich seinen gegenwärtigen Kalender für die angeforderte Zeit ansieht, ein Ereignis zu seinem Kalender für diese Zeit hinzufügt oder einen Fernsehzeitplan überprüft, um zu sehen, welche Sendung der Benutzer durch Besuchen des Ereignisses mit dem Kontakt verpassen könnte. Bei noch einem weiteren Beispiel kann der Inhalt den Einrichtungsnamen umfassen. Das Hilfsmodul 210 kann basierend auf diesem Inhaltstyp bestimmen, dass der Benutzer wahrscheinlich Rezensionen für diese Einrichtung sehen mag, ein Menü für diese Einrichtung sehen mag, wenn es ein Restaurant ist, oder einen Ort der Einrichtung sehen mag oder wünscht diese zu sehen.
-
Basierend auf dem Inhaltstyp und bei einigen Beispielen einschließlich sekundärer Kontextdaten kann das Hilfsmodul 210 einen Unterstützungshinweis für einen oder mehrere wesentliche Inhalte bestimmen. Die vorstehend beschriebenen Kontextdaten einschließlich irgendwelcher von dem Inhalt im Vordergrund der Anzeigekomponente 218 abgeleiteter Kontextdaten können beispielsweise als primäre Kontextdaten betrachtet werden. Beim Bestimmen des Unterstützungshinweises kann das Hilfsmodul 210 weiter basierend sowohl auf den primären Kontextdaten als auch auf einer Reihe von sekundären Kontextdaten oder irgendwelchen Kontextdaten, die über den Inhalt von außerhalb der Anwendung erfasst werden können, die Bestimmung vornehmen. Sekundäre Kontextdaten können beispielsweise einen gegenwärtigen Ort, eine aktuelle Zeit, eine Benutzeridentität, Cloud Computing-Daten, Kalenderinformationen, Kontaktinformationen, eine vorhergehende Anwendung und eine zeitliche Beziehung zwischen einer aktuellen Zeit und einer Zeit, zu der die vorhergehende Anwendung ausgeführt wurde, umfassen. Ein Benutzer kann beispielsweise gegenwärtig ein Ereignis für die vorgeschlagene Zeit in der E-Mail eingeplant haben. Das Hilfsmodul 210 kann basierend auf den primären Kontextdaten der Zeit in der E-Mail und den sekundären Kontextdaten des gegenwärtig im Kalender des Benutzers eingeplanten Ereignisses einen Unterstützungshinweis bestimmen, der ein Ansprechen auf die E-Mail mit einer alternativen Zeit für das Treffen umfasst, die mit einer erkannten freien Zeit im Kalender des Benutzers zusammenfällt. Bei einem weiteren Beispiel kann der Benutzer vor dem Zugreifen auf die E-Mail-Anwendung eine Webbrowseranwendung verwendet haben, um eine unterschiedliche Einrichtung anzusehen. Das Hilfsmodul 210 kann dies basierend auf der Anwendungsliste bestimmen, die anzeigt, dass die Webbrowseranwendung eine vorhergehende Anwendung war, auf die der Benutzer zugegriffen hat. Es kann auch eine kurze zeitliche Beziehung (d. h. fast unmittelbar) zwischen einer aktuellen Zeit und einer Zeit geben, zu der die Webbrowseranwendung ausgeführt wurde, d. h., dass der Benutzer zwischen der Webbrowseranwendung und der E-Mailanwendung gewechselt hat. Dies kann anzeigen, dass der Benutzer Einrichtungen erforscht hat, die dem Kontakt entsprechen. Als solches kann das Hilfsmodul 210, basierend auf den primären Kontextdaten der Einrichtung in der E-Mail und der Reihe der sekundären Kontextdaten, welche die Einrichtung in der Webbrowseranwendung umfassen, und der zeitlichen Beziehung zwischen dem Zugreifen auf die zwei Anwendungen, einen Unterstützungshinweis bestimmen, der das Ansprechen auf den Kontakt umfasst, der eine alternative Einrichtung für den Ort des Treffens vorschlägt.
-
Das Hilfsmodul 210 kann unter Verwendung der Anzeigekomponente 206 der Computervorrichtung 204 die Unterstützungshinweise ausgeben. Der Unterstützungshinweis kann unter anderem für die Präsentation in jeder geeigneten Form wie einer Überlagerung auf dem Bildschirm, einer Überlagerung nahe dem Inhalt auf dem Bildschirm, einem Pop-Up-Fenster innerhalb der grafischen Benutzerschnittstelle oder einem Audiohinweis erfolgen.
-
Das Hilfsmodul 210 kann beispielsweise wie vorstehend beschrieben einen Unterstützungshinweis zum Anzeigen für den Inhalt erzeugen, der ein Benutzerschnittstellenelement umfasst, das an der Oberkante der grafischen Benutzerschnittstelle überlagert ist, das einen Link umfasst, um das Ereignis in der gegebenen Einrichtung dem Kalender des Benutzers zu der gegebenen Zeit hinzuzufügen. Das Interagieren mit dem Unterstützungshinweis kann auch andere Anwendungen starten, die eine Adressbuchanwendung, eine Restaurantrezensionsanwendung, eine Fernsehprogrammierung oder eine Online-Medienstreaminganwendung oder jede andere Streaminganwendung umfassen, die den Benutzer bei einer nächsten Aktion basierend auf dem angezeigten Inhalt unterstützen kann.
-
Während die Techniken von 2 in Bezug auf eine oder mehrere Operationen auf der Computervorrichtung 204 beschrieben wurden, können eine oder mehrere Operationen des Hilfsmoduls 210 auf einem Remote-Server ausgeführt werden. Das Kontextmodul 211 kann die kontextabhängigen Daten an den Remote-Server senden, der mögliche Unterstützungshinweise bestimmt. Der Remote-Server kann die kontextabhängigen Daten an das Hilfsmodul 210 senden, das dafür verantwortlich ist, die Resultate zu formatieren und die Resultate auf dem Bildschirm in einer bestimmten Form (wie einer Überlagerung) auszugeben.
-
3 ist ein Blockdiagramm, das eine beispielhafte Computervorrichtung veranschaulicht, die Bildschirminhalt zum Anzeigen auf einer Remote-Vorrichtung gemäß einer oder mehrerer Techniken der vorliegenden Offenbarung ausgibt. Ein Bildschirminhalt kann generell irgendwelche visuellen Informationen umfassen, die zur Anzeige ausgegeben werden können, wie beispielsweise Text, Bilder, eine Gruppe sich bewegender Bilder usw. Das in 3 gezeigte Beispiel umfasst eine Computervorrichtung 304, eine Anzeigekomponente 306, eine Kommunikationseinheit 322, einen Projektor 356, einen Projektorbildschirm 358, eine mobile Vorrichtung 362 und eine optische Anzeigekomponente 366. Obwohl in den 1 und 2 zu Beispielzwecken entsprechend als eine eigenständige Computervorrichtung 104 und 204 gezeigt ist, kann eine Computervorrichtung wie die Computervorrichtung 304 generell jede Komponente oder jedes System sein, das einen Prozessor oder eine andere geeignete Computerumgebung umfasst, um Softwarebefehle auszuführen, und muss beispielsweise keine Anzeigekomponente umfassen.
-
Wie im Beispiel von 3 gezeigt, kann die Computervorrichtung 304 ein Prozessor sein, der Funktionalität wie in Bezug auf den Prozessor 205 in 2 beschrieben umfasst. Bei diesen Beispielen kann die Computervorrichtung 304 mit der Anzeigekomponente 306 durch einen Kommunikationskanal 346A wirkend gekoppelt sein, der ein Systembus oder eine andere geeignete Verbindung sein kann. Die Computervorrichtung 304 kann auch mit der nachfolgend weiter beschriebenen Kommunikationseinheit 322 durch einen Kommunikationskanal 346B wirkend gekoppelt sein, der auch ein Systembus oder eine andere geeignete Verbindung sein kann. Obwohl als Beispiel in 3 separat gezeigt, kann die Computervorrichtung 304 mit der Anzeigekomponente 306 und der Kommunikationseinheit 322 durch jegliche Anzahl eines oder mehrerer Kommunikationskanäle wirkend gekoppelt sein.
-
Wie zuvor bei anderen Beispielen durch die Computervorrichtung 104 in 1 und die Computervorrichtung 204 in 2 veranschaulicht, kann eine Computervorrichtung eine tragbare oder mobile Vorrichtung wie ein Mobiltelefon (einschließlich eines Smartphones), einen Laptop, eine Smartwatch usw. bezeichnen. Eine Computervorrichtung kann bei einigen Beispielen ein Desktopcomputer, ein Tabletcomputer, eine Smart-TV-Plattform, eine Spielkonsole, eine Fernsteuerung, eine elektronische Kamera, ein Personal Digital Assistant (PDA), ein Server, ein Mainframe usw. sein.
-
Die Anzeigekomponente 306 kann wie die in 1 gezeigte Anzeigekomponente 340 die Anzeigekomponente 106 und die präsenzsensitive Eingabekomponente 342 umfassen. Die Anzeigekomponente 340 kann beispielsweise Daten von der Computervorrichtung 304 empfangen und den Bildschirminhalt anzeigen. Die präsenzsensitive Eingabekomponente 342 kann bei einigen Beispielen eine oder mehrere Benutzereingaben (z. B. kontinuierliche Gesten, Mehrfachberührungsgesten, Einzelfingergesten usw.) an der Anzeigekomponente 306 unter Verwendung kapazitiver, induktiver und/oder optischer Erkennungstechniken bestimmen und Hinweise solcher Benutzereingaben unter Verwendung des Kommunikationskanals 346A an die Computervorrichtung 304 senden. Die präsenzsensitive Eingabekomponente 342 kann bei einigen Beispielen oben auf der Anzeigekomponente 340 derart physisch positioniert sein, dass, wenn ein Benutzer eine Eingabeeinheit über ein grafisches Element positioniert, das durch die Anzeigekomponente 340 angezeigt wird, der Ort, an dem die präsenzsensitive Eingabekomponente 342 dem Ort der Anzeigekomponente 340 entspricht, an dem das grafische Element angezeigt wird. Die präsenzsensitive Eingabekomponente 342 kann bei anderen Beispielen physisch getrennt von der Anzeigekomponente 340 positioniert sein und Orte der präsenzsensitiven Eingabekomponente 342 können Orten der Anzeigekomponente 340 derart entsprechen, dass eine Eingabe an der präsenzsensitiven Eingabekomponente 342 erfolgen kann, um mit grafischen Elementen zu interagieren, die an entsprechenden Orten der Anzeigekomponente 340 angezeigt werden.
-
Wie in 3 gezeigt, kann die Computervorrichtung 304 auch die Kommunikationseinheit 322 umfassen und/oder wirkend damit gekoppelt sein. Die Kommunikationseinheit 322 kann wie in 2 beschrieben Funktionalität der Kommunikationseinheit 222 umfassen. Beispiele für die Kommunikationseinheit 322 können eine Netzwerkschnittstellenkarte, eine Ethernet-Karte, einen optischen Transceiver, einen Funkfrequenztransceiver oder jede andere Vorrichtungsart umfassen, die Informationen senden und empfangen kann. Andere Beispiele von solchen Kommunikationseinheiten können Bluetooth, 3G und Wi-Fi-Funkvorrichtungen, universeller serieller Bus-(USB)-Schnittstellen usw. umfassen. Die Computervorrichtung 304 kann auch eine oder mehrere andere Vorrichtungen umfassen und/oder wirkend damit gekoppelt sein, wie z. B. Eingabekomponenten, Ausgabekomponenten, Speichern, Speichervorrichtungen usw., die in 3 der Kürze und Veranschaulichung halber nicht dargestellt sind.
-
3 veranschaulicht auch einen Projektor 356 und einen Projektorbildschirm 358. Andere solcher Beispiele von Projektionsvorrichtungen können elektronische Wandtafeln, holografische Anzeigekomponenten und jegliche anderen geeigneten Vorrichtungen zum Anzeigen von Bildschirminhalt umfassen. Der Projektor 356 und Projektorbildschirm 358 können eine oder mehrere Kommunikationseinheiten umfassen, die ermöglichen, dass die entsprechenden Vorrichtungen mit der Computervorrichtung 304 kommunizieren können. Bei einigen Beispielen können der eine oder die mehreren Kommunikationseinheiten Kommunikation zwischen Projektor 356 und Projektorbildschirm 358 ermöglichen. Der Projektor 356 kann Daten von der Computervorrichtung 304 empfangen, die Bildschirminhalt umfassen. Der Projektor 356 kann als Reaktion auf das Empfangen der Daten den Bildschirminhalt auf den Projektorbildschirm 358 projizieren. Bei einigen Beispielen kann der Projektor 356 eine oder mehrere Benutzereingaben (z. B. kontinuierliche Gesten, Mehrfachberührungsgesten, Einfachberührungsgesten usw.) am Projektorbildschirm unter Verwendung optischer Erkennung oder von anderen geeigneten Techniken bestimmen und Hinweise auf solch eine Benutzereingabe unter Verwendung von einer oder mehreren Kommunikationseinheiten an die Computervorrichtung 304 senden. Der Projektorbildschirm 358 kann bei solchen Beispielen unnötig sein und der Projektor 356 kann Bildschirminhalt auf jedes geeignete Medium projizieren und eine oder mehrere Benutzereingaben unter Verwendung optischer Erkennungstechniken oder anderer solcher geeigneter Techniken detektieren.
-
Der Projektorbildschirm 358 kann bei einigen Beispielen eine präsenzsensitive Anzeige 360 umfassen. Die präsenzsensitive Anzeige 360 kann eine Untergruppe der Funktionalität oder die gesamte Funktionalität der Anzeigekomponente 106 umfassen, wie sie in dieser Offenbarung beschrieben ist. Bei einigen Beispielen kann die präsenzsensitive Anzeige 360 Zusatzfunktionalität umfassen. Der Projektorbildschirm 358 (z. B. eine elektronische Wandtafel) kann Daten von der Computervorrichtung 304 empfangen und den Bildschirminhalt anzeigen. Bei einigen Beispielen kann die präsenzsensitive Anzeige 360 eine oder mehrere Benutzereingaben (z. B. kontinuierliche Gesten, Mehrfachberührungsgesten, Einfachberührungsgesten usw.) am Projektorbildschirm 358 unter Verwendung kapazitiver, induktiver und/oder optischer Erkennungstechniken bestimmen und Hinweise auf solch eine Benutzereingabe unter Verwendung von einer oder mehreren Kommunikationseinheiten an die Computervorrichtung 304 senden.
-
3 veranschaulicht zudem die mobile Vorrichtung 362 und die optische Anzeigekomponente 366. Die mobile Vorrichtung 362 und die optische Anzeigekomponente 366 können jeweils Computing- und Konnektivitätsfähigkeiten umfassen. Beispiele für die mobile Vorrichtung 362 können e-Reader-Vorrichtungen, konvertierbare Notebook-Vorrichtungen, Hybridvorrichtungen usw. umfassen. Beispiele für die optische Anzeigekomponente 366 können andere halbstationäre Vorrichtungen, wie beispielsweise Fernseher, Computermonitore usw., umfassen. Wie gezeigt in 3 kann die mobile Vorrichtung 362 eine präsenzsensitive Anzeige 364 umfassen. Die optische Anzeigekomponente 366 kann eine präsenzsensitive Anzeige 368 umfassen. Die präsenzsensitiven Anzeigen 364, 368 können eine Untergruppe der Funktionalität oder die gesamte Funktionalität der Anzeigekomponente 306 umfassen, wie sie in dieser Offenbarung beschrieben ist. Bei einigen Beispielen können die präsenzsensitiven Anzeigen 364, 368 Zusatzfunktionalität umfassen. In jedem Fall kann die präsenzsensitive Anzeige 364 beispielsweise Daten von der Computervorrichtung 304 empfangen und den Bildschirminhalt anzeigen. Bei einigen Beispielen kann die präsenzsensitive Anzeige 368 eine oder mehrere Benutzereingaben (z. B. kontinuierliche Gesten, Mehrfachberührungsgesten, Einfachberührungsgesten usw.) am Projektorbildschirm unter Verwendung kapazitiver, induktiver und/oder optischer Erkennungstechniken bestimmen und Hinweise auf solch eine Benutzereingabe unter Verwendung von einer oder mehreren Kommunikationseinheiten an die Computervorrichtung 304 senden.
-
Wie vorstehend beschrieben kann bei einigen Beispielen die Computervorrichtung 304 Bildschirminhalt zum Anzeigen an der Anzeigekomponente 306 ausgeben, die mit der Computervorrichtung 304 durch einen Systembus oder einen anderen geeigneten Kommunikationskanal gekoppelt ist. Die Computervorrichtung 304 kann auch Bildschirminhalt zum Anzeigen an einer oder mehreren Remote-Vorrichtungen, wie dem Projektor 356, dem Projektorbildschirm 358, der mobilen Vorrichtung 362 und der optischen Anzeigekomponente 366 ausgeben. Die Computervorrichtung 304 kann zum Beispiel einen oder mehrere Befehle ausführen, um Bildschirminhalt gemäß Techniken der vorliegenden Offenbarung zu erzeugen und/oder zu modifizieren. Die Computervorrichtung 304 kann die Daten, die den Bildschirminhalt umfassen, an eine Kommunikationseinheit der Computervorrichtung 304, wie beispielsweise der Kommunikationseinheit 322, ausgeben. Die Kommunikationseinheit 322 kann die Daten an eine oder mehrere der Remote-Vorrichtungen, wie beispielsweise den Projektor 356, den Projektorbildschirm 358, die mobile Vorrichtung 362 und/oder die optische Anzeigekomponente 366, senden. Auf diese Weise kann die Computervorrichtung 304 den Bildschirminhalt zum Anzeigen an einer oder mehreren von den Remote-Vorrichtungen ausgeben. Bei einigen Beispielen können eine oder mehrere der Remote-Vorrichtungen den Bildschirminhalt an eine Anzeigekomponente ausgeben, die in den entsprechenden Remote-Vorrichtungen beinhaltet und/oder wirkend damit gekoppelt ist.
-
Die Computervorrichtung 304 kann bei einigen Beispielen keinen Bildschirminhalt an der Anzeigekomponente 306 ausgeben, die wirkend mit der Computervorrichtung 304 gekoppelt ist. Die Computervorrichtung 304 kann bei anderen Beispielen Bildschirminhalt zum Anzeigen sowohl an eine Anzeigekomponente 306, die mit der Computervorrichtung 304 durch den Kommunikationskanal 346A gekoppelt ist, als auch an eine oder mehrere Remote-Vorrichtungen ausgeben. Der Bildschirminhalt kann bei solchen Beispielen im Wesentlichen gleichzeitig auf jeder entsprechenden Vorrichtung angezeigt werden. Eine Verzögerung kann zum Beispiel durch die Kommunikationslatenzzeit, um die Daten, die den Bildschirminhalt umfassen, an die Remote-Vorrichtung zu senden, eingeführt werden. Bildschirminhalt, der durch die Computervorrichtung 304 erzeugt und zum Anzeigen an der Anzeigekomponente 306 ausgegeben wird, kann sich bei einigen Beispielen von dem Bildschirminhalt unterscheiden, der zum Anzeigen auf einer oder mehreren Remote-Vorrichtungen ausgegeben wird.
-
Die Computervorrichtung 304 kann Daten unter Verwendung jeder geeigneten Kommunikationstechnik senden und empfangen. Die Computervorrichtung 304 kann beispielsweise mit dem externen Netzwerk 350 unter Verwendung der Netzwerkanbindung 348A wirkend gekoppelt sein. Jede der in 3 veranschaulichten Remote-Vorrichtungen kann mit dem externen Netzwerk 350 durch eine der entsprechenden Netzwerkverbindungen 348B, 348C und 348D wirkend gekoppelt sein. Das externe Netzwerk 350 kann Netzwerk-Hubs, Switches, Netzwerkrouter usw. umfassen, die wirkend miteinander verbunden sind und dadurch den Austausch von Informationen zwischen der Computervorrichtung 304 und den in 3 veranschaulichten Remote-Vorrichtungen bereitstellen. Bei einigen Beispielen können die Netzwerkverbindungen 348A bis 348D Ethernet, ATM oder andere Netzwerkverbindungen sein. Solche Verbindungen können drahtlose und/oder verdrahtete Verbindungen sein.
-
Bei einigen Beispielen kann die Computervorrichtung 304 wirkend mit einer oder mehreren von den Remote-Vorrichtungen, die in 3 beinhaltet sind, die direkte Vorrichtungskommunikation 354 verwenden. Die direkte Vorrichtungskommunikation 354 kann Kommunikationen umfassen, durch die die Computervorrichtung 304 Daten direkt mit einer Remote-Vorrichtung unter Verwendung von verdrahteter oder drahtloser Kommunikation sendet und empfängt. D. h., bei einigen Beispielen von direkter Vorrichtungskommunikation 354 können Daten, die durch die Computervorrichtung 304 gesendet werden, nicht durch eine oder mehrere zusätzliche Vorrichtungen weitergeleitet werden, bevor sie an der Remote-Vorrichtung empfangen werden und umgekehrt. Beispiele für direkte Vorrichtungskommunikation 354 können Bluetooth, Nahbereichskommunikation, universeller serieller Bus, WiFi, Infrarot usw. umfassen. Eine oder mehrere von den Remote-Vorrichtungen, die in 3 veranschaulicht sind, können mit der Computervorrichtung 304 durch die Kommunikationsverbindungen 352A bis 352D wirkend gekoppelt sein. Bei einigen Beispielen können die Kommunikationsverbindungen 352A bis 352D Verbindungen sein, die Bluetooth, Nahbereichskommunikation, universellen seriellen Bus, Infrarot usw. verwenden. Solche Verbindungen können drahtlose und/oder verdrahtete Verbindungen sein.
-
Die Computervorrichtung 304 kann wie vorstehend beschrieben zum Anzeigen auf einer Anzeigekomponente (z. B. dem Projektor 356, der mobilen Vorrichtung 362 oder der optischen Anzeigekomponente 366) eine grafische Benutzerschnittstelle einer Anwendung ausgeben. Die Anwendung kann in einer Reihe von in der Computervorrichtung laufenden Anwendungen beinhaltet sein. Ansprechend auf das Bestimmen, dass die grafische Benutzerschnittstelle der Anwendung zum Anzeigen auf einem Vordergrund der Anzeigekomponente ausgegeben wird, kann die Computervorrichtung 304 Kontextdaten von dem in der grafischen Benutzerschnittstelle beinhalteten Inhalt bestimmen. Basierend mindestens teilweise auf den Kontextdaten kann die Computervorrichtung 304 einen Unterstützungshinweis bestimmen, die kontextuell mit dem in der grafischen Benutzerschnittstelle umfassten Inhalt in Zusammenhang steht. Die Computervorrichtung 304 kann den Unterstützungshinweis ausgeben.
-
4 ist ein konzeptionelles Diagramm, das ein beispielhaftes System veranschaulicht, das eine Servervorrichtung umfasst, die einen Unterstützungshinweis basierend auf einem bestimmten Bildschirmkontext einer Remote-Anzeigekomponente, gemäß einem oder mehreren Aspekten der vorliegenden Offenbarung bereitstellt. Die Techniken von 4 können entsprechend durch einen oder mehrere Prozessoren einer Computervorrichtung, wie der in 1 und 2 veranschaulichten Computervorrichtung 104 und 204 ausgeführt werden. Zum Zwecke der Veranschaulichung sind die Techniken von 4 innerhalb des Kontexts der Computervorrichtung 104 von 1 beschrieben, obwohl Computervorrichtungen mit Konfigurationen, die sich von der der Computervorrichtung 104 unterscheiden, die Techniken von 4 ausführen können.
-
Gemäß den Techniken dieser Offenbarung kann eine Anzeigekomponente (z. B. die Anzeigekomponente 106) der Computervorrichtung 104 die grafische Benutzerschnittstelle 470 einer Anwendung ausgeben. Im Beispiel von 4 kann die Anzeigekomponente 106 der Computervorrichtung 104 die grafische Benutzerschnittstelle 470 ausgeben, die einen Level eines Videospiels wie Level 3 der erfundenen Spieleanwendung 108B „Jumping Man“ darstellt.
-
Das Kontextmodul 111 der Computervorrichtung 104 kann bestimmen, dass die grafische Benutzerschnittstelle 470 der Anwendung zum Anzeigen auf einem Vordergrund der Anzeigekomponente 118 ausgegeben wird. Dabei kann das Kontextmodul 111 auf die durch die Anwendung verwaltete Ansichtshierarchie zugreifen. Das Kontextmodul 111 kann bestimmen, welche Anwendung mit der grafischen Benutzerschnittstelle 470 verknüpft ist, die gegenwärtig zum Anzeigen auf Anzeigenkomponente 106 ausgegeben wird. Das Kontextmodul 111 kann zum Beispiel bestimmen, dass die Anwendung mit der grafischen Benutzerschnittstelle 470 verknüpft ist oder diese für die Anwendung anderweitig erzeugt hat. Wie vorstehend angegeben kann das Kontextmodul 111 mit Betriebssystemprivilegien arbeiten oder in einer Laufzeitbibliothek der Computervorrichtung 104 implementiert sein oder Zugriff darauf haben, die dem Kontextmodul 111 ermöglichen würde, auf die Anwendungsliste zuzugreifen, um die Anwendung zu bestimmen, die mit der grafischen Benutzerschnittstelle im Vordergrund verknüpft ist. Das Kontextmodul 111 kann die Ansichtshierarchie analysieren und Objekte des gegenwärtig angezeigten Bildschirms ansehen, um Inhalt und Kontextdaten zu bestimmen. Bei einigen Beispielen kann Inhalt jedes Element sein, das durch eine Computervorrichtung beispielsweise in einer grafischen Benutzerschnittstelle ausgegeben wird. Beispiele von Ansichtsobjekten können neben anderen Eigenschaften umfassen, sind aber nicht beschränkt auf, Textinformationen, Bildinformationen, Frameinformationen, lineare Informationen, Strukturinformationen oder Tasteninformationen.
-
Ansprechend auf das Bestimmen, dass die grafische Benutzerschnittstelle 470 der Anwendung 108B zum Anzeigen im Vordergrund der Anzeigekomponente 106 ausgegeben wird, kann das Kontextmodul 111 der Computervorrichtung 104 Kontextdaten von dem Inhalt bestimmen, der in der grafischen Benutzerschnittstelle 470 beinhaltet ist. Bei einigen Beispielen können Kontextdaten eine bestimmte allgemeine Beschreibung des Inhaltes sein. Beispiele von Kontextdaten können unter anderem umfassen, sind aber nicht beschränkt auf, eine Bestimmung, dass der Inhalt ein Restaurantname, ein Level eines Videospiels, eine Adresse eines Orts in der Nähe, ein Name eines Sängers oder ein Kalendereintrag ist.
-
Im Beispiel von 4 umfasst die grafische Benutzerschnittstelle 470 nur grafische Bilder. Als solches kann das Kontextmodul 111 der Computervorrichtung 104 durch Bestimmen der Kontextdaten einen Screenshot der grafischen Benutzerschnittstelle 470 der im Vordergrund der Anzeigekomponente angezeigten Anwendung erfassen. Das Kontextmodul 111 kann eine Bildanalyse an dem Screenshot ausführen. Das Kontextmodul 111 kann beispielsweise eine Bildsuche im Internet ausführen, um zu bestimmen, was auf der grafischen Benutzerschnittstelle 470 dargestellt wird. Im Beispiel von 4 kann eine Bildsuche im Internet dem Kontextmodul 111 Informationen bereitstellen, dass die Inhalte des Bildes Level 3 des erfundenen Spiels „Jumping Man“ umfassen. Das Kontextmodul 111 kann die Kontextdaten basierend auf dieser Bildanalyse bestimmen.
-
Das Hilfsmodul 110 kann basierend mindestens teilweise auf den zuvor bestimmten Kontextdaten einen Unterstützungshinweis bestimmen, der kontextuell mit dem Inhalt in Zusammenhang steht, der in der grafischen Benutzerschnittstelle 470 beinhaltet ist. Ein Unterstützungshinweis kann eine mögliche Aktion sein, die basierend mindestens teilweise auf den Kontextdaten und dem Inhalt durchzuführen ist. Beispiele des Unterstützungshinweises können unter anderem umfassen, sind aber nicht beschränkt auf, das Ansehen von Rezensionen einer Einrichtung, das Erlangen einer Reservierung für eine Einrichtung, das Erlangen eines Tickets für ein Ereignis, das Anfordern eines Taxis, um einen Benutzer zu einer Adresse zu bringen, das Erlangen einer Wegbeschreibung zu einer Adresse, das Suchen nach Musik von einem Künstler, das Hinzufügen eines Ereignisses zu einem Kalender, das Erlangen von Unterstützung für ein Videospiel oder das Suchen nach Informationen über eine Person, einen Ort oder eine Sache.
-
Im Beispiel von 4 kann das Hilfsmodul 110 auf dem Remote-Server 474 arbeiten. Als solches kann das Kontextmodul 111 die Kontextdaten an den Remote-Server 474 senden, der Informationen für den Unterstützungshinweis bestimmt. Der Remote-Server 474 kann eine Computervorrichtung sein, die wirkend mit der Computervorrichtung des Clients über ein Netzwerk unter Verwendung einer verdrahteten und/oder drahtlosen Verbindung verbunden ist. Der Remote-Server 474 kann zum Beispiel eine Servercomputervorrichtung oder eine Desktopcomputervorrichtung sein. Das Hilfsmodul 110 kann auf dem Remote-Server 474 den Unterstützungshinweis bestimmen, und das Kontextmodul 111 kann die Informationen für den Unterstützungshinweis vom Hilfsmodul 110 empfangen.
-
Im Beispiel von 4 können die primären Kontextdaten den Datenlevel 3 des Spiels „Jumping Man“ umfassen. Andere sekundäre Kontextdaten können, wenn diese verwendet werden, die Menge an Zeit umfassen, die der Benutzer mit der Anwendung zubrachte, oder die allgemeine Schwierigkeit von Level 3 des Spiels „Jumping Man“. Basierend auf diesen Kontextdaten kann das Hilfsmodul 110 bestimmen, dass der Benutzer zu einer Strategieleitlinie geführt werden will, wie man Level 3 des Spiels „Jumping Man“ schlägt, oder der Benutzer gerne zu einem Videodurchlauf dieses Levels geführt werden möchte.
-
Das Kontextmodul 111 kann die Unterstützungshinweise 472 ausgeben, indem es die Anzeigekomponente 106 der Computervorrichtung 104 verwendet. Der Unterstützungshinweis kann unter anderem für die Präsentation in jeder geeigneten Form wie einer Überlagerung auf dem Bildschirm, einer Überlagerung nahe dem Inhalt auf dem Bildschirm, einem Pop-Up-Fenster innerhalb der grafischen Benutzerschnittstelle oder einem Audiohinweis erfolgen. Im Beispiel von 4 ist der Unterstützungshinweis 472 ein Pop-Up-Fenster innerhalb der grafischen Benutzerschnittstelle 470. Das Interagieren mit dem Unterstützungshinweis 472 kann eine Webbrowseranwendung starten, die eine Webseite lädt, die beschreibt, wie man Level 3 des Spiels „Jumping Man“ schlägt. Das Interagieren mit einem Unterstützungshinweis 472 kann bei anderen Beispielen eine Videostreaminganwendung mit einem Videolernprogramm für diese bestimmte Stufe starten.
-
5 ist ein Flussdiagramm, das beispielhafte Operationen einer Computervorrichtung veranschaulicht, die Techniken zum Bestimmen eines Unterstützungshinweises gemäß einem oder mehreren Aspekten der vorliegenden Offenbarung implementiert. Die Techniken von 5 können entsprechend durch einen oder mehrere Prozessoren einer Computervorrichtung, wie der in 1 und 2 veranschaulichten Computervorrichtung 104 und 204 ausgeführt werden. Zum Zwecke der Veranschaulichung sind die Techniken von 5 innerhalb des Kontexts der Computervorrichtung 104 von 1 beschrieben, obwohl Computervorrichtungen mit Konfigurationen, die sich von der der Computervorrichtung 104 unterscheiden, die Techniken von 5 ausführen können.
-
Gemäß den Techniken dieser Offenbarung kann eine Anzeigekomponente (z. B. die Anzeigekomponente 106) der Computervorrichtung 104 eine grafische Benutzerschnittstelle (z. B. die grafische Benutzerschnittstelle 112) von einer Anwendung (z. B. der Anwendung 118A) (582) zum Anzeigen auf einer Anzeigekomponente (z. B. der Anzeigekomponente 118), die wirkend mit der Computervorrichtung 104 gekoppelt ist, ausgeben. Das Kontextmodul 111 kann auf die Ansichtshierarchie der laufenden Anwendung 108 zugreifen und ein Ansichtsobjekt der Ansichtshierarchie identifizieren, das in der grafischen Benutzerschnittstelle dargestellt wird. Das Kontextmodul 111 kann bestimmen, welche Anwendung mit der grafischen Benutzerschnittstelle 112 verknüpft ist, die gegenwärtig zum Anzeigen im Vordergrund der Anzeigekomponente 106 ausgegeben wird. Das Kontextmodul 111 kann zum Beispiel bestimmen, dass die Anwendung 108A mit der grafischen Benutzerschnittstelle 112 verknüpft ist oder diese für die Anwendung 108A anderweitig erzeugt hat. Bei einigen Beispielen kann die grafische Benutzerschnittstelle 112, die gegenwärtig zum Anzeigen auf der Anzeigekomponente 106 ausgegeben wird, mit der zuletzt angesehenen Anwendung oder auf die zuletzt zugegriffen wurde, verknüpft sein. Wie vorstehend angegeben kann das Kontextmodul 111 mit Betriebssystemprivilegien arbeiten oder auf einer Laufzeitbibliothek der Computervorrichtung 104 implementiert sein oder Zugriff darauf haben, die dem Kontextmodul 111 ermöglichen, auf die Anwendungsliste zuzugreifen, um die Anwendung, die mit der grafischen Benutzerschnittstelle verknüpft ist, und die Ansichtshierarchie für die Anwendung zu bestimmen. Das Kontextmodul 111 kann auf den Inhalt der gegenwärtig angezeigten Ansicht zugreifen. Bei einigen Beispielen kann Inhalt jedes Element sein, das durch eine Computervorrichtung beispielsweise in einer grafischen Benutzerschnittstelle ausgegeben wird. Beispiele von Ansichtsobjekten können neben anderen Eigenschaften umfassen, sind aber nicht beschränkt auf, Textinformationen, Bildinformationen, Frameinformationen, lineare Informationen, Strukturinformationen oder Tasteninformationen. Das Kontextmodul 111 kann weiter mindestens eine Eigenschaft des Ansichtsobjekts extrahieren und, basierend mindestens teilweise auf der mindestens einen Eigenschaft die Kontextdaten bestimmen.
-
Ansprechend auf das Bestimmen, dass die grafische Benutzerschnittstelle 112 der Anwendung 108A zum Anzeigen im Vordergrund der Anzeigekomponente 106 ausgegeben wird, kann das Kontextmodul 111 der Computervorrichtung 104 Kontextdaten von dem Inhalt (z. B. Inhalt 114A bis 114C), der in der grafischen Benutzerschnittstelle 112 (584) beinhaltet ist, bestimmen. Der Inhalt der grafischen Benutzerschnittstelle 112 kann nicht nur sichtbaren Inhalt einer Art umfassen, den ein Screenshot erfassen kann, sondern auch zusätzlichen Inhalt, der von Ansichtsobjekten und einer Ansichtshierarchie verfügbar ist. Bei einigen Beispielen können Kontextdaten eine bestimmte allgemeine Beschreibung des Inhalts sein, der entweder durch (i) eine Analyse von Text, Symbolen, Bildern und Videos, die durch die Anzeigekomponente 106 angezeigt werden, und/oder (b) eine Analyse von Eigenschaften von Ansichtsobjekten, die den sichtbaren Text, die Symbole, die Bilder und die Videos unterstützen, bestimmt wird. Beispiele von Kontextdaten können unter anderem umfassen, sind aber nicht beschränkt auf, eine Bestimmung, dass der Inhalt ein Restaurantname, ein Level eines Videospiels, eine Adresse eines Orts in der Nähe, ein Name eines Sängers oder ein Kalendereintrag ist.
-
Das Hilfsmodul 110 der Computervorrichtung 104 kann, basierend mindestens teilweise auf den vorstehend bestimmten Kontextdaten einen Unterstützungshinweis bestimmen, der kontextuell mit dem Inhalt 114A bis 114C in Zusammenhang steht, der in der grafischen Benutzerschnittstelle 112 beinhaltet ist (586). Ein Unterstützungshinweis kann eine mögliche Aktion sein, die basierend mindestens teilweise auf den Kontextdaten und dem Inhalt durchzuführen ist. Beispiele für einen Unterstützungshinweis können unter anderem umfassen, sind aber nicht beschränkt auf, das Ansehen von Rezensionen einer Einrichtung, das Erlangen einer Reservierung für eine Einrichtung, das Erlangen eines Tickets für ein Ereignis, das Anfordern eines Taxis, um einen Benutzer zu einer Adresse zu bringen, das Erlangen einer Wegbeschreibung zu einer Adresse, das Suchen nach Musik von einem Künstler, das Hinzufügen eines Ereignisses zu einem Kalender, das Erlangen von Unterstützung für ein Videospiel oder das Suchen nach Informationen über eine Person, einen Ort oder eine Sache.
-
Das Hilfsmodul 110 kann die Unterstützungshinweise ausgeben, indem es die Anzeigekomponente 106 der Computervorrichtung 104 verwendet (588). Der Unterstützungshinweis kann unter anderem für die Präsentation in jeder geeigneten Form wie einer Überlagerung auf dem Bildschirm, einer Überlagerung nahe dem Inhalt auf dem Bildschirm, einem Pop-Up-Fenster innerhalb der grafischen Benutzerschnittstelle oder einem Audiohinweis erfolgen.
-
Während die Techniken von 1 in Bezug auf eine oder mehrere Operationen auf der Computervorrichtung 104 beschrieben wurden, können eine oder mehrere Operationen des Hilfsmoduls 110 auf einem Remote-Server ausgeführt werden. Das Kontextmodul 111 kann die kontextabhängigen Daten an den Remote-Server senden, der mögliche Unterstützungshinweise bestimmt, die dann an das Hilfsmodul 110 gesendet werden, das dafür verantwortlich ist, die Resultate zu formatieren und die Resultate an den Bildschirm in einer bestimmten Form (wie einer Überlagerung) auszugeben.
-
Indem der Kontext basierend auf dem Inhalt der im Vordergrund der Anzeigekomponente angezeigten grafischen Benutzerschnittstelle bestimmt wird, kann eine Computervorrichtung Empfehlungen über wahrscheinliche nächste Aktionen für einen Benutzer geben, ohne sich darauf zu verlassen, dass Anwendungsentwickler explizit kontextabhängige Informationen im Code der Anwendung selbst einschließen. Auf diese Weise können Techniken der Offenbarung mobile Vorrichtungen mit dem Vermögen ausstatten, wahrscheinliche nächste Aktionen zu bestimmen und Unterstützungshinweise für jede Anwendung bereitzustellen, welche die Computervorrichtung ausführen kann, ohne zu erfordern, dass Anwendungsentwickler irgendeinen zusätzlichen Code einschließen, was den Code der auf der Computervorrichtung ausführenden Anwendungen vereinfacht. Durch Extrahieren von Text und/oder Bildern aus dem Bildschirm, der durch die Anwendung angezeigt wird, stellen Techniken dieser Offenbarung den Inhalt an ein Hilfsmodul bereit, das den Kontext verwendet, um Unterstützungshinweise bezüglich potenzieller nächster Aktionen basierend darauf, was der Benutzer bei irgendeiner möglichen Anwendung getan hat, bereitzustellen, anstatt dessen, was der Anwendungsentwickler explizit über feste Programmierung der kontextabhängigen Informationen bereitgestellt hat. Durch Bereitstellen von Funktionalität an die Computervorrichtung zum Bestimmen von Inhalt und Bereitstellen von Kontext wird das Anwendungscodieren vereinfacht und es kann Unterstützung universell über primäre Entwickleranwendungen und Anwendungen von Drittanbietern auf eine zuverlässige Art bereitgestellt werden. Weiter können Techniken dieser Offenbarung ermöglichen, dass eine Unterstützung für Bildschirminhalt, der zum Anzeigen ausgegeben wird, verallgemeinerungsfähiger ist.
-
(Beispiel 1. Ein Verfahren, das umfasst: Ausgeben, durch eine Computervorrichtung und zum Anzeigen auf einer Anzeigekomponente, die wirkend mit der Computervorrichtung gekoppelt ist, einer grafischen Benutzerschnittstelle einer Anwendung; Bestimmen von Kontextdaten von Inhalt, der in der grafischen Benutzerschnittstelle beinhaltet ist; Bestimmen, basierend mindestens teilweise auf den Kontextdaten, eines Unterstützungshinweises, der kontextuell mit dem in der grafischen Benutzerschnittstelle beinhalteten Inhalt in Zusammenhang steht; und Ausgeben des Unterstützungshinweises durch die Computervorrichtung.
-
Beispiel 2. Das Verfahren von Beispiel 1, wobei das Bestimmen der Kontextdaten umfasst: Zugreifen auf eine Ansichtshierarchie bei der Computervorrichtung; und Identifizieren eines Ansichtsobjekts der Ansichtshierarchie, das auf der grafischen Benutzerschnittstelle dargestellt wird.
-
Beispiel 3. Das Verfahren von Beispiel 2, weiter umfassend: Extrahieren von mindestens einer Eigenschaft des Ansichtsobjekts; und Bestimmen, basierend mindestens teilweise auf der mindestens einen Eigenschaft, von mindestens einem Teil der Kontextdaten.
-
Beispiel 4. Das Verfahren nach einem der Beispiele 1 bis 3, wobei die Kontextdaten von in der grafischen Benutzerschnittstelle beinhaltetem Inhalt primäre Kontextdaten sind, und wobei das Bestimmen des Unterstützungshinweises umfasst: Bestimmen des Unterstützungshinweises basierend mindestens teilweise auf den primären Kontextdaten der grafischen Benutzerschnittstelle und sekundären Kontextdaten, wobei die sekundären Kontextdaten mindestens eines von einem Ort, einer Zeit, einer Benutzeridentität, Cloud Computing-Daten, Kalenderinformationen, Kontaktinformationen, einer vorhergehenden Anwendung und einer zeitlichen Beziehung zwischen einer aktuellen Zeit und einer Zeit, zu der die vorhergehende Anwendung ausgeführt wurde, umfassen.
-
Beispiel 5. Das Verfahren nach einem der Beispiele 1 bis 4, wobei das Bestimmen der Kontextdaten umfasst: Erfassen eines Screenshots der grafischen Benutzerschnittstelle der Anwendung; Ausführen einer Bildanalyse an dem Screenshot; und Bestimmen, basierend mindestens teilweise auf der Bildanalyse, der Kontextdaten.
-
Beispiel 6. Das Verfahren von Beispiel 5, wobei das Ausführen der Bildanalyse umfasst: Ausführen eines optischen Zeichenerkennungsprozesses an dem Screenshot, um ein oder mehrere Zeichen auf dem Screenshot zu bestimmen; und Bestimmen der Kontextdaten basierend mindestens teilweise auf dem einen oder den mehreren Zeichen.
-
Beispiel 7. Das Verfahren nach einem der Beispiele 1 bis 6, wobei das Bestimmen der Kontextdaten umfasst: Analysieren einer Ansichtshierarchie der Anwendung; für ein in der Ansichtshierarchie beinhaltetes Ansichtsobjekt: Identifizieren des Ansichtsobjekts; Bestimmen von mit dem identifizierten Ansichtsobjekt verknüpften Informationen; und Bestimmen, basierend mindestens teilweise auf den bestimmten Informationen, von mindestens einem Teil der Kontextdaten.
-
Beispiel 8. Das Verfahren nach einem der Beispiele 1 bis 7, wobei das Bestimmen des Unterstützungshinweises weiter umfasst: Senden der Kontextdaten an eine Remote-Computervorrichtung, wobei die Remote-Computervorrichtung Informationen für den Unterstützungshinweis von den Kontextdaten bestimmt; Empfangen der Informationen für den Unterstützungshinweis von der Remote-Computervorrichtung; und Erzeugen des Unterstützungshinweises zum Verkünden basierend mindestens teilweise auf den Informationen.
-
Beispiel 9. Eine Computervorrichtung umfassend: mindestens einen Prozessor; und mindestens ein Modul, das durch den mindestens einen Prozessor betriebsfähig ist zum: Ausgeben, zum Anzeigen an einer Anzeigekomponente, die wirkend mit der Computervorrichtung gekoppelt ist, einer grafischen Benutzerschnittstelle einer Anwendung; Bestimmen von Kontextdaten von in der grafischen Benutzerschnittstelle beinhaltetem Inhalt; Bestimmen, basierend mindestens teilweise auf den Kontextdaten, eines Unterstützungshinweises, der kontextuell mit dem in der grafischen Benutzerschnittstelle beinhalteten Inhalt in Zusammenhang steht; und Ausgeben des Unterstützungshinweises.
-
Beispiel 10. Die Computervorrichtung von Beispiel 9, wobei das mindestens eine Modul mit Betriebssystemprivilegien auf der Computervorrichtung ausgeführt wird, und wobei das mindestens eine Modul durch den mindestens einen Prozessor betriebsfähig ist zum: Extrahieren von mindestens einer Eigenschaft des Ansichtsobjekts; und Bestimmen, basierend mindestens teilweise auf der mindestens einen Eigenschaft, von mindestens einem Teil der Kontextdaten.
-
Beispiel 11. Die Computervorrichtung nach einem der Beispiele 9 bis 10, wobei das mindestens eine durch den mindestens einen Prozessor betriebsfähige Modul weiter betriebsfähig ist zum: Senden der Kontextdaten an eine Remote-Computervorrichtung, wobei die Remote-Computervorrichtung Informationen für den Unterstützungshinweis von den Kontextdaten bestimmt; Empfangen, von der Remote-Computervorrichtung, der Informationen für den Unterstützungshinweis; und Erzeugen zum Verkünden, basierend mindestens teilweise auf den Informationen, des Unterstützungshinweises.
-
Beispiel 12. Die Computervorrichtung nach einem der Beispiele 9 bis 11, wobei die Kontextdaten von in der grafischen Benutzerschnittstelle beinhaltetem Inhalt primäre Kontextdaten sind, und wobei das mindestens eine Modul weiter betriebsfähig ist zum: Bestimmen des Unterstützungshinweises basierend mindestens teilweise auf den primären Kontextdaten der grafischen Benutzerschnittstelle und den sekundären Kontextdaten, wobei die sekundären Kontextdaten mindestens eines von einem Ort, einer Zeit, einer Benutzeridentität, Cloud Computing-Daten, Kalenderinformationen, Kontaktinformationen, einer vorhergehenden Anwendung und einer zeitlichen Beziehung zwischen einer aktuellen Zeit und einer Zeit, zu der die vorhergehende Anwendung ausgeführt wurde, umfassen.
-
Beispiel 13. Die Computervorrichtung nach einem der Beispiele 9 bis 12, wobei das mindestens eine Modul durch den mindestens einen Prozessor betriebsfähig ist zum: Erfassen eines Screenshots der grafischen Benutzerschnittstelle; Ausführen einer Bildanalyse an dem Screenshot; und Bestimmen, basierend mindestens teilweise auf der Bildanalyse, der Kontextdaten.
-
Beispiel 14. Die Computervorrichtung von Beispiel 13, wobei das mindestens eine Modul durch den mindestens einen Prozessor betriebsfähig ist zum: Ausführen eines optischen Zeichenerkennungsprozesses an dem Screenshot, um einen oder mehrere Zeichen auf dem Screenshot zu bestimmen; und Bestimmen, basierend mindestens teilweise auf dem einen oder den mehreren Zeichen, der Kontextdaten.
-
Beispiel 15. Die Computervorrichtung nach einem der Beispiele 9 bis 14, wobei das mindestens eine Modul durch den mindestens einen Prozessor betriebsfähig ist zum Bestimmen von Kontextdaten von Inhalt, der in der grafischen Benutzerschnittstelle beinhaltet ist, zum: Analysieren einer Ansichtshierarchie der Anwendung bei der Computervorrichtung; Identifizieren eines Ansichtsobjekts, das in der Ansichtshierarchie beinhaltet ist, das in einem gegenwärtigen Bildschirmbild der grafischen Benutzerschnittstelle der Anwendung dargestellt wird; für das in der Ansichtshierarchie umfasste Ansichtsobjekt: Bestimmen von mit dem Ansichtsobjekt verknüpften Informationen; und Bestimmen, basierend mindestens teilweise auf den bestimmten Informationen, der Kontextdaten.
-
Beispiel 16. Ein computerlesbares Speichermedium, das mit Befehlen programmiert ist, die bei Ausführung mindestens einen Prozessor einer Computervorrichtung veranlassen zum: Ausgeben einer grafischen Benutzerschnittstelle einer Anwendung zum Anzeigen auf einer Anzeigekomponente, die wirkend mit der Computervorrichtung gekoppelt ist; Bestimmen von Kontextdaten von in der grafischen Benutzerschnittstelle beinhaltetem Inhalt; Bestimmen, basierend mindestens teilweise auf den Kontextdaten, eines Unterstützungshinweises, der kontextuell mit dem in der grafischen Benutzerschnittstelle beinhalteten Inhalt in Zusammenhang steht; und Ausgeben des Unterstützungshinweises.
-
Beispiel 17. Das computerlesbare Speichermedium von Beispiel 16, wobei die Befehle, die den mindestens einen Prozessor veranlassen, den Unterstützungshinweis zu bestimmen, Befehle umfassen, die bei Ausführung den mindestens einen Prozessor der Computervorrichtung veranlassen zum: Senden der Kontextdaten an eine Remote-Computervorrichtung, wobei die Remote-Computervorrichtung Informationen für den Unterstützungshinweis bestimmt; Empfangen, von der Remote-Computervorrichtung, von Informationen für den Unterstützungshinweis; und Erzeugen zum Verkünden, basierend mindestens teilweise auf den Informationen, des Unterstützungshinweises von den Kontextdaten.
-
Beispiel 18. Das computerlesbare Speichermedium nach einem der Beispiele 16 bis 17, wobei die Befehle, die den mindestens einen Prozessor veranlassen, die Kontextdaten zu bestimmen, Befehle umfassen, die bei Ausführung den mindestens einen Prozessor der Computervorrichtung veranlassen zum: Zugreifen auf eine Ansichtshierarchie bei der Computervorrichtung; Identifizieren eines Ansichtsobjekts der Ansichtshierarchie, das in der grafischen Benutzerschnittstelle dargestellt wird; Extrahieren von mindestens einer Eigenschaft des Ansichtsobjekts; und Bestimmen, basierend mindestens teilweise auf der mindestens einen Eigenschaft, mindestens einen Teil der Kontextdaten.
-
Beispiel 19. Das computerlesbare Speichermedium nach einem der Beispiele 17 oder 18, wobei die Kontextdaten von dem in der grafischen Benutzerschnittstelle beinhalteten Inhalt primäre Kontextdaten sind, und wobei die Befehle, die den mindestens einen Prozessor veranlassen, den Unterstützungshinweis zu bestimmen, Befehle umfassen, die bei Ausführung den mindestens einen Prozessor der Computervorrichtung veranlassen, den Unterstützungshinweis basierend mindestens teilweise auf den primären Kontextdaten und einer Reihe von sekundären Kontextdaten zu bestimmen, wobei die Reihe von sekundären Kontextdaten mindestens eines von einem Ort, einer Zeit, einer Benutzeridentität, Cloud Computing-Daten, Kalenderinformationen, Kontaktinformationen, einer vorhergehenden Anwendung und einer zeitlichen Beziehung zwischen einer aktuellen Zeit und einer Zeit, zu der die vorhergehende Anwendung ausgeführt wurde, umfasst.
-
Beispiel 20. Das computerlesbare Speichermedium nach einem der Beispiele 17 bis 19, wobei die Befehle, die den mindestens einen Prozessor veranlassen, die Kontextdaten zu bestimmen, Befehle umfassen, die bei Ausführung den mindestens einen Prozessor der Computervorrichtung veranlassen zum: Erfassen eines Screenshots der grafischen Benutzerschnittstelle; Ausführen einer Bildanalyse an dem Screenshot; und Bestimmen, basierend mindestens teilweise auf der Bildanalyse, der Kontextdaten.
-
Beispiel 21. Ein System, das Mittel zum Ausführen irgendwelcher der Verfahren der Beispiele 1 bis 8 umfasst.
-
Bei einem oder mehreren Beispielen können die Funktionen, die beschrieben sind, in Hardware, Software, Firmware oder jeder Kombination davon implementiert sein. Wenn sie in Software implementiert sind, können die Funktionen auf einem computerlesbaren Medium gespeichert sein oder als ein oder mehrere Befehle oder Code gesendet und durch eine hardwarebasierte Verarbeitungseinheit ausgeführt werden. Computerlesbare Medien können computerlesbare Speichermedien umfassen, die einem körperlichen Medium wie Datenspeichermedien oder Kommunikationsmedien entspricht, die jedes Medium umfassen, das eine Übertragung eines Computerprogramms von einem Ort zu einem anderen z. B. gemäß einem Kommunikationsprotokoll erleichtert. Auf diese Weise können computerlesbare Medien generell (1) körperlichen computerlesbaren Speichermedien entsprechen, die nicht flüchtig sind oder (2) einem Kommunikationsmedium wie einem Signal oder einer Trägerwelle. Datenspeicherungsmedien können irgendwelche verfügbaren Medien sein, auf die durch ein oder mehrere Computer oder einen oder mehrere Prozessoren zugegriffen werden kann, um Befehle, Code und/oder Datenstrukturen für die Implementierung der in dieser Offenbarung beschriebenen Techniken abzurufen. Ein Computerprogrammprodukt kann ein computerlesbares Medium umfassen
-
Beispiel 21. Eine Vorrichtung, die Mittel zum Ausführen des Verfahrens von irgendeiner Kombination aus den Beispielen 1 bis 8 umfasst.
-
Beispiel 22. Ein computerlesbares Speichermedium, das mit Befehlen programmiert ist, die bei Ausführung mindestens einen Prozessor einer Computervorrichtung veranlassen, das Verfahren irgendeiner Kombination aus den Beispielen 1 bis 8 auszuführen.
-
In der Offenbarung sind Beispiele beschrieben, in denen eine Computervorrichtung und/oder ein Computersystem Informationen (z. B. Standorte, Geschwindigkeiten usw.), die mit einer Computervorrichtung verknüpft sind, analysiert, wenn die Computervorrichtung eine Erlaubnis vom Benutzer zum Analysieren der Informationen empfängt. So wird dem Benutzer in den nachfolgenden beschriebenen Situationen, in denen das Computergerät möglicherweise mit dem Benutzer verknüpfte Informationen sammelt oder verwendet, unter Umständen eine Möglichkeit gegeben, eine Eingabe zu machen, um zu steuern, ob Programme oder Funktionen des Computergeräts Benutzerinformationen (wie z. B. Informationen zum aktuellen Standort des Benutzers, die aktuelle Geschwindigkeit usw.) sammeln und verwenden dürfen, oder um festzulegen, ob und/oder wie das Computergerät Inhalte empfangen kann, die möglicherweise für den Benutzer relevant sind. Außerdem können bestimmte Daten auf eine oder mehrere Arten behandelt werden, bevor sie durch die Computervorrichtung und/oder das Computersystem gespeichert oder verwendet werden, sodass personenbezogene Informationen entfernt sind. Eine Benutzeridentität kann beispielsweise so behandelt werden, dass keine persönlichen identifizierbaren Informationen über den Benutzer bestimmt werden können, oder ein Standort des Benutzers kann verallgemeinert werden, wobei Standortinformationen entnommen werden (wie beispielsweise eine Stadt, Postleitzahl oder Bundesland), sodass ein bestimmter Standort eines Benutzers nicht festgestellt werden kann. Daher kann der Benutzer Kontrolle darüber haben, wie Informationen über den Benutzer gesammelt und von der Computervorrichtung benutzt werden.
-
Beispielhaft und nicht darauf beschränkt können solche computerlesbaren Speichermedien RAM, ROM, EEPROM, CD-ROM oder andere optische Plattenspeicher, Magnetplattenspeicher oder andere Magnetspeichervorrichtungen, Flash-Speicher oder jedes andere Medium umfassen, das verwendet werden kann, um einen gewünschten Programmcode in der Form von Befehlen oder Datenstrukturen zu speichern, und auf den durch einen Computer zugegriffen werden kann. Außerdem wird jede Verbindung als computerlesbares Medium korrekt benannt, wenn beispielsweise Befehle von einer Webseite, von einem Server oder einer anderen entfernten Quelle unter Verwendung eines Koaxialkabels, Lichtwellenleiters, verdrillten Doppelkabels, Digital Subscriber Line (DSL) oder von Funktechnologien wie Infrarot, Funk und Mikrowelle gesendet werden, und dann ist das Koaxialkabel, der Lichtwellenleiter, das verdrillte Doppelkabel, DSL oder die Funktechnologien wie Infrarot, Funk und Mikrowelle in der Definition von Medium umfasst. Es sollte jedoch selbstverständlich sein, dass computerlesbare Speichermedien und Datenspeichermedien keine Verbindungen, Trägerwellen, Signale oder andere flüchtige Medien umfassen, sondern stattdessen an nicht flüchtige greifbare Speichermedien gerichtet sind. Disk und Disc wie verwendet, umfassen Compact Disc (CD), Laserdisc, Bildplatte, Digital Versatile Disc (DVD), Diskette und Blu-Ray-Disk, wobei Disks gewöhnlich Daten magnetisch reproduzieren, während Discs Daten optisch mit Lasern reproduzieren. Kombinationen des vorstehenden sollten auch innerhalb des Umfangs computerlesbarer Medien eingeschlossen sein.
-
Befehle können durch einen oder mehrere Prozessoren, wie einen oder mehrere Digitalsignalprozessoren (DSPE), Universal-Mikroprozessoren, anwendungsspezifische integrierte Schaltungen (ASICs), anwenderprogrammierbare Logikanordnungen (FPGAs) oder andere äquivalente integrierte oder diskrete Logikschaltungen ausgeführt werden. Dementsprechend kann der Begriff „Prozessor“, wie er verwendet ist, auf irgendeine der vorhergehenden Struktur oder jede andere Struktur verweisen, die für die Implementierung der beschriebenen Techniken geeignet ist. Bei einigen Aspekten kann die beschriebene Funktionalität außerdem innerhalb zugehöriger Hardware- und/oder Softwaremodule bereitgestellt sein. Außerdem könnten die Techniken in einer oder mehreren Schaltungen oder Logikelementen vollständig implementiert werden.
-
Die Techniken dieser Offenbarung können in einer großen Vielfalt von Geräten oder Vorrichtungen implementiert werden, einschließlich einer drahtlosen Mobilfunkvorrichtung, einer integrierten Schaltung (IC) oder einer Reihe von ICs (z. B. ein Chipsatz). Verschiedene Komponenten, Module oder Einheiten werden in dieser Offenbarung beschrieben, um funktionelle Aspekte von Vorrichtungen hervorzuheben, die konfiguriert sind, die offenbarten Techniken auszuführen, aber nicht zwangsläufig eine Realisierung durch unterschiedliche Hardwareeinheiten erfordern. Vielmehr können, wie vorstehend beschrieben, verschiedene Einheiten in einer Hardwareeinheit kombiniert oder durch eine Sammlung von interoperativen Hardwareeinheiten bereitgestellt sein, die einen oder mehrere Prozessoren wie vorstehend beschrieben in Verbindung mit der geeigneten Software und/oder Firmware umfassen.
-
Es ist zu beachten, dass abhängig von der Ausführungsform, bestimmte Handlungen oder Ereignisse von jedem der hierin beschriebenen Verfahren in einer unterschiedlichen Sequenz ausgeführt, hinzugefügt, zusammengeführt oder vollständig ausgelassen werden können (z. B. sind nicht alle beschriebenen Handlungen oder Ereignisse für das Praktizieren des Verfahrens erforderlich). Des Weiteren können bei bestimmten Ausführungsformen Handlungen oder Ereignisse gleichzeitig, z. B. durch Multithreadverarbeitung, Interruptverarbeitung oder mehrere Prozessoren anstatt sequenziell ausgeführt werden.
-
Bei einigen Beispielen kann ein computerlesbares Speichermedium ein nicht flüchtiges Medium umfassen. Der Begriff „nicht flüchtig“ kann anzeigen, dass das Speichermedium nicht in einer Trägerwelle oder einem propagierten Signal verkörpert ist. Bei bestimmten Beispielen kann ein nicht flüchtiges Speichermedium Daten speichern, die sich mit der Zeit (z. B. im RAM oder Cache) ändern können.
-
Verschiedene Beispiele der Offenbarung wurden beschrieben. Jede Kombination aus den beschriebenen Systemen, Operationen oder Funktionen ist denkbar. Diese und andere Beispiele befinden sich im Umfang der folgenden Ansprüche.