-
I. GEBIET
-
Die vorliegende Anwendung bezieht sich im Allgemeinen auf den Empfang von Eingaben auf einem ersten Gerät und der Bereitstellung von Ausgaben auf einem zweiten Gerät.
-
II. HINTERGRUND:
-
Computergeräte wie Notebooks und Smartphones empfangen normalerweise Eingaben wie eine Anforderung eines Anwenders, und bieten eine Ausgabe, je nach der Anforderung auf demselben Gerät. Die vorliegenden Prinzipien erkennen jedoch, dass das Computergerät, welches die Eingabe erhält, nicht unbedingt das geeignetste Gerät für die Bereitstellung der Ausgabe ist, und könnte z.B. nicht einmal die erforderliche Funktionalität aufweisen, um der Anforderung vollkommen gerecht zu werden.
-
KURZDARSTELLUNG
-
Dementsprechend umfasst eine Vorrichtung in einem ersten Aspekt einen Prozessor und einen Speicher, der für den Prozessor zugänglich ist. Der Speicher enthält Anweisungen, die durch den Prozessor ausführbar sind, um Eingaben durch den Anwender in der Vorrichtung zu erhalten und zur Folge eine Ausgabe zu bieten und die Ausgabe auf einem separaten, von der Vorrichtung getrennten Gerät zu präsentieren, anstatt sie auf der Vorrichtung zu präsentieren. Bei dem Gerät handelt es sich nicht um ein Ausgabegerät der Vorrichtung.
-
Die Vorrichtung könnte daher kein Smartphone sein, das Gerät kann aber ein Smartphone sein. Die Anweisungen könnten dementsprechend weiter durch den Prozessor ausführbar sein, um automatisch mithilfe der Vorrichtung ein Telefongespräch zu beginnen, ohne weitere Befehle oder Eingabe durch den Benutzer in Antwort auf der Bestimmung, dass die Eingabe bei der Vorrichtung ein Befehl ist, ein Telefongespräch zu führen.
-
Des Weiteren könnten die Anweisungen in manchen Ausführungsformen weiter durch den Prozessor ausführbar sein, um einen Nutzungskontext der Eingabe des Benutzers zu bestimmen und, zumindest zum Teil basierend auf dem Nutzungskontext eines Gerätes bestimmen, an das die Antwort geliefert werden soll. Die Anweisungen können, falls gewünscht, auch weiter durch den Prozessor ausführbar sein, um eine Position der Vorrichtung zu bestimmen, um zu bestimmen, dass sich das Gerät in der Nähe oder neben der Position befindet und, zumindest zum Teil basierend auf einer Bestimmung, dass das Gerät in der Nähe oder neben der Position ist, um zu bestimmen, die Antwort an das Gerät auszugeben. Die Anweisungen können ebenfalls durch den Prozessor ausführbar sein, um die Antwort auf einem Gerät zu präsentieren, basierend auf der Eingabe eines Positionssensors, eines Temperatursensors, eines Feuchtigkeitssensors, eines Umgebungslichtsensors und/oder eines Näherungssensors.
-
Neben dem Vorhergehenden können die Anweisungen, falls gewünscht, weiter durch den Prozessor ausführbar sein, um zu bestimmen, die Antwort auf dem Gerät zu präsentieren, basierend zumindest zum Teil auf der Bestimmung, dass das Gerät das nächstgelegende zu der Vorrichtung und/oder auf einer Liste von Geräten ist. Auch können die Anweisungen, falls gewünscht, weiter durch den Prozessor ausführbar sein, um zu bestimmen, die Antwort auf dem Gerät zu präsentieren, basierend zumindest zum Teil auf der Bestimmung, dass der Benutzer auf das Gerät schaut.
-
In einem weiteren Aspekt umfasst ein Verfahren den Empfang einer Benutzereingabe, auf einer Vorrichtung, die eine Ausgabe verlangt, und die Bestimmung eines Gerätes, auf dem die Ausgabe präsentiert werden soll, basierend zumindest zum Teil auf der Fähigkeit des Gerätes und/oder kontextbezogener Folgerung und/oder flüchtiger Informationen und/oder inhaltsbasierter Daten.
-
In einem noch anderen Aspekt umfasst ein erstes Gerät einen Prozessor und einen Speicher, der für den Prozessor zugänglich ist. Der Speicher enthält Anweisungen, die durch den Prozessor ausführbar sind, um Benutzereingaben zu erhalten und ein Signal zu erzeugen, das eine Ausgabe als Antwort darstellt, und zumindest zum Teil auf einer Position des ersten Gerätes und/oder einem Kontext der Eingabe basieren, die Identität eines zweiten Gerätes zu bestimmen, das sich von dem ersten Gerät, dem sie die Ausgabe übermitteln soll, unterscheidet.
-
Die Einzelheiten der vorliegenden Prinzipien bezüglich deren Struktur und Betrieb sind am verständlichsten in Bezug auf die begleitenden Zeichnungen, bei denen sich ähnliche Referenzzahlen auf ähnliche Teile beziehen, und bei denen:
-
KURZE BESCHREIBUNG DER ZEICHNUNGEN
-
1 ist ein Blockdiagramm eines Gerätebeispiels entsprechend der vorliegenden Prinzipien;
-
2 ist ein Blockdiagramm eines Netzwerks von Geräten entsprechend der vorliegenden Prinzipien;
-
Die 3 und 4 sind Beispiel-Flussdiagramme der Logik, die entsprechend der vorliegenden Prinzipien von einem Gerät ausgeführt wird;
-
Die 5 ist ein Beispiel-Flussdiagramm der Logik, die entsprechend der vorliegenden Prinzipien von einem Server ausgeführt wird;
-
Die 6–8 sind Beispiel-Benutzeroberflächen (UIs), die entsprechend der vorliegenden Prinzipien auf einem Gerät darstellbar sind;
-
9 ist ein Beispielsystem, das Komponenten umfasst, die entsprechend der vorliegenden Prinzipien flüchtige Informationen bereitstellen.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Diese Offenbarung bezieht sich im Allgemeinen auf gerätebasierte (z. B. Unterhaltungselektronik) Benutzerinformationen. In Bezug auf die hier besprochenen Computersysteme kann ein System Server- und Clientkomponenten umfassen, verbunden über ein Netzwerk, sodass Daten über die Client- und Serverkomponenten ausgetauscht werden können. Die Clientkomponenten können ein oder mehrere Rechnergeräte umfassen, darunter Fernseher (z.B. Smart-TVs, internetfähige TVs), Computer wie Laptops, Tabletcomputer und sonstige Mobilgeräte, darunter Smartphones. Diese Clientgeräte können, als nicht-einschränkende Beispiele, Betriebssysteme von Apple, Google oder Microsoft anwenden. Es kann ein Unix-Betriebssystem verwendet werden. Diese Betriebssysteme können einen oder mehrere Browser verwenden, darunter ein Browser von Microsoft oder Google oder Mozilla oder sonstige Browserprogramme, die auf Webanwendungen zugreifen können, die von den Internetservern über ein Netzwerk wie das Internet, ein lokales Intranet oder ein virtuelles privates Netzwerk gehostet werden.
-
Wie hier verwendet, beziehen sich Anweisungen auf Computerimplementierte Schritte für die Verarbeitung von Informationen im System. Anweisungen können bei Software, Firmware oder Hardware implementiert werden, daher werden erläuternde Komponenten, Blöcke, Module, Schaltkreise und Schritte in Bezug auf ihre Funktionalität aufgeführt.
-
Ein Prozessor kann ein beliebiger herkömmlicher Allzweckprozessor mit einem oder mehreren Chips sein, der mit Hilfe von verschiedenen Leitungen wie Adressleitungen, Datenleitungen und Kontrollleitungen und Register und Schieberegister eine Logik ausführen kann. Des Weiteren können beliebige hier beschriebene logische Blöcke, Module und Schaltkreise verwendet werden neben einem Allzweckprozessor, in oder neben einem Digitalsignalprozessor (DSP), einem feldprogrammierbaren Gatearray (FPGA) oder ein sonstiges programmierbares logisches Gerät wie einem anwendungsspezifischen integrierten Schaltkreis (ASIC), diskreter Gate- oder Transistorlogik, diskreter Hardwarekomponenten oder einer Kombination davon, um die hier beschriebenen Funktionen auszuführen. Ein Prozessor kann durch eine Steuerung oder Zustandsmaschine oder einer Kombination von Computergeräten implementiert werden.
-
Mit den hier aufgeführten Flussdiagrammen und/oder Benutzeroberflächen beschriebene Software und/oder Anwendungen können verschiedene Unterroutinen, Verfahren usw. umfassen. Es versteht sich, dass die als z. B. durch einem Modul ausgeführte enthüllte Logik auf andere Softwaremodule weiter verteilt und/oder in einem einzelnen Modul vereint und/oder in einer verteilbaren Bibliothek zur Verfügung gestellt werden kann.
-
Logik, wenn in Software verwendet, kann in einer geeigneten Sprache geschrieben werden, darunter C# oder C++, und kann auf für Computer lesbare Speichermedien (z. B. kann dies nicht eine Trägerwelle sein) wie ein Direktzugriffsspeicher (RAM), Nur-Lese-Speicher (ROM), elektrisch löschbarer, programmierbarer Nur-Lese-Speicher (EEPROM), Compact Disc-Nur-Lese-Speicher (CD-ROM) oder ein weiterer optischer Plattenspeicher wie die digitale, vielseitig verwendbare Disc (DVD), Plattenspeicher oder sonstige Magnetspeichergeräte, darunter entfernbare Speichersticks usw. gespeichert und übertragen werden. Eine Verbindung kann ein vom Computer lesbares Medium aufbauen. Solche Verbindungen können zum Beispiel fest verdrahtete Kabel umfassen, darunter Faseroptik und Koaxialkabel und verdrillte Doppelkabel. Solche Verbindungen können drahtlose Kommunikationsverbindungen, darunter Infrarot und Radio, umfassen.
-
In einem Beispiel kann ein Prozessor über seine Eingangsleitungen vom Datenspeicher, wie das vom Computer lesbare Speichermedium, auf Informationen zugreifen, und/oder der Prozessor kann drahtlos von einem Internetserver auf Informationen zugreifen, um Daten zu senden und zu empfangen. Die Daten werden üblicherweise von Analogsignalen zu Digitalsignalen durch einem Schaltkreis zwischen der Antenne und den Registern des Prozessors, wenn empfangen umgewandelt, und wenn übertragen von digital zu analog,. Der Prozessor verarbeitet dann die Daten durch seine Schieberegister, um berechnete Daten auf Ausgangsleitungen auszugeben, für die Darstellung der berechneten Daten auf dem Gerät.
-
Die bei einer Ausführungsform einbezogenen Komponenten können bei anderen Ausführungsformen in einer geeigneten Kombination verwendet werden. Es können zum Beispiel verschiedene der hier beschriebenen und/oder in den Figuren dargestellten Komponenten kombiniert, ausgetauscht oder bei anderen Ausführungsformen weggelassen werden.
-
"Ein System mit mindestens einem von A, B und C" (ähnlich wie "ein System mit mindestens einem von A, B oder C" und "ein System mit mindestens einem von A, B, C") umfasst Systeme, die A allein, B allein, C allein, A und B zusammen, A und C zusammen, B und C zusammen und/oder A, B und C zusammen usw. umfassen.
-
Der Begriff "Schaltkreis" oder "Schaltung" wird in der Zusammenfassung, Beschreibung und/oder den Ansprüchen verwendet. Wie in der Fachwelt gut bekannt umfasst der Begriff "Schaltung" alle Ebenen der Integration, d. h. von diskreten logischen Schaltkreisen zur höchsten Ebene der Schaltkreisintegration wie VLSI, und umfasst programmierbare logische Komponenten programmiert zur Ausführung der Funktionen einer Ausführungsform sowie als Allzweck- oder Sonderzweck-Prozessoren programmiert mit Anweisungen, um diese Funktionen auszuführen.
-
Nun mit Bezug auf 1 wird ein Blockdiagrammbeispiel eines Computersystembeispiels 100 wie z. B. ein mit dem Internet verbundenes, computergesteuertes Telefon (z. B. ein Smartphone), ein Tablet-Computer, ein Notebook oder Schreibtischrechner, ein mit dem Internet verbundenes, computergesteuertes tragbares Gerät, wie eine Smartwatch, einen computergesteuerten Fernseher, wie ein Smart-TV, so genannte "konvertierbare" Geräte wie z. B. ein Tablett, das durch Anschließen einer Soft-Tastatur in einen Laptop verwandet werden kann und/oder andere Smartgeräte usw. dargestellt. In manchen Ausführungsformen kann das System 100 z. B. ein Schreibtischcomputersystem wie die ThinkCentre® oder ThinkPad®, eine Reihe von Privatcomputern vertrieben von Lenovo (US) Inc. aus Morrisville, NC oder ein Workstationcomputer, wie der ThinkStation®, vertrieben von Lenovo (US) Inc. of Morrisville, NC, sein. Wie jedoch aus der Beschreibung hier ersichtlich, kann ein Clientgerät, ein Server oder sonstige Maschine entsprechend der vorliegenden Prinzipien andere Merkmale oder nur manche der Merkmale des Systems 100 umfassen.
-
Wie in 1 gezeigt, umfasst das System 100 einen so genannte Chipsatz 110. Ein Chipsatz bezieht sich auf einer Gruppe von integrierten Schaltkreisen oder Chips, die darauf ausgerichtet sind, zusammenzuarbeiten. Chipsätze werden normalerweise als Einzelprodukte angeboten (z. B. sind Chipsätze der Marken INTEL®, AMD®, usw. zu beachten).
-
Im Beispiel von 1 weist der Chipsatz 110 eine besondere Architektur auf, die je nach Marke oder Hersteller in gewissem Maße unterschiedlich sein kann. Die Architektur des Chipsatzes 110 umfasst eine Kern- und Speicherkontrollgruppe 120 und einen E/A-Kontrollerhub 150, die Informationen (z. B. Daten, Signale, Befehle usw.) austauschen, z. B. durch eine direkte Verwaltungsschnittstelle oder eine direkte Medienschnittstelle (DMI) 142 oder einem Linkkontroller 144. Im Beispiel von 1 ist die DMI 142 eine Chip-zu-Chip-Schnittstelle (manchmal als Verbindung zwischen einer "Nordbrücke" und einer "Südbrücke" bezeichnet).
-
Die Kern- und Speicherkontrollgruppe 120 umfasst einen oder mehrere Prozessoren 122 (z. B. Einzelkern oder Mehrkern usw.) und einen Speicherkontrollhub 126, um Informationen über einen Frontseitenbus (FSB) 124 auszutauschen. Wie hier beschrieben könnten unterschiedliche Komponenten der Kern- und Speicherkontrollgruppe 120 in einem einzigen Prozessorwürfel integriert werden, z. B. um einen Chip zu erstellen, der die herkömmliche "Nordbrücke"-Architektur ersetzt.
-
Der Speicherkontrollhub 126 ist an dem Speicher 140 angeschlossen. Der Speicherkontrollhub 126 kann zum Beispiel Unterstützung für DDR SDRAM Speicher (z. B. DDR, DDR2, DDR3 usw.) bereitstellen. Im Allgemeinen ist der Speicher 140 eine Art von Schreib-Lese-Speicher. Dieser wird oft "Systemspeicher" genannt.
-
Der Speicherkontrollhub 126 umfasst des Weiteren eine Niederspannungs-Differentialsignalisierungsschnittstelle (LVDS) 132. Die LVDS 132 kann eine so genannte LVDS-Anzeigeschnittstelle (LDI) für die Unterstützung eines Anzeigegerätes 192 (z. B. eine CRT, ein Fachbildschirm, ein Projektor, eine touchfähige Anzeige usw.) sein. Ein Block 138 umfasst manche Beispiele von Technologien, die über die LVDS Schnittstelle 132 unterstützt werden können (z. B. serielles digitales Video, HDMI/DVI, Displayport). Der Speicherkontrollhub 126 umfasst ebenfalls eine oder mehrere PCI-Express-Schnittstellen (PCI-E) 134, z. B. zur Unterstützung von diskreten Grafiken 136. Diskrete Grafiken mithilfe einer PCI-E-Schnittstelle hat sich in einen alternativen Ansatz zu einem beschleunigten Grafikport (AGP) verwandelt. Zum Beispiel kann der Speicherkontrollhub 126 einen 16-Lanes (x16) PCI-E-Port für eine externe PCI-E-basierte Grafikkarte (mit z. B. einer oder mehreren GPUs) umfassen. Ein Beispielsystem kann AGP oder PCI-E als Grafiksupport umfassen.
-
Der E/A-Hubkontroller 150 umfasst eine Vielfalt von Schnittstellen. Das Beispiel von 1 umfasst eine SATA-Schnittstelle 151, eine oder mehrere PCI-E-Schnittstellen 152 (wahlweise eine oder mehrere veraltete PCI-Schnittstellen), eine oder mehrere USB-Schnittstellen 153, eine LAN-Schnittstelle 154 (üblicherweise eher eine Netzwerkschnittstelle für die Kommunikation über mindestens einem Netzwerk wie das Internet, ein WAN, ein LAN usw. unter der Leitung der Prozessoren 122), eine All- zweck-E/A-Schnittstelle (GPIO) 155, eine Schnittstelle mit niedriger Pinzahl (LPC) 170, eine Energieverwaltungsschnittstelle 161, eine Uhrgeneratorschnittstelle 162, eine Audioschnittstelle 163 (z. B. für Lautsprecher 194 für die Ausgabe von Audio), eine Gesamtbetriebskosten (TCO) Schnittstelle 164, eine Systemverwaltungs-Busschnittstelle (z. B. eine serielle Multi-Master-Computer-Busschnittstelle) 165 und eine serielle periphere Flash-Speicher/Kontrollerschnittstelle (SPI-Flash) 166, was bei dem Beispiel von 1 BIOS 168 und Bootcode 190 umfasst. In Bezug auf die Netzwerkverbindungen kann der E/A Hubkontroller 150 integrierte Gigabit-Ethernet-Kontrollerleitungen überlagert mit einem PCI-E-Schnittstellenport umfassen. Andere Netzwerkfunktionen können unabhängig von der PCI-E-Schnittstelle betrieben werden.
-
Die Schnittstelle des E/A-Hubkontrollers 150 bietet Kommunikation für verschiedene Geräte, Netzwerke usw. Zum Beispiel bietet die SATA-Schnittstelle 151 Lesen, Schreiben oder Lesen und Schreiben von Informationen auf einem oder mehreren Laufwerken 180, z. B. HDDs, SDDs oder eine Kombination davon, die Laufwerke 180 sind jedoch in jedem Fall konkrete computerlesbare Speichermedien. Der E/A-Hubkontroller 150 kann ebenfalls eine erweiterte Hoststeuerungsschnittstelle (AHCI) umfassen, um ein oder mehrere Laufwerke 180 zu unterstützen. Die PCI-E-Schnittstelle 152 ermöglicht drahtlose Verbindungen 182 für Geräte, Netzwerke usw. Die USB-Schnittstelle 153 ermöglicht den Anschluss von Eingabegeräte 184, wie Tastatur, Maus und viele andere Geräte (z. B. Kameras, Telefone, Speicher, Mediaplayer usw.).
-
In dem Beispiel von 1 ermöglicht die LPC-Schnittstelle 170 den Anschluss von einem oder mehreren ASICs 171, einem vertrauenswürdigen Plattformmodul (TPM) 172, einem Super-E/A 173, einem Firmwarehub 174, BIOS-Unterstützung 175 sowie unterschiedliche Arten von Speicher 176 wie ROM 177, Flash 178 und nonvolatiles RAM (NVRAM) 179. Was das TPM 172 betrifft, kann dieses Modul in Form eines Chips sein, der zur Authentisierung von Software und Hardwaregeräte verwendet werden kann. Zum Beispiel kann ein TPM in der Lage sein, eine Plattformauthentisierung durchzuführen, und kann zur Überprüfung, dass ein zugriffsuchendes System das erwartete System ist, verwendet werden.
-
Das System 100 kann nach Anschalten konfiguriert werden, Bootcode 190 für das BIOS 168 auszuführen, wie innerhalb des SPI Flash 166 gespeichert, und verarbeitet danach Daten unter der Kontrolle von einem oder mehreren Betriebssystemen und Anwendungssoftware (z. B. gespeichert im Systemspeicher 140). Ein Betriebssystem kann an einer Vielzahl von Orten gespeichert und darauf zugegriffen werden, z. B. gemäß der Anweisungen des BIOS 168.
-
Zusätzlich zu dem Vorstehenden kann das System 100 auch Sensoren und/oder ein Sensorarray mit z. B. einem Näherungs-, Infrarot-, Sonar- und/oder Wärmesensor 193 ausgestattet sein, um eine Eingabe für den Prozessor 122 bereitzustellen, und entsprechend der vorliegenden Prinzipien konfiguriert sein für die Erfassung von z. B. Körperwärme einer Person und/oder der Näherung von zumindest einem Teil der Person bis zumindest einem Teil des Systems 100 sowie des Sensors 193 selbst. Auch kann das System 100 in manchen Ausführungsformen eine oder mehrere Kameras 195 umfassen, die Eingabe für den Prozessor 122 bieten. Die Kamera 195 kann z. B. eine Wärmebildkamera, eine Digitalkamera wie eine Webcam und/oder eine im System 100 integrierte und durch den Prozessor 122 steuerbare Kamera sein, um Bilder und/oder Video entsprechend der vorliegenden Prinzipien zu erfassen (z. B. durch Erfassen von einem oder mehreren Bildern von Augen, um Blickregistrierungssoftware bei den Bildern anzuwenden, wie nachstehend beschrieben). Des Weiteren kann das System 100 einen Audioempfänger/Mikrofon (z. B. ein Mikrofon oder Mikrofonarray) 196 umfassen, z. B. zur Eingabe von einem Befehl an das System 100, entsprechend der vorliegenden Prinzipien.
-
Auch kann das System 100 einen oder mehrere Klimasensoren 197 (wie z. B. einen (Umgebungs-)Lichtsensor, einen Temperatursensor, einen Feuchtigkeitssensor und/oder ein Umgebungssensoren umfassen, die Eingabe für den Prozessor 122 entsprechend der vorliegenden Prinzipien bereitstellen. Das System 100 kann ebenfalls einen oder mehrere Bewegungssensoren 198 (wie z. B einen Beschleunigungsmesser und/oder einen Gestensensor (z. B. für das Erfassen von Gesten im Freiraum verbunden durch das Gerät mit Befehlen entsprechend der vorliegenden Prinzipien), usw.) umfassen, die Eingabe für den Prozessor 122 entsprechend der vorliegenden Prinzipien bereitstellen. Auch wenn nicht dargestellt, könnten noch andere Sensoren einbezogen sein und deren Ausgabe entsprechend der vorliegenden Prinzipien verwendet werden, wie z. B. biometrische Sensoren, Tonsensoren, Orientierungssensoren, Positionssensoren, Scansensoren und/oder Zeitsensoren. Es ist ebenfalls zu beachten, dass ein GPS-Sende-Empfänger 199 dargestellt ist, der konfiguriert ist, um z. B. Informationen zur geografischen Lage von zumindest einem Satelliten zu empfangen und dem Prozessor 122 die Informationen bereitzustellen. Es versteht sich jedoch, dass ein weiterer geeigneter Positionsempfänger als ein GPS-Empfänger entsprechend der vorliegenden Prinzipien verwendet werden kann, um z. B. die Lage des Systems 100 zu bestimmen.
-
Bevor mit der 2 fortgefahren wird und wie hier beschrieben versteht sich, dass ein Beispielgerät oder eine andere Maschine/Computer weniger oder mehr Funktionen als auf dem System 100 der 1 dargestellt umfassen kann. In jedem Fall versteht es sich, basierend auf dem Vorstehenden, dass das System 100 konfiguriert ist, um vorliegende Prinzipien (z. B. Eingabe vom Benutzer erhalten, Ausgabe basierend auf der Eingabe bereitstellen, die nachstehende Logik speichern, ausführen und/oder vornehmen und/oder eine andere Funktion und/oder hier beschriebene Operation ausführen) vorzunehmen.
-
Jetzt mit Bezug auf 2 wird die Kommunikation von Beispielgeräten über ein Netzwerk 200, wie z. B. das Internet, entsprechend der vorliegenden Prinzipien dargestellt. Es versteht sich, dass z. B. jede der in Bezug auf 2 beschriebenen Geräte mindestens manche der oben beschriebenen Funktionen, Komponenten und/oder Elemente des Systems 100 umfassen können. In jedem Fall ist in 2 ein Notebookcomputer 202, ein Schreibtischcomputer 204, ein tragbares Gerät 206, wie z. B. eine Smartwatch, ein Smartfernseher 208, ein Smartphone 2120, ein Tabletcomputer 212 und ein Server 214 entsprechend der vorliegenden Prinzipien aufgeführt, wie z. B. ein Internetserver, der zum Beispiel einen Cloudspeicher bereitstellt, der für die Geräte 202–212 zugänglich ist. Es versteht sich, dass die Geräte 202–214 konfiguriert sind, um miteinander über das Netzwerk 200 zu kommunizieren, um die vorliegenden Prinzipien auszuführen.
-
Nun mit Bezug auf 3 wird ein Beispiel-Flussdiagramm einer Logik aufgeführt, die durch ein Gerät wie das oben beschriebene System 100 (z. B. ein Gerät, das die Logik der 3 ausführt, so wie bei der Beschreibung der 3 als "das Gerät" bezeichnet) entsprechend der vorliegenden Prinzipien ausgeführt wird. Beginnend mit Block 300 empfängt die Logik eine Benutzereingabe, die eine Ausgabe als Antwort auf die Eingabe zur Folge hat. Beispielsweise kann die Eingabe ein akustischer Befehl für das Gerät sein, um als Antwort eine Funktion auszugeben, die Auswahl eines Symbols, um eine zugehörige Anwendung zu starten, einen Befehl für das Gerät bereitzustellen, um einen Telefonanruf einzuleiten und/oder eine E-Mail zu schreiben, einen Befehl zur Präsentierung von Audio-Video (AV)-Inhalt usw. In jedem Falls fährt die Logik nach Block 300 mit Block 302 fort, wobei die Logik eine oder mehrere der folgenden Optionen bestimmt: einen Nutzungskontext der Benutzereingabe, eine oder mehrere Fähigkeiten des ersten Gerätes, flüchtige Informationen und/oder inhaltsbasierte Daten.
-
Zuerst sollte der Nutzungskontext der Benutzereingabe beschrieben werden. Nutzungskontext soll z. B. kontextbezogene Informationen in Bezug auf eine Ausgabe, die der Eingabe gerecht wird, umfassen. Z. B. kann Nutzungskontext eine bestimmte Funktion (z. B. damit das Gerät als Antwort auf die Eingabe eine Ausgabe liefert) und/oder Funktionstyp zur Folge haben. Der Nutzungskontext und/oder Funktionstyp kann durch Vergleichen z. B. eines empfangenen Schlüsselworts der Eingabe (z. B. ein Befehl) mit einer Datentabelle von Schlüsselwörtern und den jeweiligen zugehörigen Funktionen und/oder Funktionsarten in Beziehung mit dem Schlüsselwort, um den Nutzungskontext basierend auf dem Vergleich des erhaltenen Schlüsselworts mit dem Schlüsselwort der Tabelle und daher dem Zugriff auf die Funktion und/oder dem Funktionstyp in der Tabelle in Verbindung mit dem Schlüsselwort in der Tabelle, dass dazu passt, bestimmt werden.
-
Es können dennoch andere Methoden zur Bestimmung des Nutzungskontextes und/oder Funktionstyps entsprechend der vorliegenden Prinzipien verwendet werden, z. B. Spracherkennungs- und/oder Befehlserkennungssoftware, Ausführung von Vergleichen mit Datentabellen, Korrelation von Art der Eingabe mit Funktionstypen/Nutzungskontext usw. Des Weiteren könnte der Nutzungskontext in manchen Ausführungsbeispielen bestimmt werden, indem einfach auf der Anwendung basiert wird, die als Antwort auf einer bei Block 300 erhaltenen Eingabe (z. B. Eingabe, die ein mit einer Anwendung in Beziehung stehendes Symbol auswählt) eingeführt oder anderweitig angewendet wird, z. B. Einführung einer Mediaplayer-Anwendung kann das Gerät dazu veranlassen, zu bestimmen, dass der Nutzungskontext und/oder Funktionstyp Medien präsentiert, die auf das Parsen von Programmiercode und/oder Einstellungen für die Mediaplayer-Anwendung selbst basieren, was zur Präsentierung von Medien gehört oder die Präsentierung von Medien umfasst.
-
Als ein weiteres Beispiel, sollte das Gerät eine Eingabe als akustischen Befehl von einem Benutzer erhalten, um "bitte Bill anzurufen", könnte das das Gerät bestimmen, dass der Kontext die Funktion ist, einen Telefonanruf zu tätigen, und daher bestimmen, dass es eine Ausgabefunktion ist, ein Telefongespräch einzuleiten. Es ist zu beachten, dass der Nutzungskontext einerseits in diesem nicht-einschränkenden Beispiel bestimmt werden kann, z. B. durch Vergleich der erhaltenen Eingabe mit einer Suchtabelle von Eingaben und den jeweils zugehörigen Ausgaben für jede Eingabe in der Tabelle, sodass die erhaltene Eingabe mit der Tabelle verglichen werden kann, um eine entsprechende Ausgabe in der Tabelle der erhaltenen Eingabe zu finden, mit einer in der Datentabelle aufgeführten Eingabe, und so die zu der angegebenen Eingabe zugehörigen Ausgabe, die der erhaltenen Eingabe entspricht, ausfindig zu machen. Das erhaltene Schlüsselwort "Anruf" kann mit einer Suchtabelle von Schlüsselwörtern verglichen werden, um das erhaltene Schlüsselwort "Anruf" mit einem Eingabeeintrag in der Tabelle "Anruf" zu vergleichen, und so kann das Gerät die zum Eingabeeintrag für "Anruf" zugehörige Funktion bestimmen, wobei es sich um einen Funktionstyp des Tätigen oder Beginnen eines Telefongesprächs handeln könnte.
-
Zusätzlich zu oder an Stelle von dem Vorangehenden kann der Kontext basierend auf der ausgewählten Datei bestimmt werden. Beispielsweise könnte das Gerät vor Erhalt einer Eingabe bei Block 300 programmiert worden sein, um, als Antwort auf einer Datei eines bestimmten Dateityps, das Gerät dazu zu bringen, automatisch eine Funktion und/oder eine mit dem Dateityp in Beziehung stehende Anwendung zu starten. Wenn also entsprechend der vorliegenden Prinzipien eine Eingabe bereitgestellt wird, z. B. bei Block 300, kann diese Eingabe z. B. einseitig oder anders (z. B. direkt eine bestimmte Datei anfordern, eine Funktion bei der Datei ausführen usw.) einen Dateityp implizieren (z. B. Eingabe bereitstellen durch Auswählen einer Musikdatei des Typs MP3) für eine mit der Eingabe in Beziehung stehende Datei (z. B. die bei der Eingabe angefordert wird), und kann dementsprechend eine Funktion für Dateien dieses Typs umfassen, wobei eine solche Funktion der Nutzungskontext sein oder damit in Beziehung stehend könnte.
-
Auch zusätzlich zu dem Vorangehenden oder an Stelle davon, kann die Bestimmung eines anderen Geräts, bei dem eine Ausgabe basierend auf den Kontextinformationen präsentiert werden soll, den vorherigen Verlauf der Nutzung des Geräts und/oder Muster, und/oder vorherige Ausgabe-Verläufe und/oder -Muster umfassen. Zum Beispiel kann, jedes Mal, wenn eine bestimmte Art von Ausgabe auf einem bestimmten Gerät präsentiert wird, z. B. durch Benutzereinstellungen und/oder Anforderung des Benutzers, der Vorgang in einem Protokoll der Ausgabetypen und Geräte, die für den Ausgabetyp verwendet wurden, aufgezeichnet werden. Dann kann, im Anschluss an die Bestimmung eines Gerätes, auf dem unterschiedliche Ausgaben präsentiert werden sollen, zugegriffen werden, um, basierend auf der aktuellen Eingabe mit einem bestimmte Kontext, zu bestimmen, welches der Geräte die Ausgabe präsentieren sollte, basierend auf dem vorherigen Verlauf der Nutzung des Gerätes und/oder Muster, und/oder vorheriger Ausgabe-Verläufe und/oder -Muster des Protokolls für denselben Kontext. Zum Beispiel kann das Gerät auf das Protokoll zugreifen, um zu bestimmen, welches Gerät am häufigsten eine Ausgabe eines bestimmten Typs darauf präsentiert hat, und das Gerät kann folglich bestimmen, dass Ausgaben auf diesem Gerät präsentiert werden sollen, wenn es sich in der Nähe des Ausgabegerätes befindet, und, falls nicht in der Nähe, kann es noch ein weiteres Gerät bestimmen, auf dem eine Ausgabe eines bestimmten Typs am zweithäufigsten präsentiert wurde und, in der Annahme, dass es sich in der Nähe des Eingabegerätes befindet, hervorrufen, dass die Ausgabe dort präsentiert wird.
-
In einem weiteren Beispiel könnten die vorliegenden Prinzipien angewendet werden, um Muster zu bestimmen, wie eine Person gerne arbeiten würde und/oder wie sie am produktivsten sein würde, um so eine Ausgabe an ein Gerät zu liefern, an der der Benutzer am häufigsten arbeitet (z. B. basierend auf der Bestimmung der tatsächlichen Anzahl von Minuten, die der Benutzer bei jedem Gerrät "gearbeitet" hat, und das Gerät mit der höchsten Anzahl von gearbeiteten Minuten und/oder der Benutzerbeteiligung mit einem Gerät, wenn er z. B. eine Anwendung zur Textbearbeitung verwendet, auswählen.
-
Immer noch in Bezug auf Block 302 der 3, jetzt aber bei der Beschreibung der Fähigkeit des Gerätes, kann die Logik die Fähigkeit des Gerätes bestimmen, eine Ausgabe bereitzustellen (z. B. eine Funktion ausführen), und dabei der erhaltenen Eingabe gerecht werden. Wenn zum Beispiel das Gerät, das die Logik der 3 vornimmt, ein Smart-Fernseher ist, der nicht mit der Funktionalität für Telefongespräche ausgestattet ist, wo jedoch eine Eingabe beim Fernseher empfangen wurde, einen Anruf zu tätigen, kann die Logik bestimmen, ob sie eine Anwendung, Software oder sonstige Funktionalität aufweist, die der Anfrage gerecht werden kann, und in der vorliegenden Beispielinstanz kann die Logik, wenn von einem Fernseher ausgeführt, bestimmen, dass sie nicht die Fähigkeit hat, einen Anruf zu tätigen, da sie z. B. nicht an einem Telefonnetz angeschlossen ist bzw. keine Telefonanwendung oder sonstige Mittel aufweist, um einen Anruf zu tätigen.
-
Die Bestimmung von flüchtigen Informationen, wie bei Block 302 erfolgen kann, kann z. B. die Bestimmung der Uhrzeit (z. B. durch Zugriff auf eine Uhranwendung), der Lage eines ersten Gerätes (z. B. durch Verwendung eines GPS-Sende-Empfängers an dem Gerät), aktuelle Klimabedingungen (z. B. Temperatur, Feuchtigkeit und Umgebungslicht basierend auf der Eingabe von einem Klimasensor zur Bestimmung eines besten das Gerätes, um die Ausgabe zu präsentieren und/oder die die Ausgabe basierend auf den aktuellen Klimabedingungen präsentieren kann), derzeitig verfügbare Bandbreite für die Datenübertragung über ein Netzwerk, an dem das Gerät derzeitig angeschlossen ist, derzeitig verfügbarer Strom von der Stromversorgung, derzeitige Arbeitsbelastung eines Gerätes (z. B. ob der "bessere" HD-Fernseher bereits verwendet wird, ein "schlechterer" HD-Fernseher in der Nähe jedoch frei ist, dann könnte bestimmt werden, Ausgabe auf dem "schlechteren" HD-Fernseher zu präsentieren, da dieser eine geringere Arbeitsbelastung hat) usw. umfassen. Beispiele anderer Komponenten, die flüchtige Informationen bereitstellen könnten, entsprechend der vorliegenden Prinzipien, werden als Teil eines Systems 900 dargestellt (z. B. die sich, was Funktion und Konfiguration betrifft, dem System 100 sehr ähnlich sind), wie in 9 dargestellt.
-
Immer noch mit Bezug auf Block 302 der 3, jetzt aber bei der Beschreibung der Bestimmung der inhaltsbasierten Daten, können inhaltsbasierte Daten Metadaten umfassen, die mit einem Teil des Inhalts verbunden sind, der z. B. Inhaltstyp, Inhaltslänge oder -dauer, Inhaltsqualität und/oder Auflösung usw. anzeigt. Inhaltsbasierte Daten können durch Zugriff auf solche Metadaten bestimmt werden und/oder können auch durch z. B. Vergleichen eines empfangenen Eingabeschlüsselworts mit einer Datentabelle von Schlüsselwörtern und den jeweils zugehörigen Inhalten und/oder Inhaltstypen, die der empfangenen Eingabe entsprechen mit einem Schlüsselwort in Beziehung mit einem Inhalt und/oder Inhaltstyp der Tabelle, bestimmt werden.
-
In jedem Fall können inhaltsbasierte Daten verwendet werden, z. B. zusammen mit der Fähigkeit des Gerätes, wie oben dargelegt, um z. B. zu bestimmen, ob das erste Gerät in der Lage ist und/oder das beste verfügbare ist und/oder in der Nähe (z. B. innerhalb eines Grenzabstandes) des Gerätes ist, auf der die Ausgabe präsentiert werden soll, wie von der Logik bei Entscheidungsraute 304 vorgenommen.
-
Daher kann die Logik, entsprechend der vorliegenden Prinzipien, bestimmen, dass, während das erste Gerät z. B. in der Lage ist, hochauflösenden AV-Inhalt darzustellen, ein Gerät mit einem größeren Bildschirm (und/oder einer höheren Bildschirmauflösung und/oder sonstigen Maßen) sich innerhalb eines Grenzabstands der ersten Vorrichtung befindet, basierend z. B. auf einem Vergleich der GPS-Koordinaten des größeren Bildschirms mit den GPS-Koordinaten der ersten Vorrichtung (z. B. wie über ein Netzwerk empfangen, an das beide Geräte angeschlossen sein könnten) und zumindest in einer Kapazität, Fähigkeit, Funktionalität usw. für die Präsentation des HD-Inhalts besser geeignet ist. Dies könnte auf der Gewichtung von Faktoren basieren, wie z. B. Größe des Bildschirms des beauftragten Gerätes, ein Gewicht und die Bildschirmgröße eines anderen Gerätes wie ein hochauflösender Fernseher, dem ein anderes Gewicht zugewiesen wird, das sich vom ersten Gewicht unterscheidet. In der Annahme, dass z. B. Gewichte von niedrig bis hoch je nach Bildschirmgröße zugewiesen werden und in der Annahme, dass z. B. ein Benutzer eine Einstellung für das Gerät konfiguriert hat, um z. B. immer Inhalt auf einem größeren Bildschirm darzustellen, wenn dieser verfügbar und/oder in der Nähe ist, können die Gewichte durch die Logik miteinander verglichen und das höhere Gewicht ausgewählt werden, und somit kann bei dem HD-Fernseher nicht nur bestimmt werden, dass er in der Lage ist, die Ausgabe zu präsentieren (z. B. basierend auf dem Klingeln des Gerätes oder anderweitigem Zugriff auf Fähigkeiten des Gerätes für den HD-Fernseher, z. B. durch Zugriff auf eine Netzwerkliste von Geräten auf dem Netzwerk und Fähigkeiten in Beziehung mit jedes Gerät), sondern auch, dass es wegen seiner Bildschirmauflösung optimal dafür geeignet ist, die Ausgabe zu präsentieren. In einem solchen Fall wird bei Raute 304 eine negative Bestimmung getroffen und die Logik kann mit Block 308 fortfahren. Bevor jedoch Block 308 beschrieben wird, versteht es sich, dass, sollte eine positive Bestimmung bei Raute 304 getroffen werden, die Logik stattdessen mit Block 306 fortfährt, wo die Logik die Ausgabe auf dem Gerät, das die vorliegende Logik übernimmt, präsentiert.
-
Nun mit Bezug auf Block 308, wo die Logik bei einer negativen Bestimmung bei Raute 304 landen könnte, bestimmt die Logik bei Block 308 mindestens ein anderes Gerät (z. B. auf der Netzwerkkarte für ein Netzwerk aufgeführt, auf dem das Gerät kommuniziert und/oder z. B. über ein Netzwerk mit dem ersten Gerät kommuniziert, um Informationen wie z. B. Anwesenheitsinformationen und/oder Positionsinformationen auszutauschen), die in der Lage ist, die Ausgabe basierend auf dem Kontext der Benutzereingabe und/oder einer davon abgeleiteten Folgerung entsprechend der vorliegenden Prinzipien, flüchtigen Informationen entsprechend der vorliegenden Prinzipien und/oder inhaltsbasierten Daten entsprechend der vorliegenden Prinzipien zu präsentieren. Solche Bestimmungen der Fähigkeit des Gerätes basierend auf dem Kontext (z.B. kontextbezogene Folgerung), flüchtigen Informationen und/oder inhaltsbasierten Informationen können in ähnlicher Weise erfolgen, wie die jeweiligen oben in Bezug auf Block 302 beschriebenen Bestimmungen, ausgenommen, dass sie z. B. für ein anderes Gerät als das Gerät, das die vorliegende Logik ausführt, erstellt werden.
-
Zusätzlich zu oder an Stelle von dem Vorangehenden könnte mit Blickregistrierungssoftware (z. B. bei einem oder mehreren Bildern (in Echtzeit oder vorwiegend in Echtzeit) eines Benutzers, erfasst durch eine Kamera, z. B. auf dem ersten Gerät, verwendet) bei Block 308 ein anderes Gerät bestimmt werden, an das der Inhalt präsentiert werden soll als Antwort auf eine Bestimmung, dass der Benutzer auf ein anderes Gerät schaut (z. B. und/oder zumindest nicht auf das das Gerät, das die Logik der 3 ausführt). Als Beispiel könnte man davon ausgehen, dass ein Benutzer einen akustische Befehl bei einem Smartphone eingibt, um "die Folge von gestern Abend des Programms ABC zu zeigen", während er nicht auf das Smartphone schaut, sondern auf einen smarten Fernseher im Zimmer, in dem sich der Benutzer befindet. Eine Kamera am Smartphone könnte mindestens ein Bild der Augen des Benutzers machen (z. B. und insbesondere von den Pupillen des Benutzers) und dann Blickregistrierungssoftware auf dem Bild anwenden, um zu bestimmen, ob der Benutzer auf den Smart-TV schaut, und somit bestimmen, dass ein Befehl vom Smartphone, Programm ABC zu zeigen, auf den Fernseher übertragen werden sollte, um Programm ABC dort zu zeigen, anstatt das Programm ABC auf dem Smartphone selbst zu zeigen. Es sollte daher im Allgemeinen davon ausgegangen werden, dass die Position, der Blick und/oder das Blickfeld der Augen des Benutzers während der Eingabe eines akustischen Befehls eine Eingabe für das Gerät sein kann, um eine anderes Gerät anzudeuten, für welches Gerät der Benutzer des Gerätes Befehle erteilt.
-
In jedem Fall bewegt sich die Logik von Block 308 zu Block 310, wo die Logik die Lage des zweiten Gerätes, z. B. im Vergleich zu dem ersten Gerät und/oder ob sie innerhalb eines Grenzabstandes (z. B. sichtbar und/oder visuell) des Gerätes ist, das die vorliegende Logik durchführt, und/oder des Benutzer (z. B. basierend auf Signalen einer Kamera) bestimmt. Die Lage des zweiten Gerätes und z. B. ob sie innerhalb eines Grenzabstands liegt, kann z.B. durch Anwendung von GPS-Koordinaten für das andere Gerät ermittelt werden, um eine Karte zu erhalten, auf der auch die GPS-Koordinaten des aktuellen Gerätes aufgeführt sind, um basierend auf einem Kartenskalierungsfaktor einen Abstand zwischen den beiden zu ermitteln. Noch andere Methoden zur Bestimmung der Lage können verwendet werden, z. B. die Bestimmung der Lage des anderen Gerätes basierend auf einer Suchtabelle, bei der andere am Netzwerk angeschlossene Geräte mit Koordinaten für solche andere Geräte korreliert werden, basierend lediglich auf den GPS-Koordinaten des zweiten Geräts über dem Netzwerk usw.
-
In jedem Fall fährt die Logik nach Block 310 mit dem Entscheidungsrauteen 312 fort, wo die Logik bestimmt, ob das andere Gerät, welches in der Lage sein soll, die Ausgabe bei Block 308 zu präsentieren, physisch das nächstgelegene Gerät zum Gerät ist, das die vorliegende Logik ausführt (z. B. basierend auf der Ortung des nächstgelegenen Gerätes auf einer Netzwerkkarte und/oder Zugriff auf und/oder Analyse von GPS-Koordinaten für mehrere andere (z. B. nächste) Geräte, um festzustellen, welches das nächstgelegene zu dem Gerät ist, wo die Eingabe empfangen wird, basierend auf GPS-Koordinaten für das die Eingabe-erhaltende Gerät), und/oder sich auf einer Liste von (z. B. genehmigten und/oder fähigen) Geräten ist, um die Ausgabe zu präsentieren, wie z. B. vom Benutzer konfiguriert. Eine positive Bestimmung bei Raute 312 sorgt dafür, dass die Logik mit Block 314 fortfährt, wo die Logik die Ausgabe an das andere (z. B. nächstgelegene) Gerät präsentiert.
-
Eine negative Bestimmung bei Raute 312 sorgt stattdessen dafür, dass die Logik mit Block 316 fortfährt. Bei Block 316 kann die Logik ein anderes (z. B. drittes) Gerät ausfindig machen, um die Ausgabe entsprechend der vorliegenden Prinzipien zu präsentieren, z. B. wenn das dritte Gerät näher zu dem Gerät ist, das die Logik der 3 ausführt. Auch bei Block 316 und wo z. B. kein drittes Gerät vorliegt, das näher ist, kann die Logik dennoch die Ausgabe auf dem zweiten das Gerät bei Block 316 präsentieren und/oder eine Aufforderung bei dem Gerät präsentieren, das die Logik von 3 ausführt. Die Aufforderung könnte andeuten, dass z. B. der Benutzer eine Eingabe bereitstellen sollte, um ein Gerät anzugeben, auf dem die Ausgabe präsentiert werden soll, und/oder kann angeben, dass die Ausgabe (z. B. derzeitig) nicht präsentiert werden kann.
-
Dementsprechend, im Allgemeinen mit Bezug auf 3 und durch Bereitstellung eines Beispiels, könnte davon ausgegangen werden, dass Lenovo Informationen über Temperatur, Feuchtigkeit, Umgebungslicht sowie andere Informationen wie Dateiereignisse, Anwendungsereignisse usw. gesammelt hat und solche Informationen in eine Datentabelle und/oder Datenbank, die für das Gerät, das die Logik der 3 ausführt, zugänglich ist, eingegeben hat. Es ist ebenfalls davon auszugehen, dass z.B. das Gerät der 3 ein Muster bestimmt, das, wenn Umgebungslichtbedingungen ziemlich schwach sind (z. B. unter einem Umgebungslicht-Grenzwert), eine bestimmte, mit dem Gerät der 3 in Beziehung stehende Person normalerweise gerne bestimmte Aufgaben auf seinem Tablett ausführt, statt auf seinem Laptop oder Smart-TV. In einem solchen Beispiel könnte die Logik bestimmen, Ausgabe auf dem Tablet zu präsentieren als Antwort auf dem Empfang der Eingabe bei dem Laptop oder Smart-TV des Benutzers.
-
Bei einer weiteren Erörterung über das Umgebungslicht, jedoch eher im Allgemeinen, sollte davon ausgegangen werden, dass Umgebungslicht von dem Gerät beachtet werden soll, z. B. bei der Bestimmung, wo eine Ausgabe hingeströmt werden soll, das Gerät dies tun könnte basierend auf der Bestimmung, dass die besten Bedingungen für die Ansicht der Ausgabe (z. B. wenn das Gerät dafür programmiert ist, dass ein schwächeres Umgebungslicht optimaler als relativ stärkeres Umgebungslicht für die Ansicht des Inhalts auf Bildschirmen ist) auf einem Gerät vorliegen, das sich aktuell in einer Lage mit schwächerem Umgebungslicht befindet als ein Gerät mit einem größeren Bildschirm, das sich jedoch in einer sehr hellen Lage befindet.
-
Durch Fortfahren mit der detailgetreuen Beschreibung in Beziehung zu 4 wird eine Beispiellogik dargestellt, die von einem Gerät wie ein System 100, z. B. einem bestimmten Nutzungskontext und/oder Funktion, welche für die vorliegende Beispielinstanz ein Telefongespräch ist, ausgeführt wird. Die Logik beginnt bei Block 400, wo die Logik eine Eingabe mit einem Nutzungskontext in Beziehung zu einem Telefongespräch erhält. Die Eingabe könnte ein akustischer Befehl wie z. B. "Steve anrufen" oder "Steves Telefonnummer wählen" sein. In jedem Fall fährt die Logik nach Block 400 mit Entscheidungsraute 402 fort, wo die Logik entsprechend der vorliegenden Prinzipien bestimmt, ob die Eingabe zu einer Telefongesprächsfunktion gehört. Wenn eine negative Bestimmung bei Raute 402 getroffen wird, fährt die Logik mit Block 404 fort, wo die Logik ein anderes nahes Gerät (z. B. und sogar das nächstgelegene einer Vielfalt von Geräten) bestimmt, das in der Lage ist, die Ausgabe zu präsentieren, was nicht den Beginn eines Telefongesprächs umfasst. Eine positive Bestimmung bei Raute 402 sorgt stattdessen dafür, dass die Logik mit Block 406 fortfährt, wo die Logik mindestens ein Gerät mit Telefonfunktionalität ausfindig macht, z. B. innerhalb eines Grenzabstands des Gerätes, das die Logik von 4 entsprechend der vorliegenden Prinzipien ausführt. Die Logik fährt dann mit Block 408 fort, nachdem sie bei Block 406 ein Telefon ausfindig gemacht hat, wo die Logik dem Telefon Befehle gibt, automatisch ohne weitere Eingabe des Benutzers ein Telefongespräch zu beginnen, z. B. entsprechend der Informationen, die in und/oder mit der Eingabe bei Block 400 bereitgestellt werden.
-
Bevor mit der 5 fortgefahren wird, sollte verstanden werden, dass eine sich der bei 4 ähnelnde Logik von einem Gerät übernommen werden kann für andere Nutzungskontexte und/oder Funktionen wie irgendwelche der hier beschriebenen entsprechend der vorliegenden Prinzipien, wie z. B. ein Nutzungskontext für AV-Inhalt, der die Präsentierung von AV-Inhalt einleitet.
-
Nun ist in Bezug auf 5 ein Beispielflussdiagramm einer Logik aufgeführt, die von einem Server entsprechend der vorliegenden Prinzipien ausgeführt wird, wenn z. B. ein Server die Kommunikation zwischen einem Gerät, das eine Eingabe empfängt, und einem anderen Gerät, das die vorliegende Ausgabe in Beziehung mit der Eingabe entsprechend der vorliegenden Prinzipien präsentiert, erleichtert. Die Logik der 5 beginnt bei Block 500, wo die Logik einen Ping empfängt (z. B. ein Anforderungssignal) für Positionsinformationen für ein anderes Gerät, das in der Lage ist, eine Ausgabe in Beziehung zur empfangenen Eingabe bei dem Gerät, das den Server anruft und die vorliegende Logik ausführt, zu präsentieren. Die Logik fährt dann mit Block 502 fort, wo die Logik Positionsinformationen für ein weiteres Gerät zurück zum anrufenden Gerät bereitstellt. Dann bei Block 504 erhält die Logik von dem anrufenden Gerät einen Befehl, der an das ausgebende Gerät übertragen wird, um eine Funktion entsprechend der vorliegenden Prinzipien auszuführen. Die Logik endet dann bei Block 506, wo die Logik den Befehl bereitstellt und/oder an das andere Gerät zur Präsentation der Ausgabe darauf sendet.
-
Jetzt wird auf die 6–8 Bezug genommen, welche unterschiedliche Beispiele von UIs darstellen, die auf einem Gerät wie das System 100 entsprechend der vorliegenden Prinzipien präsentiert werden. Beginnend zuerst mit 6 zeigt es eine UI 600, präsentierbar auf einem Gerät, das die Eingabe entsprechend der vorliegenden Prinzipien empfängt. Die UI 600 umfasst eine Anzeige 602, dass gerade Informationen an ein anderes Gerät für die Ausgabe dort gesendet werden. Die Anzeige 602 kann das konkrete Gerät anzeigen, an das die Informationen gesendet werden, und kann dies basierend z. B. auf einem Gerätename tun, der vor der Bereitstellung von Eingaben durch den Benutzer bestimmt wurde, und/oder auf einem Gerätenamen, der auf einer Netzwerkkarte von Geräten angezeigt wird, die mit dem die UI 600 präsentierenden Gerät kommunizieren.
-
Ein Stop-Wahlelement 604 wird ebenfalls auf der UI 600 präsentiert, welches auswählbar ist, um automatisch ohne weitere Benutzereingabe, die dazu ansprechbar ist, das Senden der Informationen/Befehle an das Gerät, das die Ausgabe präsentieren soll, zu unterbrechen. Ein alternatives Gerät für dieses Wahlelements 606 wird ebenfalls gezeigt, welches auswählbar ist, um automatisch und ohne weitere Benutzereingabe, das dazu ansprechbar ist, die Ausgabe auf dem Gerät zu präsentieren, das die UI 600 präsentiert, anstelle des anderen Gerätes, an das der Befehl gesendet wurde (z. B. in Fällen, in denen das aktuelle Gerät in der Lage ist, die Ausgabe zu präsentieren). Des Weiteren wird ein gleiches Wahlelement 608 angezeigt, welches auswählbar ist, um automatisch ohne weitere Benutzereingabe dazu ansprechbar zu sein, um das Gerät zu konfigurieren, das die UI 600 präsentiert, um die Ausgabe darzustellen und gleichzeitig Informationen an das andere Gerät zu senden (z. B. im vorliegenden Beispiel einen Fernseher) für die Präsentation der Ausgabe darauf.
-
Aufhörend mit der Beschreibung der 6 wird auch eine alternative Geräteanzeige 610 dargestellt, die einem noch anderen Gerät neben dem Gerät entspricht, das die UI 600 präsentiert, und dem Fernseher, auf dem die Ausgabe präsentiert werden kann. Dementsprechend wird ein gleiches Wahlelement 612 angezeigt, welches auswählbar ist, um automatisch und ohne weitere Benutzereingabe, die dazu ansprechbar ist, das Gerät zu konfigurieren, das die UI 600 präsentiert, um die Ausgabe auf dem Tablet zu präsentieren und gleichzeitig Informationen an den Fernseher für die Präsentation der Ausgabe darauf zu senden. Ein alternatives Wahlelement 614 wird ebenfalls dargestellt, welches auswählbar sein wird, um automatisch und ohne weitere Benutzereingabe, die dazu ansprechbar ist, die Ausgabe auf dem Tablet statt dem Fernseher zu präsentieren
-
Nun, in Bezug auf 7, zeigt es eine Beispiel-UI-700, das auf einem Gerät präsentierbar ist, das einen Befehl erhält, um eine Ausgabe zu präsentieren (z. B. einen AV-Inhalt zu präsentieren) das der Eingabe entspricht, die auf einem anderen Gerät entsprechend der vorliegenden Prinzipien empfangen wird. Die UI 700 umfasst daher eine Anzeige 702, dass eine Ausgabe, eine-Anforderung und/oder ein Befehl empfangen und/oder dem Gerät gesendet wird, das die UI 700 präsentiert. Eine Aufforderung 704 wird ebenfalls angezeigt, um die Präsentation der Ausgabe (z. B. in Fällen, in denen das empfangende Gerät die Präsentation autorisieren kann, bevor die empfangene Ausgabe tatsächlich präsentiert wird) zu autorisieren. Dementsprechend sind ein Ja-Wahlelement 706 und ein Nein-Wahlelement 708 zur jeweiligen positiven oder negativen Antwort auf die Aufforderung 704 bei der UI 700 einbezogen, um die Präsentation der Ausgabe auf dem Gerät der 7 jeweils zu autorisieren oder abzulehnen.
-
Was die 8 betrifft, zeigt sie ein Beispiel-UI-800, das auf einem Gerät präsentierbar ist, das Eingabe entsprechend der vorliegenden Prinzipien empfängt. Die UI 800 umfasst eine Anzeige 802, dass die der Eingabe entsprechenden Ausgabe nicht auf einem Fernseher präsentiert werden kann (und kann weiter einen Grund angeben, dass z.B. der Fernseher in der Lage ist, sich jedoch außerhalb eines Grenzabstands befindet). Die Anzeige 802 kann ebenfalls anzeigen, dass die Anforderung an den Fernseher abgelehnt wurde (z. B. bei dem Fernseher, durch Auswahl eines Wahlelements wie das oben beschriebene Element 708).
-
Die UI 800 kann ebenfalls eine andere Anzeige 804 aufweisen, dass andere Geräte verfügbar sind, um den Inhalt zu präsentieren und/oder dass andere Geräte vorhanden sind, um den Inhalt zu präsentieren, sich diese aber nicht innerhalb des Grenzabstands befinden. Die Anzeige 804 kann folglich anzeigen, dass ein Gerät ausgewählt werden kann, um die Ausgabe dennoch zu präsentieren (und kann z. B. sogar die Lage des anderen Gerätes bereitstellen, sodass eine Person diese ausfindig machen kann und/oder dorthin gehen kann, um die Ausgabe zu überprüfen). Dementsprechend wird ein Wahlelement 806 für ein Tablet dargestellt, das auswählbar ist, um das Gerät dazu zu bringen, ein Tablet auf dem Netzwerk des Gerätes zu steuern, um automatisch die Ausgabe zu präsentieren, ohne weitere eine Benutzereingabe hierzu, sowie ein zweites Wahlelement 806 für einen Laptop, der auswählbar ist, um das Gerät dazu zu bringen, den Laptop auf dem Netzwerk des Gerätes zu steuern, um automatisch eine Ausgabe zu präsentieren, ohne eine weitere Benutzereingabe in Reaktion darauf.
-
Ohne Bezugnahme auf eine bestimmte Figur versteht es sich, dass neben der Kommunikation der Ausgabeanforderungen und/oder Befehle zwischen Geräten über z. B. einem WiFi-Netzwerk solche Informationen (z. B. einschließlich Lage des Gerätes und/oder Informationen zur Nähe) (z. B. erkannt und) bereitgestellt werden können durch noch andere Mittel wie z. B. durch Nahfeldkommunikation (NFC), Bluetooth-Kommunikation usw.
-
Auch ohne Bezug auf eine bestimmte Figur versteht es sich, dass eine andere Eingabe als eine akustische Eingabe verwendet werden kann, damit die Ausgabe auf einem anderen Gerät entsprechend der vorliegenden Prinzipien präsentiert wird. Zum Beispiel können Gesten im Freiraum durch einen Gestensensor wie der oben beschriebene Sensor 198 erkannt werden, damit ein Benutzer Befehle und/oder Eingabe bei einem Gerät entsprechend der vorliegenden Prinzipien eingeben kann. Als ein weiteres Beispiel kann mithilfe einer Tastatur und/oder einer Maus, Augenerkennung und/oder Gesichtsausdruck eine Eingabe bereitgestellt werden.
-
Immer noch ohne Bezug auf eine bestimmte Figur kann nun eingesehen werden, dass die vorliegenden Prinzipien Kontext und/oder Funktionstyp verwenden können, um zu bestimmen, wo und wie Ausgabe zu einer Anfrage zu liefern ist. Die verwendeten Kriterien können z. B. Fähigkeit des Gerätes, kontextuelle Folgerung, korrelierte flüchtige Daten und/oder inhaltsbasierte Daten sein.
-
Unter Bereitstellen von ein paar weiteren Beispielen kann im ersten Beispiel ein Benutzer akustische Eingabe bei einem Laptop oder Tabletcomputer leisten, um "Bill anzurufen", ein Mobiltelefon neben dem Laptop oder Tablet (z. B. innerhalb eines Grenzabstands vom Laptop oder Tablet wie z. B. ein Fuß) leitet das Gespräch ein.
-
Als ein weitere Beispiel kann eine Person eine akustische Eingabe bei einem ersten Gerät leisten, um "die Playlist "zu Hause" zu spielen", und der Assistent bestimmt, dass die die Anforderung eingebende Person bei sich zu Hause ist und noch genauer auf der Terrasse hinter dem Haus, und somit spielt das Gerät Songs von der Playliste "zu Hause" ab, die bei den Außenlautsprechern nebeneinandergestellt um die Terrasse abgespielt werden. In einem solchen Fall kann das erste Gerät bestimmen, die Songs von der Playlist auf den Lautsprechern der Terrasse zu spielen basierend z. B. auf Informationen zur Nähe, Temperaturinformationen (z.B. dass die Temperatur innerhalb eines vordefinierten Bereichs liegt, bei dem der Benutzer die Außentemperatur als angenehm betrachten könnte), Informationen zur Feuchtigkeit (z. B. dass die Feuchtigkeit innerhalb eines vordefinierten Bereichs liegt, bei dem der Benutzer die Feuchtigkeit als angenehm betrachten könnte), Positionsinformationen, Eigenschaften und/oder Informationen zum Umgebungslicht usw. um das beste Gerät (in diesem Fall die Lautsprecher der Terrasse hinter dem Haus), auf der die Songs abgespielt werden sollen.
-
Als ein noch weiteres Beispiel kann ein Benutzer eine Eingabe auf seinem PC leisten, um "mich daran zu erinnern, Jennifer auf dem Weg nach Hause anzurufen". Bei dem Benutzer auf dem Weg nach Hause (z. B. wie von dem Mobiltelefon des Benutzers bestimmt, welches während der Fahrt mögliche Ziele berechnet basierend auf einem Verlauf vorheriger Ziele, die derzeitig angefahren werden) ist der PC des Benutzers jedoch suspendiert ist/wird nicht verwendet und das Mobiltelefon informiert demnach den Benutzer über die Erinnerung, für die der Benutzer Eingabe geleistet hat (z. B. basierend auf der Eingabe, die vom PC auf den Cloudspeicher hochgeladen wurde, der für solche Zwecke für das Mobiltelefon zugänglich ist). Ebenfalls, wenn der Benutzer zu Hause ist, kann der Fernseher die Erinnerung bereitstellen (z. B. basierend auf Gesichtserkennungssoftware, die zumindest bei einem Bild des Benutzers angewendet wird, das durch eine Kamera am Fernseher erfasst wird, um zu bestimmen, dass der Benutzer anwesend ist, um die Erinnerung zu sehen).
-
Als noch ein anderes Beispiel (z. B. für flüchtige Daten) kann ein Benutzer eine Eingabe für einen digitalen Assistenten auf einem Smartphone leisten, um zu fragen "wer ist dieser Schauspieler?" Dann wird das Smartphone und/oder der Fernseher, auf dem ein AV-Programm mit dem Schauspieler läuft, mittels Blickregistrierungssoftware entsprechend der vorliegenden Prinzipien bestimmen, wo der Benutzer auf dem Bildschirm hinschaut, um so den Schauspieler ausfindig zu machen, auf den er schaut, und daher auf den die Eingabe des Benutzers gerichtet ist. Das Smartphone kann dann bestimmen, wer der Schauspieler ist und Informationen zum Schauspieler aufrufen, die automatisch auf dem Fernseher ohne weitere Benutzereingabe präsentiert werden. Die Bestimmung, wer auf dem Bildschirm der Schauspieler ist, kann in unterschiedlichen Weisen erfolgen, darunter das Parsen von Metadaten in Bezug zum AV-Programm und/oder Gesichtserkennungssoftware, die bei einem Bild des Schauspielers vom AV-Inhalt angewendet wird (z. B. durch Gebrauch von mindestens einem Frame des AV-Inhalts), um den Schauspieler zu bestimmen, und/oder durch Bestimmen der Lage und/oder aktuellen Szene des AV-Inhalts und auch z. B. durch Bereitstellung von Eingabe für eine Suchmaschine, darunter Informationen bezüglich des Schauspielers der Szene, auf die die Aufmerksamkeit des Benutzers gerichtet wurde. Des Weiteren können die flüchtigen Daten des Fernsehers verwendet werden, um die Bedeutung der Frage zu entschlüsseln, basierend auf einer anfänglichen Erkennung, dass der Fernseher eingeschaltet ist.
-
Bevor die detailgetreue Beschreibung zum Schluss kommt, versteht es sich, dass auch wenn akustische Eingabeanwendungen, eine Gestenerkennungsanwendung, Blickregistrierungssoftware usw. und noch weitere oben beschriebene Funktionen entsprechend der vorliegenden Prinzipien mit einem Gerät verkauft werden, die vorliegenden Prinzipien für Instanzen zutreffen, bei denen eine oder mehrere der vorhergehenden Elemente z. B. über ein Netzwerk wie das Internet von einem Server auf ein Gerät heruntergeladen werden.
-
Während das jeweilige GERÄT UND VERFAHREN ZUM EMPFANGEN EINER EINGABE UND DARSTELLEN ALS ANTWORT EINE AUSGABE AUF EINEM VON DEM ERSTEN GERÄT UNTERSCHIEDLICHEN ZWEITEN GERÄT hier dargestellt und detailgetreu beschrieben ist, versteht es sich, dass der Gegenstand, der durch die vorliegende Anwendung erfasst wird, nur durch die Ansprüche beschränkt ist.