DE112015004481T5 - Rahmen für zustandskennung mobiler anwendungen - Google Patents

Rahmen für zustandskennung mobiler anwendungen Download PDF

Info

Publication number
DE112015004481T5
DE112015004481T5 DE112015004481.7T DE112015004481T DE112015004481T5 DE 112015004481 T5 DE112015004481 T5 DE 112015004481T5 DE 112015004481 T DE112015004481 T DE 112015004481T DE 112015004481 T5 DE112015004481 T5 DE 112015004481T5
Authority
DE
Germany
Prior art keywords
mobile device
application
application state
state identifier
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE112015004481.7T
Other languages
English (en)
Inventor
Tiruvilwamalai venkat RAMAN
Chengling Chan
Mukarram Tariq
Stefan Lafon
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Google LLC filed Critical Google LLC
Publication of DE112015004481T5 publication Critical patent/DE112015004481T5/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/60Subscription-based services using application servers or record carriers, e.g. SIM application toolkits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • G06F16/58Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/5866Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using information manually generated, e.g. tags, keywords, comments, manually generated location and time information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04842Selection of displayed objects or displayed text elements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • G06F3/04847Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/461Saving or restoring of program or task context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • G06F9/4862Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2218/00Aspects of pattern recognition specially adapted for signal processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Library & Information Science (AREA)
  • Telephone Function (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

Systeme und Verfahren für die Freigabe oder Neuerstellung eines Zustands von einem Mobilgerät werden bereitgestellt. Eine Zustandskennung einer mobilen Anwendung kann eine Protokollkennung, eine Zielaufgabenkomponente, die einer mobilen Anwendung zugeordnet ist, die ausgeführt wird, wenn die Anwendungszustandskennung erzeugt wird, und eine Teilaufgabenkomponente, die einer Benutzeroberfläche zugeordnet ist, die in der mobilen Anwendung aktiv ist, wenn die Anwendungszustandskennung erzeugt wird, beinhalten. Die Anwendungszustandskennung kann außerdem eine Benutzereingabekomponente beinhalten, die Aktionen widerspiegeln, die von einem Benutzer während der Ausführung der mobilen Anwendung durchgeführt werden. Ein Verfahren kann die Erzeugung einer Anwendungszustandskennung auf einem erste Mobilgerät und die Übertragung der Anwendungszustandskennung an ein zweites Mobilgerät beinhalten, wobei das zweite Mobilgerät in Reaktion auf das Empfangen der Anwendungszustandskennung eine mobile Anwendung öffnet, die der Zielaufgabe für eine Benutzeroberfläche zugeordnet ist, die der Teilaufgabenkomponente entspricht.

Description

  • QUERVERWEISE ZU VERWANDTEN ANMELDUNGEN
  • Diese Anmeldung beansprucht die Priorität vor der und ist eine Fortführung der nicht-provisorischen US-Patentanmeldung Nr. 14/501,669, eingereicht am 30. September 2014, mit dem Titel „MOBILE APPLICATION STATE IDENTIFIER FRAMEWORK”, die in ihrer Gesamtheit durch Bezugnahme hierin einbezogen ist.
  • HINTERGRUND
  • Benutzer verwenden häufig mehrere mobile Computergeräte, da es für einen Benutzer nicht ungewöhnlich ist, ein Smartphone und eines oder mehrere Tablets zu haben. Benutzer kommunizieren außerdem häufig mithilfe von Mobilgeräten mit anderen. In einer browserbasierten Computerumgebung, die für Laptops und Desktops häufig ist, kann ein Benutzer eine Aufgabe über einen Webbrowser durchführen und einen Aufgabenzustand als Uniform Resource Locator (URL) freigeben. Der empfangende Benutzer kann normalerweise auf die URL klicken und genau sehen, was der freigebende Benutzer sieht. Da aber mobile Computergeräte in einer geschlossen Umgebung betrieben werden, in der die meisten Aufgaben nicht browserbasiert sind, ist die Freigabe eines Aufgabenzustands auf Aufgaben begrenzt, die einen mobilen Webbrowser verwenden, z. B. mithilfe einer URL. Somit kann ein Großteil der Aufgaben, die in einer mobilen Umgebung durchgeführt werden, nicht freigegeben werden.
  • ZUSAMMENFASSUNG
  • Implementierungen stellen eine Zustandskennung mobiler Anwendungen bereit, die es einem Benutzer ermöglicht, einen Zustand eines Mobilgeräts über Mobilgeräte freizugeben oder einen früheren Zustand zu einem späteren Zeitpunkt erneut aufzurufen. Die Freigabe eines Zustands trägt dazu bei, Benutzeraktionen zu verringern, die nötig sind, um Aufgabe zu erledigen oder einen bestimmten Zustand zu erreichen. Die Zustandskennung mobiler Anwendungen kann eine Zielaufgabe als eine erste Komponente beinhalten, die die Art der mobilen Anwendung identifiziert, die ausgeführt wird, wenn die Zustandskennung erzeugt wird. Die Verwendung einer Zielaufgabe statt der Kennung mobiler Anwendung ermöglicht die Freigabe des Zustands für ein Gerät, auf dem keine spezifische mobile Anwendung installiert ist. Die zweite Komponente der Anwendungszustandskennung kann eine Teilaufgabe innerhalb der Zielaufgabe identifizieren. Die Teilaufgabe hängt von der Zielaufgabe ab und kann häufige Datenelemente darstellen, die die Zielaufgabe behandelt, oder eine häufige Benutzerschnittstellenkomponente für die Zielaufgabe. In einigen Implementierungen kann eine dritte Komponente der Anwendungszustandskennung Benutzereingaben identifizieren, die verwendet werden, um den Zustand zu erreichen, oder benutzerspezifische Parameter, die von der mobilen Anwendung erzeugt werden. Die Benutzereingabekomponente kann allgemeine Eingaben und anwendungsspezifische Eingaben beinhalten und ist optional. Die Anwendungszustandskennung kann außerdem andere Informationen codieren, die zum erneuten Erstellen des Zustands eines Mobilgeräts auf einem anderen Mobilgerät verwendet werden. Die Anwendungszustandskennung kann den Ort, die Gerätehaltung, Schriftartvoreinstellungen, Bildschirmhelligkeit, Bildschirmausrichtung usw. codieren.
  • In einigen Implementierungen hat die Anwendungszustandskennung eine hierarchische Struktur, sodass die verschiedenen Zustände auf Basis der Anwendungszustandskennung gruppiert werden können. Außerdem kann jede Komponente so strukturiert sein, dass allgemeinere Daten vor geräte- oder benutzerspezifischeren Datenelementen erscheinen.
  • Gemäß bestimmten Aspekten der Offenbamng beinhaltet ein Mobilgerät einen Anwendungszustand-Datenspeicher, mindestens einen Prozessor, eine ausführende mobile Anwendung und einen Speicher, der Anweisungen speichert, die, wenn sie von dem mindestens einen Prozessor ausgeführt werden, das Mobilgerät veranlassen, Operationen durchzuführen. Die Operationen können das Erzeugen einer Anwendungszustandskennung beinhalten, die einen Zustand des Mobilgeräts darstellt, wobei die Anwendungszustandskennung eine Zielaufgabenkomponente beinhaltet, die der mobilen Anwendung zugeordnet ist, und eine Teilaufgabenkomponente, die einer Benutzeroberfläche zugeordnet ist, die zum Zeitpunkt, zu dem die Anwendungszustandskennung erzeugt wird, in der mobilen Anwendung aktiv ist. Die Operationen können außerdem das Speichern der Anwendungszustandskennung im Anwendungszustand-Datenspeicher, das Empfangen einer Angabe vom Benutzer, der die Anwendungszustandskennung nach Beenden der mobilen Anwendung auswählt, und das Aktivieren des Zustands, der durch die Anwendungszustandskennung dargestellt wird, einschließlich das Öffnen der mobilen Anwendung auf der Benutzeroberfläche beinhalten.
  • Gemäß bestimmten Aspekten der Offenbamng beinhaltet ein Verfahren das Erzeugen einer Anwendungszustandskennung auf einem ersten Mobilgerät. Die Anwendungszustandskennung kann eine Zielaufgabenkomponente beinhalten, die einer mobilen Anwendung zugeordnet ist, die auf dem Mobilgerät zu dem Zeitpunkt der Erzeugung ausgeführt wird, und eine Teilaufgabenkomponente, die einer Benutzeroberflächenkomponente zugeordnet ist, die in der mobilen Anwendung zum Zeitpunkt der Erzeugung aktiv ist. Das Verfahren kann außerdem die Übertragung der Anwendungszustandskennung an ein zweites Mobilgerät beinhalten, wobei das zweite Mobilgerät in Reaktion auf das Empfangen der Anwendungszustandskennung eine mobile Anwendung öffnet, die der Zielaufgabe für eine Benutzeroberfläche zugeordnet ist, die der Teilaufgabenkomponente entspricht.
  • Gemäß bestimmten Aspekten der Offenbamng beinhaltet ein Mobilgerät einen Index, der ein Schlüsselelement mit Bildschirmaufnahmebildern zuordnet, von denen über Erkennung ermittelt wurde, dass sie das Schlüsselelement beinhalten, wobei jedes Bildschirmaufnahmebild eine zugehörige Anwendungszustandskennung hat. Die Anwendungszustandskennung beinhaltet eine Zielaufgabenkomponente, die einer mobilen Anwendung zugeordnet ist, die auf dem Mobilgerät zu dem Zeitpunkt ausgeführt wird, zu dem das Bild aufgenommen wird, und eine Teilaufgabenkomponente, die einer Benutzeroberfläche zugeordnet ist, die in der mobilen Anwendung zum Zeitpunkt der Bildaufnahme aktiv ist. Das Mobilgerät beinhaltet außerdem mindestens einen Prozessor, eine ausführende mobile Anwendung und einen Speicher, der Anweisungen speichert, die, wenn sie von dem mindestens einen Prozessor ausgeführt werden, eine Benutzeroberfläche erzeugen. Die Benutzeroberfläche kann so konfiguriert sein, dass sie ein Suchergebnis aus dem Index für Schlüsselelemente bereitstellt, das einer Abfrage entspricht, und eine Auswahl von Informationen empfängt, die der Anwendungszustandskennung zugeordnet sind. Die Auswahl veranlasst das Mobilgerät, zu einem Zustand zu wechseln, der durch die Anwendungzustandskennung dargestellt wird, einschließlich Öffnen der mobilen Anwendung, die der Zielaufgabe zugeordnet ist, auf der Benutzeroberfläche.
  • Gemäß bestimmten Aspekten der Offenbamng beinhaltet ein Verfahren das Speichern einer Auswahl einer ersten gespeicherten Anwendungszustandskennung und eine Auswahl einer zweiten gespeicherten Anwendungszustandskennung als ein Aufgabenablauf in einem Speicher auf einem Mobilgerät und das Aktivieren des Aufgabenablaufs in Reaktion auf einen ersten Befehl von einem Benutzer des Mobilgeräts. Das Aktivieren des Aufgabenablaufs kann das Öffnen einer ersten mobilen Anwendung, die der Zielaufgabe in der ersten gespeicherten Anwendungszustandskennung zugeordnet ist, auf einer Benutzeroberfläche, die einer Teilaufgabenkomponente der ersten gespeicherten Anwendungszustandskennung entspricht, und das Öffnen, in Reaktion auf das Empfangen eines zweiten Befehls vom Benutzer, einer zweiten mobilen Anwendung, die einer Zielaufgabe in der zweiten gespeicherten Anwendungszustandskennung zugeordnet ist, auf einer Benutzeroberfläche, die einer Teilaufgabenkomponente der zweiten gespeicherten Anwendungszustandskennung entspricht, beinhalten.
  • Gemäß bestimmten Aspekten der Offenbarung beinhaltet eine mobile Anwendung eine Protokollkennung, eine Zielaufgabenkomponente, die einer mobilen Anwendung zugeordnet ist, die ausgeführt wird, wenn die Anwendungszustandskennung erzeugt wird, und eine Teilaufgabenkomponente, die einer Benutzeroberfläche zugeordnet ist, die in der mobilen Anwendung aktiv Ist, wenn die Anwendungszustandskennung erzeugt wird. Die Anwendungszustandskennung kann außerdem eine Benutzereingabekomponente beinhalten, die Aktionen widerspiegelt, die von einem Benutzer während der Ausführung der mobilen Anwendung durchgeführt werden. Die Anwendungszustandskennung kann außerdem eine Gerätezustandskomponente beinhalten. Datenelemente in jeder Komponente können von generisch zu spezifisch geordnet sein.
  • In einem allgemeinen Aspekt beinhaltet ein Computerprogrogrammprodukt, das auf einem computerlesbaren Speichergerät verkörpert ist, Anweisungen, die, wenn sie von mindestens einem Prozessor ausgeführt werden, der in einem Substrat gebildet wird, ein Computergerät veranlassen, beliebige der offenbarten Verfahren, Operationen oder Prozesse durchzuführen. Ein anderer allgemeiner Aspekt beinhaltet ein System und/oder ein Verfahren für die Erfassung, Freigabe und Neuerstellung eines Zustands eines Mobilgeräts.
  • Eine oder mehrere Implementierungen des hierin beschriebenen Gegenstands können implementiert werden, um einen oder mehrere der folgenden Vorteile zu realisieren. Als ein Beispiel muss die Anwendungszustandskennung nicht spezifisch für ein Gerät oder eine mobile Anwendung sein. Wenn allgemeine Informationen vor spezifische Informationen gesetzt werden, ermöglicht dies die Freigabe eines allgemeineren Zustands unabhängig von Unterschieden zwischen einem Ziel- und einem Quellgerät. Als weiteres Beispiel verbessert die Anwendungszustandskennung die Zusammenarbeit, wenn zwei Personen kommunizieren, da eine Person den Zustand ihres Gerät für eine andere freigeben kann, ohne erklären zu müssen, wie diese zu den Informationen gelangt. Eine solche Zusammenarbeit ist besonders wertvoll, wenn der zweite Empfänger des Zustands sich in einer Freisprechumgebung befindet und keine gängigen Benutzeroberflächen betreiben kann. Als weiteres Beispiel ermöglicht die Anwendungszustandskennung es einem Benutzer, den Kontext problemlos zu behalten, während er Mobilgeräte wechselt, sodass keine zusätzliche Benutzereingabe nötig ist, um auf einem Gerät dort weiterzumachen, wo der Benutzer auf einem anderen Gerät aufgehört hat. Die Anwendungszustandskennung erleichtert außerdem die Rückkehr zu einem bestimmten Zustand. Als weiteres Beispiel unterscheidet sich die Aktivierung eines Zustands, der durch eine Anwendungszustandskenung dargestellt wird, von der Aufzeichnung und Wiedergabe in Form eines Makros. Solche Makros sind abhängig vom Gerät und der Anwendungsbenutzeroberfläche. Daher können leichte Variationen bei der Bildschirmdarstellung dazu führen, dass ein Makro fehlschlägt. Dagegen kann die Anwendungszustandskennung einen allgemeinen Zustand oder spezifischen Zustand einrichten, z. B. durch Festlegung von Umgebungsvariablen, vor Starten einer mobilen Anwendung, die einer Zielaufgabe zugeordnet ist. Als weiteres Beispiel hat die Anwendungszustandskennung ein hierarchisches Informationsschema, das sich für das Organisieren. Vergleichen und Gruppieren eignet, was bei der Analyse von Arbeitsabläufen nützlich sein kann, die durch gespeicherte Anwendungszustandskennungen dargestellt werden. In anderen Worten, die gespeicherten Anwendungszustandskennungen können einen Arbeitsablauf darstellen und sie können im Zeitverlauf verwendet werden, um Muster zu ermitteln und eine nächste Aktion auf Basis des historischen Arbeitsablaufs vorherzusagen. Als weiteres Beispiel ermöglicht die Anwendungszustandskennung „deep Links” in eine Anwendung. Da die Anwendungszustandskennung den Zustand erfassen kann, der durch Interaktion mit einer Anwendung (oder einem Satz von Anwendungen) bei der Durchführung einer Aufgabe erreicht wurde, wenn das System den Zustand aktiviert, der durch die Anwendungszustandskennung dargestellt wird, wird der Benutzer direkt zu einem bestimmten Zustand in einer mobilen Anwendung geleitet, statt zum Beispiel zum Startbildschirm der mobilen App.
  • Die Einzelheiten einer oder mehrerer Implementierungen sind in den begleitenden Zeichnungen und der Beschreibung unten dargelegt. Andere Merkmale werden anhand der Beschreibung und Zeichnungen sowie anhand der Ansprüche ersichtlich.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Blockdiagramm, das ein Beispielsystem in Übereinstimmung mit dem offenbarten Gegenstand veranschaulicht.
  • 2 veranschaulicht Beispielanwendungszustandskennungen in Übereinstimmung mit dem offenbarten Gegenstand.
  • 3 veranschaulicht ein Ablaufdiagramm eines Beispielprozesses für die Freigabe eines Zustands eines ersten Mobilgeräts für ein zweites Mobilgerät mithilfe eines Anwendungszustand-Transferprotokolls in Übereinstimmung mit offenbarten Implementierungen.
  • 4 veranschaulicht ein Ablaufdiagramm eines Beispielprozesses für das erneute Aufrufen eines gespeicherten Zustands mithilfe einer Anwendungszustandskennung in Übereinstimmung mit dem offenbarten Gegenstand.
  • 5 veranschaulicht eine Beispielbenutzeroberfläche für die Auswahl gespeicherter Anwendungszustände in Übereinstimmung mit dem offenbarten Gegenstand.
  • 6 zeigt ein Beispiel eines Computergeräts, das zur Implementierung der beschriebenen Techniken verwendet werden kann.
  • 7 zeigt ein Beispiel eines verteilten Computergeräts, das zur Implementierung der beschriebenen Techniken verwendet werden kann.
  • Wie Referenzsymbole in den unterschiedlichen Zeichnungen auf ähnliche Elemente hinweisen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • 1 ist ein Blockdiagramm eines Freigabesystems für den Anwendungszustand 100 in Übereinstimmung mit einer beispielhaften Implementierung. Das System 100 kann verwendet werden, um einen Zustand eines Mobilgeräts mithilfe einer Anwendungszustandskennung zu erfassen und den Zustand an ein anderes Mobilgerät weiterzugeben oder den Zustand zu einem späteren Zeitpunkt erneut aufzurufen. Ein Zustand eines Mobilgeräts stellt die zurzeit aktive mobile Anwendung und die spezifische Aktivität dar, die in der aktiven Anwendung erfolgt. In einer mobilen E-Mail-Anwendung kann zum Beispiel statt einer Leseaktivität eine Verfassen-Aktivität aktiv sein. Der Zustand kann durch eine Sammlung von Bindungen zwischen Variable und Wert dargestellt werden. Ein Zustand kann allgemein oder spezifisch sein. Der allgemeinste Zustand stellt zum Beispiel die Art von mobiler Anwendung dar, die zurzeit aktiv ist oder ausgeführt wird. Ein anderer allgemeiner Zustand kann die Art der mobilen Anwendung darstellen, die zurzeit ausgeführt wird, und ein spezifisches Benutzerschnittstellenelement in dieser Anwendung. Ein spezifischerer Zustand kann vom Benutzer gelieferten Text oder Auswahlen beinhalten (z. B. ein Element, das aus einem Dropdown ausgewählt wurde). Solche Auswahlen können durch Umgebungsvariablen dargestellt werden, z. B. eine Bindung zwischen Variable und Wert. Der Zustand kann außerdem Informationen über die Einstellungen und die Umgebung des Mobilgeräts beinhalten, z. B. Ort, Energieeinstellungen usw. Das System 100 in 1 ist ein Client-Server-System, wobei ein Teil der Datenverarbeitung möglicherweise an einem Server 110 stattfindet. Jedoch können andere Konfigurationen und Anwendungen verwendet werden. Die Datenverarbeitung kann zum Beispiel ausschließlich auf dem Mobilgerät 170 erfolgen. In einigen Implementierungen kann ein Benutzer des Mobilgeräts 170 angeben, dass Teile der Verarbeitung auf dem Server 110 durchgeführt werden. Somit sind Implementierungen nicht auf die genauen veranschaulichten Konfigurationen beschränkt.
  • Das Freigabesystem für den Anwendungszustand 100 kann das Mobilgerät 170 beinhalten. Das Mobilgerät 170 kann jedes beliebige persönliche Computergerät sein, z. B. ein Smartphone oder ein anderes Handheld-Computergerät, ein Tablet, eine Smartwatch oder ein anderes tragbares Computergerät usw., das in einer geschlossenen mobilen Umgebung und nicht in einer herkömmlichen, offenen, webbasierten Umgebung betrieben wird. Das Mobilgerät 170 kann ein Beispiel von Computergerät 600 sein, wie in 6 dargestellt. Das Mobilgerät 170 kann einen Prozessor oder mehrere Prozessoren beinhalten, die in einem Substrat gebildet werden, die so konfiguriert sind, dass sie eine oder mehrere maschinenausführbare Anweisungen oder Softwareteile, Firmware oder Kombinationen davon ausführen. Das Mobilgerät 170 kann ein Betriebssystem und einen oder mehrere Computerspeicher beinhalten, die so konfiguriert sind, dass sie ein oder mehrere Datenelemente temporär, permanent oder semipermanent oder in einer Kombination daraus speichern. Das Mobilgerät 170 kann somit Anwendungen beinhalten, z. B. mobile Anwendungen 175, Inhaltsagent 120 und Anwendungszustand-Engine 140, die maschinenausführbare Anweisungen in Form von Software, Firmware oder einer Kombination daraus bilden. Das Mobilgerät 170 kann außerdem eines oder mehrere Ausgabegeräte beinhalten, die ein Anzeigegerät für die Anzeige visueller Inhalte und Lautsprecher für die Wiedergabe von Audioinhalten beinhalten können.
  • Herkömmlicherweise werden mobile Anwendungen, z. B. mobile Anwendungen 175, in einer geschlossenen Umgebung betrieben, das heißt, dass der Benutzer getrennte Anwendungen einsetzt, um Aktivitäten durchzuführen, die herkömmlicherweise in einer webbasierten Browserumgebung durchgeführt werden. Statt zum Beispiel zu hotels.com zu gehen, um ein Hotel zu buchen, oder zu opentable.com, um eine Reservierung durchzuführen, kann ein Benutzer des Mobilgeräts 170 eine mobile Anwendung nutzen, die von hotels.com bzw. opentable.com bereitgestellt wird. Einige mobile Anwendungen können durch einen Benutzer des Mobilgeräts 170 installiert werden und einige können durch einen Hersteller des Mobilgeräts 170 installiert werden. Wenn eine mobile Anwendung 175 installiert wird, kann sie als eine Anwendung registriert werden, die eine oder mehrere Aufgaben behandelt. Eine mobile Anwendung kann zum Beispiel für die Behandlung von Kartenaufgaben, Restaurantaufgaben, E-Mail-Aufgaben, Aufgaben in sozialen Medien, Nachrichtenaufgaben usw. registriert werden. In einigen Implementierungen kann das Mobilgerät 170 einen Datenspeicher für die Aufgabenregistrierung 174 beinhalten. Der Datenspeicher für die Aufgabenregistrierung 174 kann eine mobile Anwendung 175 mit einer oder mehreren Aufgaben verbinden. Wenn ein Benutzer mehrere mobile Anwendungen 175 installiert, die für dieselbe Aufgabe registriert sind, kann das Mobilgerät 170 eine der mobilen Anwendungen 175 als Standard auswählen, oder ein Benutzer des Mobilgeräts 170 kann eine der mobilen Anwendungen 175 als Standardanwendung für die Aufgabe auswählen.
  • Das Mobilgerät 170 kann außerdem eine Anwendungszustand-Engine 140 beinhalten. Die Anwendungszustand-Engine 140 kann eine der mobilen Anwendungen 175 sein, die durch das Betriebssystem des Mobilgeräts 170 bereitgestellt werden, kann im Inhaltsagenten 120 enthalten sein, kann in einer oder mehreren der mobilen Anwendungen 175 enthalten sein, oder eine Kombination davon. Der Inhaltsagent 120 kann zum Beispiel eine Anwendungszustands-Engine 140 und eine oder mehrere der mobilen Anwendungen 175 beinhalten oder verwenden, die eine Anwendungszustand-Engine 140 beinhalten können. In einigen Implementierungen kann die Anwendungszustand-Engine 140 den Zustand des Mobilgeräts 170 erfassen, um auf Anforderung eines Benutzers eine Anwendungszustandskennung zu bilden. Ein Benutzer des Mobilgeräts 170 kann zum Beispiel Eingaben bereitstellen, zum Beispiel ein bestimmtes Wischmuster, einen Sprachbefehl oder einen Menübefehl, der die Anwendungszustand-Engine 140 veranlasst, eine Anwendungszustandskennung für den aktuellen Zustand des Mobilgeräts 170 zu erzeugen. In einigen Implementierungen kann der Inhaltsagent 120 den Zustand des Mobilgeräts 170 in Intervallen erfassen.
  • Die Anwendungszustand-Engine 140 kann außerdem eine Benutzeroberfläche erzeugen, die es dem Benutzer ermöglicht, einen Benutzer und/oder ein Mobilgerät zu identifizieren, an den/das der erfasste Zustand gesendet wird. Zusätzlich oder alternativ kann die Anwendungszustand-Engine 140 eine Benutzeroberfläche erzeugen, die es dem Benutzer ermöglicht, eine Beschreibung des erfassten Zustands bereitzustellen und die erzeugte Anwendungszustandskennung mit der Beschreibung in einem nicht flüchtigen Datenspeicher zu speichern, zum Beispiel Anwendungszustände 172. Zusätzliche Informationen, zum Beispiel eine Gerätekennung und ein Zeitstempel, können mit der Beschreibung und der Anwendungszustandskennung gespeichert werden. In einigen Implementierungen kann ein Bildschirmaufnahmebild, das vom Display des Mobilgeräts aufgenommen wird, zum Beispiel durch Kopieren des Inhalts des Frame-Puffers, mit einer oder mehreren der Zustände gespeichert werden, die in den Anwendungszuständen 172 gespeichert sind. Ein solches Bild kann hilfreich sein, wenn ein Benutzer versucht, einen früheren Zustand zu finden.
  • In einigen Implementierungen kann die Anwendungszustand-Engine 140 den Zustand des Mobilgeräts in vorher festgelegten Intervallen erfassen, zum Beispiel jede halbe Sekunde, jede Sekunde, alle fünf Sekunden usw. Die gespeicherten Zustände können in Form von Anwendungszustandskennungen in Anwendungszuständen 172 und/oder Index 176 gespeichert werden. Wie oben erklärt, können zusätzliche Informationen wie eine Bildschirmaufnahme, ein Datums-/Uhrzeitstempel usw. ebenfalls mit dem erfassten Zustand gespeichert werden. In einigen Implementierungen kann das Mobilgerät 170 (oder der Server 110) eine Erkennung bei dem Bildschirmaufnahmebild durchführen, das dem Zustand zugeordnet ist, und einen invertierten Index, z. B. Index 176, erstellen, um das Suchen nach einem gespeicherten Zustand zu unterstützen, z. B. mithilfe von Schlüsselwörtern, die im Bildschirmaufnahmebild erkannt werden, das der Anwendungszustandskennung zugeordnet ist. In einigen Implementierungen kann die Anwendungszustand-Engine 140 die in den Anwendungszuständen 172 gespeicherten Zustände filtern, um die Menge der Zustände in den Anwendungszuständen 172 und/oder die Anzahl der Einträge, die dem Index 176 bereitgestellt werden, zu begrenzen.
  • Die Anwendungszustand-Engine 140 kann außerdem eine Benutzeroberfläche bereitstellen, die es dem Benutzer ermöglicht, gespeicherte Zustände zu suchen. Die von einer Anwendungszustand-Engine 140 bereitgestellte Benutzeroberfläche kann nach einer Beschreibung durchsuchbar sein, falls eine solche vom Benutzer bereitgestellt wird, oder nach Inhalten, die in einem Bild der Bildschirmaufnahme erkannt werden, wenn die Anwendungszustandskennung erzeugt wird, nach Datum und/oder Uhrzea usw. Der Datenspeicher für Anwendungszustände 172 kann indiziert oder sonst durchsuchbar sein und/oder die Anwendungszustandskennungen können in einem Index 176 enthalten sein. Die von einer Anwendungszustand-Engine 140 bereitgestellte Benutzeroberfläche kann es dem Benutzer ermöglichen, den ausgewählten Zustand auf dem Mobilgerät 170 erneut zu erstellen oder zu aktiveren oder den ausgewählten Zustand an ein anderes Mobilgerät zu senden, z. B. das Mobilgerät 190. Die Anwendungszustand-Engine 140 kann in anderen Worten in der Lage sein, eine empfangene oder ausgewählte Anwendungszustandskennung zu interpretieren und sie zu verwenden, um den aktuellen Zustand des Mobilgeräts 170 zu einem Zustand zu ändern, der durch die empfangene Anwendungszustandskennung dargestellt wird. Das Mobilgerät 190 kann außerdem eine Anwendungszustand-Engine 140 beinhalten, die nach Empfangen einer Anwendungszustandskennung vom Mobilgerät 170 den empfangenen Zustand auf dem Mobilgerät 190 aktiviert. In anderen Worten, die Anwendungszustand-Engine 140 auf dem Mobilgerät 190 ändert den aktuellen Zustand des Mobilgeräts 190 zu einem Zustand, der durch die empfangene Anwendungszustandskennung dargestellt wird. In einigen Implementierungen kann die Anwendungszustand-Engine 140 alle persönlichen Informationen von einer Anwendungszustandskennung entfernen, bevor die Anwendungszustandskennung an ein Mobilgerät gesendet wird, das nicht dem Benutzer des Mobilgeräts 170 zugeordnet ist. Somit kann es die Anwendungszustand-Engine 140 einem Benutzer des Mobilgeräts 170 ermöglichen, persönliche Zustandsinformationen für die eigenen Geräte des Benutzers freizugeben, und nicht persönliche Zustandsinformationen für alle anderen Geräte freizugeben.
  • In einigen Implementierungen kann das Mobilgerät 170 Inhaltsagent 120 beinhalten. Der Inhaltsagent 120 kann so konfiguriert sein, dass er den aktuellen Bildschirm erfasst, z. B. durch Kopieren oder Lesen der Inhalte des Frame-Puffers des Geräts und das Erfassen des Zustands des Mobilgeräts in Intervallen. Das Intervall kann klein sein, z. B. jede halbe Sekunde oder jede Sekunde. In einigen Implementierungen kann der Inhaltsagent 120 so konfiguriert sein, dass er den Bildschirm und den Zustand jedes Mal erfasst, wenn ein Touch-Ereignis erfolgt, z. B. jedes Mal, wenn der Benutzer den Bildschirm berührt, um zu blättern, zu zoomen, auf einen Link zu klicken usw. In einigen Implementierungen kann der Inhaltsagent 120 das Intervall erhöhen, mit dem der Zustand und der Bildschirm erfasst werden, wenn sich der Bildschirm nicht ändert. In anderen Worten, wenn der Bildschirminhalt statisch ist, kann der Inhaltsagent 120 eine Erfassung weniger häufig initiieren. Der Inhaltsagent 120 kann den erfassten Zustand und das erfasste Bild in Anwendungszuständen 172 speichern. In einigen Implementierungen kann der Inhaltsagent 120 den erfassten Zustand in Form einer Anwendungszustandskennung und das Bildschirmaufnahmebild und die Metadaten einer Erkennungs- und Indizierungs-Engine (nicht dargestellt) bereitstellen, die sich auf dem Mobilgerät 170 oder einem Server, z. B. Server 110, befinden kann. Die Indizierungs-Engine kann Schlüsselelement (z. B. Logos, Begriffe, Phrasen, Entitäten, Bilder) identifizieren, die im Bildschirmaufnahmebild identifiziert werden, und diese Informationen in Index 176 speichern.
  • Der Index 176 kann ein invertierter Index sein, der Schlüsselelemente und Listen von Bildern und/oder Anwendungszustandskennungen speichert, die Schlüsselelementen zugeordnet sind. Die Schlüsselelemente können Text, Entitäten, Logos, Orte usw. sein, die während der Erkennung erkannt wurden. Der Index 176 kann außerdem Metadaten über jeden Zustand oder jedes Bild beinhalten, z. B. eine Einstufung für das Schlüsselelement für den Zustand oder das Bild, Koordinaten im Bild, an denen das Schlüsselelement gefunden werden kann, usw. In einigen Implementierungen kann der Benutzer angeben, wie lange ein bestimmter Zustand oder ein bestimmtes Bildschirmaufnahmebild im Index 176 behalten wird. In einigen Implementierungen speichert der invertierte Index Schlüsselelemente und Listen von Bildern und der Zustand wird in die Metadaten des Bildes einbezogen. Andere Metadaten, die im Bildschirmaufnahmebild gespeichert sind, können der Zeitstempel, der Typ des Mobilgeräts, eine Kennung des Mobilgeräts, die mobile Anwendung, die bei Aufnahme des Bildschirms ausgeführt wurde, z. B. die Anwendung, die den Bildschirm erzeugt hat, usw. beinhalten. Selbstverständlich kann der Index 176 auf einem getrennten Gerät gespeichert werden, z. B. Server 110.
  • Der Inhaltsagent 120 kann außerdem so konfiguriert sein, dass er Daten von Benutzereingabeaktionen 178 erfasst. Daten von Benutzereingabeaktionen 178 stellen Benutzereingabeaktionen wie Tippen, Wischen, Texteingabe oder andere Aktionen dar, die der Benutzer durchführt, um mit dem Mobilgerät 170 zu interagieren. Die Daten von Benutzereingabeaktionen 178 können einen Zeitstempel für jede Aktion aufzeichnen, der angibt, wann die Aktion erfolgte. Die Daten von Benutzereingabeaktionen 178 können außerdem die Bildschirmkoordinaten für eine Touch-Aktion aufzeichnen, Anfangs- und Endkoordinaten für eine Wischaktion und den Text, der für Tastaturaktionen eingegeben wurde. Wenn der Benutzer eine Mehrfinger-Aktion durchführt, können die Daten von Benutzereingabeaktionen 178 mehrere Einträge mit demselben Zeitstempel beinhalten. Wenn der Benutzer zum Beispiel einen Zweifinger-Pinch zum Vergrößern durchführt, kann der Inhaltsagent 120 einen Eintrag in den Daten von Benutzereingabeaktionen 178 für den ersten Finger (z. B. Ringfinger) und einen zweiten Eintrag in den Daten von Benutzereingabeaktionen 178 für den zweiten Finger (z. B. Daumen) aufzeichnen, die jeweils denselben Zeitstempel haben. Die Daten von Benutzereingabeaktionen 178 können verwendet werden, um eine Benutzereingabekomponente einer Anwendungszustandskennung zu erzeugen. Die Daten von Benutzereingabeaktionen 178 können durch einen Zeitstempel indiziert oder in Zeitstempelreihenfolge gespeichert werden.
  • Der Benutzer des Mobilgeräts 170 kann steuern, wann der Inhaltsagent 120 aktiv ist. Der Benutzer kann zum Beispiel angeben, dass der Inhaltsagent 120 nur aktiv ist, wenn andere angegebene mobile Anwendungen 175 oder mobile Anwendungen 175, die einer spezifischen Aufgabe zugeordnet sind, ausgeführt werden (z. B. nur, wenn in einer mobilen Anwendung für soziale Medien). Der Benutzer kann den Inhaltsagenten 120 manuell ein- und ausschalten, z. B. über eine Einstellungsanwendung oder eine andere Benutzeroberfläche. In einigen Implementierungen kann der Benutzer die Erfassung von Benutzereingabedaten unabhängig vom Ausschalten des Bildschirms und der Zustandserfassungsfunktion ein- und ausschalten.
  • Das Freigabesystem für den Anwendungszustand 100 kann außerdem Datenspeicher beinhalten, die einem Benutzerkonto oder Profil zugeordnet sind. Auch wenn in 1 als auf einem Mobilgerät 170 befindlich dargestellt, können sich die Anwendungszustände 172, die Aufgabenregistrierung 174, der Index 176 und die Datenspeicher für Benutzereingabeaktionsdaten 178 auf dem Server 110, auf dem Mobilgerät 170, einer Kombination aus Server und Mobilgerät oder an einem anderen Ort befinden, der vom Benutzer angegeben wird. Somit sind Implementierungen nicht auf die genaue in 1 veranschaulichte Konfiguration beschränkt. Die Datenspeicher können auf jedem nicht flüchtigen Speicher gespeichert sein.
  • Das Freigabesystem für den Anwendungszustand 100 kann einen Server 110 beinhalten, der ein Computergerät oder Computergeräte sein kann, die die Form einer Reihe verschiedener Geräte annehmen, z. B. ein Standardserver, eine Gruppe solcher Server oder ein Rack-Serversystem. Server 110 kann zum Beispiel auf verteilte Weise über mehrere Computergeräte implementiert sein. Außerdem kann Server 110 in einem PC implementiert sein, z. B. einem Laptop-Computer. Der Server 110 kann ein Beispiel von Computergerät 600 sein, wie in 6 dargestellt, oder Computergerät 700, wie in 7 dargestellt. Server 110 kann einen Prozessor oder mehrere Prozessoren beinhalten, die in einem Substrat gebildet werden, die so konfiguriert sind, dass sie eine oder mehrere maschinenausführbare Anweisungen oder Softwareteile, Firmware oder Kombinationen davon ausführen. Server 110 kann außerdem einen oder mehrere Computerspeicher beinhalten. Die Speicher, zum Beispiel ein Hauptspeicher, können so konfiguriert sein, dass sie ein oder mehrere Datenteile entweder temporär, permanent, semipermanent oder einer Kombination daraus speichern Die Speicher können jede Art von Speichergerät beinhalten, das Informationen in einem Format speichert, das von dem einen oder den mehreren Prozessoren gelesen und/oder ausgeführt werden kann. Die Speicher können flüchtigen Speicher, nicht flüchtigen Speicher oder eine Kombination daraus beinhalten, und sie können Module speichern die, wenn sie von dem einen oder den mehreren Prozessoren ausgeführt werden, bestimmte Operationen durchführen. In einigen Implementierungen können die Module in einem externen Speichergerät gespeichert und in den Speicher des Servers 110 geladen werden. Der Server 110 kann zum Beispiel Module für Texterkennung, Bilderkennung, Logoerkennung, Entitätserkennung, Indexerzeugung und -pflege usw. beinhalten.
  • Das Mobilgerät 170 kann in Kommunikation mit dem Server 110 und mit anderen Mobilgeräten 190 über das Netzwerk 160 sein. Netzwerk 160 kann zum Beispiel das Internet sein oder das Netzwerk 160 kann ein drahtgebundenes oder drahtloses Local Area Network (LAN), Wide Area Network (WAN) usw. sein, das zum Beispiel mithilfe von Gateway-Geräten, Bridges, Switches und//oder so weiter implementiert wird. Netzwerk 160 kann außerdem ein Mobilfunknetz darstellen. Über das Netzwerk 160 kann der Server 110 mit dem Mobilgerät 170 und dem Mobilgerät 190 kommunizieren und Daten an diese übertragen, und das Mobilgerät 170 kann mit anderen Mobilgeräten 190 kommunizieren.
  • Das Freigabesystem für den Anwendungszustand 100 stellt eine Beispielkonfiguration dar und Implementierungen können andere Konfigurationen beinhalten. Einige Implementierungen können zum Beispiel eine oder mehrere der Komponenten der Anwendungszustand-Engine 140 und den Inhaltsagenten 120 in einem einzigen Modul oder einer einzigen Engine kombinieren, eine oder mehrere der Komponenten der Anwendungszustands-Engine 140 und des Inhaltsagenten 120 können vom Server 110 durchgeführt werden. Als weiteres Beispiel können eine oder mehrere der Datenspeicher, z. B. Anwendungszustände 172, Aufgabenregistrierung 174, Index 176 und Daten von Benutzereingabeaktionen 178, auf einem verteilten Computergerät, z. B. Server 110, in einem einzigen Datenspeicher kombiniert oder in einem Konto, gespeichert werden, das dem Benutzer des Mobilgeräts 170 zugeordnet ist.
  • In dem Umfang, wie das Freigabesystem für den Anwendungszustand 100 benutzerspezifische Daten sammelt und speichert oder persönliche Informationen nutzen kann, kann für den Benutzer eine Möglichkeit der Kontrolle bereitgestellt werden, ob Programme oder Funktionen Benutzerinformationen sammeln (z. B. Informationen über das soziale Netzwerk eines Benutzers, soziale Handlungen oder Aktivitäten, Benutzereingabeaktionen, Kontakte, Voreinstellungen eines Benutzer oder der aktuelle Ort eines Benutzers), oder zu kontrollieren, ob und/oder wie der Benutzer Inhalte empfangen kann, die für den Benutzer relevanter sein können. Zusätzlich können gewisse Daten auf eine oder mehrere Weisen behandelt werden, bevor sie gespeichert oder verwendet werden, um personenbezogene Informationen zu entfernen. Die Identität des Benutzers kann zum Beispiel so behandelt werden, dass keine persönlichen oder persönlich identifizierbaren Informationen für den Benutzer ermittelt werden können, oder der geographische Standort eines Benutzers kann verallgemeinert werden, wenn Ortsinformationen erhalten werden (z. B. auf Orts-, Postleitzahl- oder Bundeslandebene), sodass kein bestimmter Ort eines Benutzers ermittelt werden kann. Somit könnte der Benutzer Kontrolle darüber haben, wie Informationen über den Benutzer gesammelt und von einem Freigabesystem für den Anwendungszustand 100 verwendet werden.
  • 2 veranschaulicht Beispielanwendungszustandskennungen in Übereinstimmung mit dem offenbarten Gegenstand. Die Anwendungszustandskennungen erfassen Informationen über den Zustand eines Mobilgeräts in einem bestimmten Format, sodass der Zustand für ein anderes Gerät freigegeben oder zu einem späteren Zeitpunkt erneut aufgerufen werden kann. Das Format der verschiedenen Komponenten der Anwendungszustandskennung kann verschiedene Formen annehmen, wie in den drei Beispielen von 2 veranschaulicht. Die verschiedenen Komponenten können zum Beispiel durch vorher festgelegte Zeichen getrennt werden, wie durch Anwendungszustandskennung 200 und 201 veranschaulicht, oder sie können eine abgestimmte Liste sein, wie durch Anwendungszustandskennung 202 veranschaulicht. Um jedoch einen Zustand zwischen Mobilgeräten effektiv zu kommunizieren, kann das Format standardisiert sein, sodass verschiedene Mobilgeräte von verschiedenen Herstellern die Komponenten der Anwendungszustandskennung identifizieren und interpretieren können.
  • Die Anwendungszustandskennungen 200, 201 und 202 beinhalten ein Präfix 205, das angibt, dass die folgende Struktur ein Anwendungszustand-Transferprotokoll ist, das eine Anwendungszustandskennung verwendet. Das Präfix 205 ist nicht auf die veranschaulichten Formate beschränkt, sondern könnte jede Kombination von Zeichen sein, die durch ein Mobilgerät verwendet werden, um die folgenden Zeichen als eine Anwendungszustandskennung zu identifizieren. Das Präfix 205 der Anwendungszustandskennung 200 ist zum Beispiel „asi://”, während das Präfix 205 für die Anwendungszustandskennung 202 „astp://” ist. Das Präfix 205 wird u. U. nicht als Komponente der Anwendungszustandskennung betrachtet, da es möglicherweise nur als ein Signal des Vorhandenseins einer solchen Kennung betrachtet wird.
  • Eine erste Komponente der Anwendungszustandskennung ist die Zielaufgabe 210. Die Zielaufgabe 210 identifiziert den Typ der mobilen Anwendung, die ausgeführt wird, wenn die Anwendungszustandskennung erzeugt wird. Die Benennung einer Zielaufgabe statt einer mobilen Anwendung, die ausgeführt wird, bietet die Möglichkeit, den Zustand von einem Mobilgerät zu einem anderen Mobilgerät zu transferieren, auch wenn auf dem zweiten Mobilgerät nicht dieselbe mobile Anwendung installiert ist. Somit lässt die Zielaufgabe das Mobilgerät, das den Zustand aktiviert, der durch die Anwendungszustandskennung dargestellt wird, die entsprechende mobile Anwendung für die Ausführung wählen. Beispiele von Zielaufgaben beinhalten Kalender, soziale Medien, Kurznachrichten (SMS) oder Textkommunikation, E-Mail, Karten, Browser usw. Eine mobile Anwendung kann einer oder mehreren Aufgaben auf dem Mobilgerät zugeordnet sein. Falls zwei installierte mobile Anwendungen derselben Zielaufgabe zugeordnet sind, kann ein Benutzer des Mobilgeräts eine als Standard für die Handhabung von Anwendungszustandskennungen auswählen, die der Aufgabe zugeordnet sind, oder das Mobilgerät kann einen oder mehrere Standards zufällig auswählen.
  • Eine zweite Komponente der Anwendungszustandskennung ist die Teilaufgabe 215. Die Teilaufgabe 215 ist für die Zielaufgabe 210 spezifisch und kann eine Benutzeroberflächenkomponente für die Zielaufgabe darstellen. Eine Benutzeroberflächenkomponente kann ein Datenelement sein, das für die Art von Zielaufgabe häufig ist. Eine Kalender-Zielaufgabe kann zum Beispiel eine Datenkomponente haben, die das Datum darstellt, das der Benutzer betrachtet. Als weiteres Beispiel kann eine Kartenaufgabe eine Adressenkomponente haben, z. B. Ort oder Straße. Eine Benutzeroberflächenkomponente kann außerdem eine häufige Oberfläche für eine Aufgabe sein. E-Mail-Aufgaben haben zum Beispiel eine Benutzeroberfläche für das Verfassen von Nachrichten und eine Posteingang-Benutzeroberfläche. Als weiteres Beispiel haben Reservierungsanwendungen eine Benutzeroberfläche für die Bewertung und eine Benutzeroberfläche für die Erstellung von Reservierungen. Solche Benutzeroberflächenkomponenten sind nicht für eine bestimmte mobile Anwendung spezifisch, sondern im Allgemeinen allen mobilen Anwendungen gemeinsam, die der Zielaufgabe zugeordnet sind. In einigen Implementierungen kann die Teilaufgabenkomponente 215 anwendungsspezifische Datenelemente beinhalten. Solche spezifischen Datenelemente von Teilaufgaben können den allgemeinen Datenelementen von Teilaufgaben folgen. Somit kann, wenn ein Empfängergerät des freigegebenen Zustands ein Datenelement in der Teilaufgabe 215 nicht verarbeiten kann, das empfangende Gerät jegliche restlichen Datenelemente in der Teilaufgabe 215 ignorieren, aber es kann die allgemeineren Datenelemente verwenden, die diesen voraus gehen. In einigen Implementierungen kann die Teilaufgabenkomponente 215 Umgebungsvariablen darstellen, die nicht auf einer Benutzereingabe basieren. Solche Umgebungsvariablen können durch die mobile Anwendung erzeugt und als Datenelemente in der Teilaufgabenkomponente 215 erfasst werden. Wie oben angegeben, können Datenelemente für allgemeine Umgebungsvariablen, z. B. häufig für die Zielaufgabe, vor den Datenelementen für spezifischere Umgebungsvariablen, z. B. für eine spezifische mobile Anwendung, platziert werden.
  • Die Anwendungszustandskennung kann eine Benutzereingabekomponente 220 haben. Die Benutzereingabe 220 kann benutzerspezifisch, anwendungsspezifisch oder für eine Benutzeroberflächenkomponente allgemein sein. Die allgemeinen Datenelemente in der Benutzereingabekomponente 220 können vor spezifischeren Datenelementen erscheinen. Alle persönlichen Datenelemente können als Letztes in der Benutzereingabekomponente 220 gespeichert werden. Eine Teilaufgabe zum Verfassen von E-Mails erfordert zum Beispiel im Allgemeinen, dass der Benutzer den Empfänger der E-Mail identifiziert. Die Eingabe vom Benutzer, die den Empfänger identifiziert, kann z. B. durch die mobile Anwendung, durch einen Inhaltsagenten oder durch das Betriebssystem erfasst und als Teil der Anwendungszustandskennung einbezogen werden. Eine solche Benutzereingabe ist für die Teilaufgabe des Verfassen von E-Mails allgemein. Dagegen können E-Mail-Anwendungen eine unterschiedliche Menüauswahl haben und die Benutzereingabekomponente 220 kann die Benutzerauswahl einer spezifischen Menüoption widerspiegeln. Diese Art von Benutzereingabe kann anwendungsspezifisch sein. In einigen Implementierungen können bestimmte Menüauswahlen über Umgebungsvariablen erfasst werden. In einigen Implementierungen kann eine solche Eingabe über einen Inhaltsagenten erfasst werden. Das System kann die Benutzereingabekomponente 220 als „deep Link” in die mobile Anwendung verwenden, wenn der Zustand der Anwendungszustandskennung aktiviert wird. Die Anwendungszustandskennung kann zum Beispiel angeben, dass der Benutzer in der Benutzeroberfläche, die durch die Teilaufgabe identifiziert wurde, auf eine Schaltfläche {erweitern} geklickt hat, wie durch Anwendungszustandskennung 201 veranschaulicht. Alternativ kann die Benutzereingabe Textzeichen, die zum Beispiel in ein Textfeld eingegeben werden, beinhalten und eine Schaltfläche {los} auswählen. Der Text und die Auswahl der Schaltfläche {los} können erfasst werden, z. B. von einer Umgebungsvariablen oder als Benutzereingabedaten, und der Anwendungszustandskennung bereitgestellt werden. Alle persönlichen Informationen können in der Anwendungszustandskennung verschlüsselt werden. In einigen Implementierungen können solche persönlichen Informationen gekennzeichnet oder getrennt von anderen Informationen in der Benutzereingabekomponente 220 beschrieben werden.
  • Die Anwendungszustandskennung kann außerdem andere Informationen beinhalten, zum Beispiel Geräteinformationen 225. Die Geräteinformationen 225 können den Typ eines Mobilgeräts, einen Ort des Mobilgeräts, eine Kennung des Mobilgeräts, welche Anwendungen aktiv waren, Umgebungslicht, Bewegung des Geräts, Gerätehaltung, Schriftartvoreinstellungen, Bildschirmhelligkeit, Bildschirmausrichtung usw. codieren. Solche Informationen können bei der Neuerstellung des Gerätezustands helfen, der durch die Anwendungszustandskennung dargestellt wird, insbesondere wenn der Zustand auf demselben Gerät oder einem Zielgerät desselben Typs aktiviert wird. Außerdem kann die Anwendungszustandskennung Variablen, z. B. „currentLoc”, verwenden, die von ein oder mehreren Einstellungen oder Attributen des Geräts abhängen. Die Geräteinformationen 225 können es außerdem einem Zielgerät mithilfe von Informationen wie Bildschirmgröße und Bildschirmauflösung des sendenden Geräts ermöglichen, beliebige Benutzereingabeaktionsdaten richtig zu interpretieren, die von Bildschirmkoordinaten abhängen.
  • Wie oben angegeben, kann die Anwendungszustandskennung allgemein oder spezifisch sein. Je mehr Komponenten eine Anwendungszustandskennung hat, desto spezifischer ist die Kennung. Eine allgemeine Kennung kann die Zielaufgabe 210 und eine Teilaufgabenkomponente 215 beinhalten. Diese Teile der Anwendungszustandskennung können im Allgemeinen durch ein beliebiges Mobilgerät interpretiert und auf ihm aktiviert werden. Alle anwendungsspezifischen Datenelemente in Teilaufgabe 215 können ausgeschlossen oder durch das Empfangsmobilgerät ignoriert werden, z. B. das Gerät, für das die Anwendungszustandskennung freigegeben wird. Die Benutzereingabekomponente 220 kann allgemeine, spezifische oder sogar persönliche Datenelemente beinhalten. Ein Suchbegriff, der in ein Suchfeld eingegeben wird, kann zum Beispiel für eine Restaurantanwendung allgemein sein, aber die Steuerelemente, die von einem Benutzer ausgewählt werden, können für eine bestimmte Anwendung spezifisch sein. Somit können einige der Benutzereingaben 220 in einer Anwendungszustandskennung möglicherweise nur mit einer bestimmten mobilen Anwendung funktionieren, z. B. einer, die eine bestimmte Benutzeroberfläche erwartet. In einigen Implementierungen kann die Benutzereingabekomponente 220 persönliche Datenelemente beinhalten, z. B. Datenelemente, die für einen Benutzer eindeutig sind. Solche Datenelemente können es einem Benutzer ermöglichen, einen früheren Zustand auf dem Mobilgerät wiederaufzunehmen oder einen Zustand für Geräte freizugeben, die sich im Besitz des Benutzers befinden, sie können aber entfernt oder anonymisiert werden, wenn die Anwendungszustandskennung für einen anderen Benutzer freigegeben wird, z. B. ein Gerät, das nicht dem Benutzer zugeordnet ist. In einigen Implementierungen können solche Datenelemente in der Anwendungszustandskennung als persönlich gekennzeichnet werden. Somit können persönliche Informationen einfach identifiziert und entfernt oder anonymisiert werden, wenn eine Anwendungszustandskennung für ein Gerät freigegeben wird, das nicht dem Benutzer zugeordnet ist. Auch wenn spezifische Datenelemente „Deep-Linking” in eine bestimmten mobilen Anwendung ermöglichen, kann solches „Deep-Linking” auf einer begrenzten Anzahl von Mobilgeräten erfolgreich sein (z. B. solchen, auf denen die bestimmte Anwendung ausgeführt wird). Daher können allgemeinere Datenelemente in den Anwendungszustandskennungen erfolgreich verwendet werden, um einen weniger spezifischen Zustand häufiger freizugeben.
  • 3 veranschaulicht ein Ablaufdiagramm eines Beispielprozesses 300 für die Freigabe eines Zustands eines ersten Mobilgeräts für ein zweites Mobilgerät mithilfe eines Anwendungszustands-Transferprotokolls in Übereinstimmung mit offenbarten Implementierungen. Prozess 300 kann von einen Freigabesystem für den Anwendungszustand durchgeführt werden, z. B. System 100 von 1. Prozess 300 kann verwendet werden, um einen Zustand des ersten Mobilgeräts zu erfassen und den Zustand für ein zweites Mobilgerät freizugeben. Bob und Alice planen zum Beispiel, sich zum Abendessen zu treffen. Bob könnte sich in seinem Büro befinden und Alice könnte Autofahren und z. B. ein Bluetooth-Freisprechgerät haben. Bob könnte ein Restaurant auf seinem Mobilgerät suchen und, sobald er sich für ein Restaurant entschieden hat, den Ort des Restaurants in einer Kartenanwendung finden. Da Alice autofährt, kann sie die Adresse auf ihrem Mobilgerät nicht suchen, daher aktiviert Bob einen Befehl (z. B. ein Wischmuster, eine Menüoption, einen Sprachbefehl), der den Zustand auf seinen Mobilgerät freigibt und den Zustand an das Gerät von Alice sendet. Der Zustand wird durch eine Anwendungszustandskennung dargestellt. Wenn das Gerät von Alice die Anwendungszustandskennung empfängt, kann es die Komponenten interpretieren und den Zustand aktivieren und somit den Zustand auf dem Gerät von Alice so ändern, dass eine Kartenanwendung, die auf dem Gerät von Alice installiert ist, sich mit der Adresse öffnet, die Bob auf seinem Gerät angezeigt hat. Somit kann Alice mit der Verwendung der Kartenanwendung beginnen, ohne Informationen eingeben zu müssen. Dies erfolgt, wenn Alice und Bob ähnliche Mobilgeräte oder Geräte mit unterschiedlichen Betriebssystemen und unterschiedlichen Kartenanwendungen haben.
  • Prozess 300 kann das Erzeugen einer Anwendungszustandskennung für den aktuellen Zustand des ersten Mobilgeräts (305) beinhalten. Das Erzeugen der Anwendungszustandskennung kann das Identifizieren der mobilen Anwendung, die ausgeführt wird, und das Ermitteln einer Zielaufgabe, die der Anwendung zugeordnet ist, beinhalten. Wenn die mobile Anwendung zwei oder mehr Zielaufgaben zugeordnet ist, kann das System zum Beispiel eine Zielaufgabe auf Basis der aktuellen Benutzeroberfläche auswählen, die in der mobilen Anwendung aktiv ist. Die Erzeugung einer Anwendungszustandskennung kann auch die Ermittlung einer Benutzeroberflächenkomponente beinhalten, die zum Zeitpunkt der Erzeugung der Anwendungszustandskennung aktiv ist. In einigen Implementierungen kann das erste Mobilgerät Umgebungsinformationen oder Variablen erfassen. Umgebungsinformationen beinhalten Variablen und deren Werte, die durch das Betriebssystem und die mobile Anwendung, die ausgeführt wird, eingestellt werden. Die Umgebungsinformationen können Teilaufgabeninformationen und Benutzereingabeinformationen beinhalten. Die Erzeugung der Anwendungszustandskennung kann die Ermittlung der Anwendbarkeit verschiedener Umgebungsvariablen und die Einbeziehung von Datenelementen für allgemeinere Variablen vor Datenelementen für spezifische Variablen in der Anwendungszustandskennung beinhalten. In einigen Implementierungen kann die Erzeugung der Anwendungszustandskennung das Sammeln und Codieren von Gerätedaten beinhalten.
  • In einigen Implementierungen kann die Erzeugung der Anwendungszustandskennung durch einen ausdrücklichen Befehl von einem Benutzer auf einem ersten Mobilgerät initiiert werden. Der Befehl kann ein Wisch- oder Tippmuster, eine Menüoption, ein Steuerelement oder ein anderes Befehlsmittel für das Empfangen der Absicht des Benutzers sein. In einigen Implementierungen kann die mobile Anwendung die Befehlsmittel bereitstellen. In einigen Implementierungen kann das Betriebssystem die Befehlsmittel bereitstellen. Ein solcher ausdrücklicher Befehl kann außerdem die Anzeige einer Benutzeroberfläche veranlassen, die der Benutzer des ersten Mobilgeräts aktiviert, um eine Kennung bereitzustellen, die einem zweiten Mobilgerät zugeordnet ist. In einigen Implementierungen kann die Erzeugung der Anwendungszustandskennung regelmäßig erfolgen, zum Beispiel in einem Intervall, das von einem Inhaltsagenten ermittelt wird. In solchen Implementierungen kann der Benutzer einen ausdrücklichen Befehl bereitstellen, den aktuellen Zustand freizugeben, und das System kann die zuletzt erzeugte Anwendungszustandskennung als aktuellen Zustand verwenden und die Anzeige einer Benutzeroberfläche initiieren, um eine Kennung für ein zweites Mobilgerät zu empfangen.
  • Das erste Mobilgerät kann somit eine Kennung empfangen, die einem zweiten Computergerät (310) zugeordnet ist. Die Kennung kann ein Benutzerkontoname sein, der einem Gerät oder einer Gerätekennung zugeordnet ist. Der Benutzer des ersten Mobilgeräts kann zum Beispiel einen Kontakt über eine Telefonnummer, eine SMS-Kennung, eine Videochat-Kennung usw. auswählen. Als weiteres Beispiel kann der Benutzer des ersten Mobilgeräts eine Telefonnummer (die nicht einem Kontakt zugeordnet ist) eingeben, eine Netzwerkkennung (z. B. ein Gerät, das über ein drahtloses Heimnetzwerk verbunden ist), eine Kennung für ein Gerät auswählen, das er innerhalb einer bestimmten Entfernung erkennt, usw. Die angegebene Gerätekennung kann von der Benutzeroberfläche abhängen, die dem Benutzer des ersten Mobilgeräts bereitgestellt wird. Die Kennung kann auch ein Benutzerkonto an einem Server sein. Das erste Mobilgerät kann einen Zustand des ersten Mobilgeräts eines Benutzers für ein zweites Mobilgerät eines Benutzers über einen Server bereitstellen. Die Anwendungszustandskennung kann zum Beispiel an ein Benutzerkonto auf einem Server gesendet und an ein zweites Mobilgerät übertragen werden, wenn sich der Benutzer vom zweiten Mobilgerät anmeldet.
  • Das erste Mobilgerät kann ermitteln, ob das zweite Computergerät dem Benutzer des ersten Mobilgeräts zugeordnet ist, und, wenn es nicht dem Benutzer zugeordnet ist, persönlichen Informationen von der Anwendungszustandskennung (315) entfernen. Wenn der Benutzer des ersten Mobilgeräts zum Beispiel einen Kontakt auswählt, kann das erste Mobilgerät ermitteln, dass das zweite Computergerät nicht dem Benutzer des ersten Mobilgeräts zugeordnet ist. Als weiteres Beispiel kann, wenn das zweite Computergerät ein Benutzerkonto auf einem Server ist, das erste Mobilgerät ermitteln, dass das zweite Computergerät dem Benutzer zugeordnet ist. Wie oben angegeben, können die persönlichen Informationen in der Benutzereingabekomponente mithilfe eines vorher bestimmten Trennzeichens oder Tags identifiziert werden. In einigen Implementierungen kann das Entfernen der persönlichen Informationen das Entfernen der Benutzereingabekomponente und von Teilen der Gerätekomponente der Anwendungszustandskennung beinhalten.
  • Das erste Mobilgerät kann die Anwendungszustandskennung zum zweiten Computergerät (320) übertragen. Dies kann zum Beispiel mithilfe herkömmlicher Kommunikationstechniken erreicht werden. Wenn das zweite Computergerät ein Server ist, kann das System die Anwendungszustandskennung an das zweite Mobilgerät übertragen, wenn der Benutzer sich am zweiten Mobilgerät anmeldet. Das zweite Mobilgerät kann die Anwendungszustandskennung (325) empfangen und die Anwendungszustandskennung verwenden, um automatisch den Zustand zu aktivieren, der durch die Anwendungszustandskennung auf dem zweiten Mobilgerät (330) dargestellt wird. Das Aktivieren des Zustands beinhaltet die Ermittlung, welche mobile Anwendung die Zielaufgabe behandelt, und die Ermittlung, welche Benutzeroberflächenkomponente dieser mobilen Anwendung der Teilaufgabenkomponente entspricht. In einigen Implementierungen kann das zweite Mobilgerät Umgebungsvariablen einrichten, die den Datenelementen in der Anwendungszustandskennung entsprechen, und die mobile Anwendung starten, die auf Basis der Zielaufgabe ausgewählt wurde. In einigen Implementierungen kann, wenn das zweite Mobilgerät ein Datenelement nicht interpretieren kann, es das Datenelement überspringen oder ignorieren. Dies kann zum Beispiel passieren, wenn die auf dem zweiten Mobilgerät ausgewählt mobile Anwendung sich von der mobilen Anwendung unterscheidet, die ausgeführt wurde, als die Anwendungszustandskennung auf dem ersten Mobilgerät erzeugt wurde. Das Aktivieren des Zustands kann außerdem die erneute Wiedergabe von Aktionen beinhalten, die durch eine Benutzereingabekomponente der Anwendungszustandskennung dargestellt wird; falls eine bestimmte Aktion nicht verfügbar ist, kann das zweite Mobilgerät die Wiedergabe stoppen. In einigen Implementierungen kann, wenn die Anwendungszustandskennung eine Gerätekomponente beinhaltet, das zweite Mobilgerät Geräteeinstellungen wie als Teil der Aktivierung des Zustands geeignet anpassen. Prozess 300 endet dann, nachdem der Zustand des ersten Mobilgeräts zum zweiten Mobilgerät transferiert wurde.
  • Es ist selbstverständlich, dass in einigen Implementierungen jedes beliebige Computergerät eine Anwendungszustandskennung erzeugen und die Kennung für ein Mobilgerät freigeben kann. Ein Benutzer, der yelp.com nutzt, kann zum Beispiel ein Steuerelement auf der Webseite auswählen, das die Browserseite yelp.com veranlasst, eine allgemeine Anwendungszustandskennung zu erzeugen, die den Informationen entspricht, die im Browser angezeigt werden. Eine solche allgemeine Anwendungszustandskennung kann Informationen beinhalten, die zum Beispiel durch eine Reservierungsanwendung auf einem Mobilgerät interpretiert werden kann. Wenn ein Entwickler einer Webseite eine solche Funktion bietet, stammt somit die Anwendungszustandskennung, die vom Mobilgerät empfangen wird, möglicherweise nicht von einem Mobilgerät, sondern von einer entsprechenden Webseite, die so programmiert ist, dass sie die Umgebung auf einem Mobilgerät nachahmt. Server 110 von 1 kann zum Beispiel eine Web seite mit einer solchen Funktion beinhalten. Auf diese Weise kann eine Webseite auf einem Server einen „deep link” in eine mobile Anwendung bereitstellen. Somit kann die Erzeugung der Anwendungszustandskennung auf jedem Computergerät statt auf einem ersten Mobilgerät durchgeführt werden, wobei die Zielaufgaben-, Teilaufgaben- und Benutzerkomponenten hartcodiert (d. h. vorher bestimmt) werden, statt auf einer ausführenden mobilen Anwendung zu basieren.
  • 4 veranschaulicht ein Ablaufdiagramm eines Beispielprozesses 400 für das erneute Aufrufen eines gespeicherten Zustands mithilfe einer Anwendungszustandskennung in Übereinstimmung mit dem offenbarten Gegenstand. Prozess 400 kann von einen Freigabesystem für den Anwendungszustand durchgeführt werden, z. B. System 100 von 1. Prozess 400 kann verwendet werden, um einen Zustand eines Mobilgeräts zu erfassen und den Zustand für das erneute Aufrufen zu einem späteren Zeitpunkt zu speichern. Wenn der Zustand erneut aufgerufen wird, kann der Benutzer diesen Zustand für ein zweites Mobilgerät freigeben oder den Zustand desselben Mobilgeräts aktivieren. Jack kann zum Beispiel ein Tablet verwenden, um komplexe Aufgaben durchzuführen, zum Beispiel das Anpassen der Einstellungen für das Gerät. Die Aufgabe kann das Navigieren mehrerer Benutzeroberflächen beinhalten und Jack erkennt, dass er sich möglicherweise nicht merken kann, wie er eine bestimmte Benutzeroberfläche erneut erreicht. In einigen Implementierungen kann Jack einen Befehl (z. B. wie oben in Bezug auf 3 erklärt) aktivieren, um den Zustand auf seinem Tablet mithilfe einer Anwendungszustandskennung zu erfassen. Jack kann eine Benutzeroberfläche bereitgestellt werden, die es ihm ermöglicht, eine Beschreibung oder eine Kennung für den Zustand bereitzustellen. In einigen Implementierungen kann der Zustand automatisch gespeichert und gemäß dem Inhalt auf Bildschirm indiziert werden, wenn die Anwendungszustandskennung erzeugt wird. In einigen Implementierungen kann ein Bildschirmaufnahmebild der Anzeige des Tablets ebenfalls mit der Beschreibung und dem Zustand gespeichert werden. Diese Informationen können auf seinem Tablet oder in einem Benutzerkonto auf einem Server gespeichert werden, wo Jack von mehreren Geräten aus darauf zugreifen kann. Zu einem späteren Datum kann Jack diese Anwendungskennung entweder mithilfe der Beschreibung oder des indizierten Inhalts finden und er kann sie auf seinem Tablet oder einem anderen Gerät aktivieren. Jack kann außerdem den Zustand für jemand anderen freigeben und ihm so ermöglichen, die Benutzeroberfläche zu finden, die Jack gefunden hat.
  • Prozess 400 beginnt mit der Erzeugung einer Anwendungszustandskennung für einen aktuellen Zustand des Mobilgeräts (405). Das System kann außerdem andere Metadaten mit der Anwendungszustandskennung erfassen, zum Beispiel ein Bildschirmaufnahmebild des Displays. Wie oben erörtert, kann die Anwendungszustandskennung durch das Mobilgerät automatisch erzeugt werden, oder sie kann in Reaktion auf einen ausdrücklichen Befehl durch den Benutzer des Mobilgeräts erzeugt werden. Bei Erzeugung durch einen ausdrücklichen Befehl kann das System in einigen Implementierungen eine Beschreibung des Zustands vom Benutzer empfangen (410). Eine solche Beschreibung kann es dem Benutzer ermöglichen, den Zustand in Zukunft einfacher zu finden. Das System kann die Anwendungszustandskennung in einem Datenspeicher speichern (410). Der Datenspeicher kann die Anwendungszustandskennung mit der vom Benutzer eingegebenen Beschreibung speichern. Der Datenspeicher kann außerdem ein Index sein, der Schlüsselelemente mit der Anwendungszustandskennung verbindet. In einigen Implementierungen kann die Anwendungszustandskennung einem Bildschirmaufnahmebild zugeordnet sein, bei dem das System eine Erkennung durchführt (entweder am Mobilgerät oder an einem Server), um Schlüsselelemente zu identifizieren. Somit kann eine Anwendungszustandskennung auf Basis einer Suche nach Elementen, die mann im Bildschirmaufnahmebild befinden kann, mithilfe des Index gefunden werden. In einigen Implementierungen kann sich der Datenspeicher lokal auf dem Mobilgerät befinden. In einigen Implementierungen kann der Datenspeicher sich auf einem Server befinden, gespeichert in einem Benutzerkonto, das dem Benutzer zugeordnet ist.
  • Zu einem späteren Zeitpunkt kann der Benutzer nach der Anwendungszustandskennung in einer Benutzeroberfläche suchen und er kann die Anwendungszustandskennung auswählen, die im Datenspeicher gespeichert ist (420). Das System kann zum Beispiel eine Benutzeroberfläche bereitstellen, die es einem Benutzer ermöglicht, über eine Abfrage nach einem früher gespeicherten Zustand zu suchen. Die Abfrage kann auf ein Datum und eine Uhrzeit gerichtet sein, die angegebene Beschreibung, die Schlüsselelemente, die in einem Bildschirmaufnahmebild erkannt wurden, das der Anwendungszustandskennung zugeordnet ist, oder eine Kombination davon, unter Verwendung herkömmlicher Abfragetechniken. Die Benutzeroberfläche kann es dem Benutzer außerdem ermöglichen, ein zweites Gerät für die Freigabe des Zustands auszuwählen (425). Wenn der Benutzer kein zweites Gerät auswählt oder identifiziert (425, Nein), kann das System den Zustand aktivieren, der durch die ausgewählte Anwendungszustandskennung auf dem Mobilgerät dargestellt wird (430). Dies kann die Interpretation der Anwendungszustandskennung wie oben in Bezug auf 3 beschrieben beinhalten. Prozess 400 endet dann, nachdem ein früherer Zustand auf dem Mobilgerät mit minimaler Benutzereingabe aktiviert wurde.
  • Wenn der Benutzer ein zweites Gerät auswählt oder identifiziert (425, Ja), kann das System ermitteln, ob das zweite Gerät dem Benutzer zugeordnet ist, z. B. dem Benutzer, der die Anwendungszustandskennung ausgewählt hat (435). Wenn das zweite Gerät nicht dem Benutzer zugeordnet ist (435, Nein), kann das System alle persönlichen Informationen in der Anwendungszustandskennung entfernen oder anonymisieren (440) und dann die geänderte Anwendungszustandskennung an das zweite Gerät übertragen (445). Wenn das zweite Gerät dem Benutzer zugeordnet ist (435, Ja), fährt das System mit dem Übertragen der Anwendungszustandskennung an das zweite Gerät, wie oben, fort (445). Das zweite Gerät kann die Anwendungszustandskennung interpretieren und den Zustand wie oben beschrieben aktivieren. Wie oben angegeben, kann das zweite Gerät ein Benutzerkonto sein, das dem Server zugeordnet ist, oder es kann ein zweites Mobilgerät sein. Prozess 400 endet dann, nachdem ein früher erfasster Zustand für ein anderes Gerät freigegeben wurde.
  • In einigen Implementierungen kann der Benutzer einen Aufgabenablauf mithilfe früher erfasster Anwendungszustände erzeugen. Der Benutzer kann zum Beispiel zwei oder mehr gespeicherte Anwendungszustände auswählen und sie als Aufgabenablauf auswählen. Der Benutzer kann eine Beschreibung für den Aufgabenablauf bereitstellen. Der Benutzer kann später den gespeicherten Aufgabenablauf erneut aufrufen, der zwei oder mehr Anwendungszustandskennungen beinhaltet. Das System kann den Zustand aktivieren, der durch die erste Anwendungszustandskennung im ausgewählten Aufgabenablauf dargestellt wird. In einigen Implementierungen kann der Benutzer eine zusätzliche Eingabe bereitstellen, nachdem der Zustand, der durch die erste Anwendungszustandskennung dargestellt wird, aktiviert wurde. Der Benutzer kann dann dem Gerät einen Befehl oder eine Angabe bereitstellen, den Zustand zu aktivieren, der durch die zweite Anwendungszustandskennung dargestellt wird. Wenn der Benutzer zum Beispiel häufig Eintrittskarten für einen Film kauft und anschließend eine Reservierung in einem Restaurant vornimmt, kann der Benutzer einen Zustand, der Filme, die in einem bestimmten Kino gezeigt werden, darstellt, mit einem Zustand, der Reservierungen in einem bestimmten Restaurant darstellt, in einem Aufgabenablauf kombinieren. Wenn der Benutzer den Aufgabenablauf aktiviert, öffnet das Gerät die Filmeintrittskarten-Anwendung und der Benutzer muss nur noch den Film auswählen, für den er Eintrittskarten kaufen möchte. Nach Abschluss dieser Aufgabe aktiviert der Benutzer den zweiten Zustand und gibt die Daten für die Reservierung an. Der Aufgabenablauf erledigt somit beide Aufgaben und minimiert gleichzeitig Benutzereingabeaktionen (z. B. muss der Benutzer nicht zur Anwendung navigieren, ein Kino auswählen, ein Datum auswählen usw. und dann zur Restaurant-Anwendung navigieren, zum Restaurant navigieren usw.). Durch Gruppierung gespeicherter Anwendungszustandskennungen in einen Aufgabenablauf kann der Benutzer komplexe Aufgaben erstellen und sie mit minimaler Eingabe erledigen. Der Benutzer kann den Aufgabenablauf für andere oder für ein Benutzerkonto auf einem Server ähnlich der Freigabe einer einzelnen Anwendungszustandskennung freigeben.
  • 5 veranschaulicht eine Beispielbenutzeroberfläche 500 für die Auswahl gespeicherter Anwendungszustände in Übereinstimmung mit offenbarten Implementierungen. Ein Freigabesystem für den Anwendungszustand, z. B. System 100 von 1, kann auf einen Anwendungszustand-Datenspeicher, z. B. Anwendungszustände 172 oder Index 176, in Reaktion auf eine Abfrage, die Benutzeroberfläche 500 zu erstellen, zugreifen. Die Benutzeroberfläche 500 kann Steuerelemente 505 für die Auswahl eines Mobilgeräts beinhalten, auf dem die ausgewählte Anwendungszustandskennung aktiviert wird. Die Steuerelemente 505 können es zum Beispiel einem Benutzer eines Mobilgeräts ermöglichen, das Mobilgerät als Empfänger- oder Zielgerät auszuwählen. Somit kann die Auswahl eines gespeicherten Anwendungszustands dazu führen, dass das Mobilgerät zu dem Zustand zurückkehrt, der durch die ausgewählte Anwendungszustandskennung dargestellt wird. Der Benutzer kann außerdem nach anderen Mobilgeräten suchen, zum Beispiel über Steuerelement 510. Das Steuerelement 510 kann Kontakte suchen, eine Gerätekennung (z. B. eine Telefonnummer oder eine andere Gerätekennung) akzeptieren, es kann nach Mobilgeräten in der Nähe suchen, es kann eine Benutzerkontokennung akzeptieren usw. Wenn ein zweites Mobilgerät ausgewählt wird, kann die Auswahl einer Anwendungszustandskennung zur Übertragung der Anwendungszustandskennung an das zweite Mobilgerät führen. Das zweite Mobilgerät kann nach Empfang der übertragenen Anwendungszustandskennung in den Zustand wechseln, der durch die empfangene Anwendungszustandskennung dargestellt wird, z. B. das Öffnen einer mobilen Anwendung, die der Zielaufgabe zugeordnet ist, auf einer Benutzeroberfläche, die in der Teilaufgabenkomponente der Anwendungszustandskennung identifiziert wird. In einigen Implementierungen kann ein zweites Mobilgerät eine freigegebene Anwendungszustandskennung herunterladen, wenn sich der Benutzer vom zweiten Mobilgerät aus am Server anmeldet.
  • Benutzeroberfläche 500 kann außerdem ein Steuerelement 515 für das Durchsuchen des Anwendungszustand-Datenspeichers beinhalten. Im Beispiel von 5 ist der Anwendungzustand-Datenspeicher ein Index, der Schlüsselelemente mit einer Anwendungszustandskennung und einem Bildschirmaufnahmebild verbindet, das bei Erzeugung der Anwendungszustandskennung aufgenommen wurde. Die Schlüsselelemente können Text, Logos, Orte oder Entitäten sein, die im Bildschirmaufnahmebild identifiziert wurden. In anderen Implementierungen kann der Benutzer eine Angabe des Zustands angegeben haben, der indiziert werden kann. Außerdem kann das Steuerelement 515 nach Anwendungszustandskennungen suchen, die an einem bestimmten Tag oder während eines bestimmten Datumsbereichs erzeugt wurden. In einigen Implementierungen können Schlüsselelement aus der Anwendungszustandskennung selbst genommen werden, z. B. können die Zielaufgabe und der Text, der von einem Benutzer eingegeben wurde, Schlüsselelemente sein.
  • Die Benutzeroberfläche 500 kann außerdem einen Suchergebnisbereich 520 beinhalten. Die Benutzeroberfläche 500 kann Suchergebnisse im Suchergebnisbereich 520 anzeigen. In einigen Implementierungen können die Suchergebnisse Teile von Bildschirmaufnahmebildern sein, die entsprechenden Schlüsselelementen zugeordnet sind. Der Teil kann das gesamte Bild oder einen kleineren Teil des Bildes beinhalten, der das Schlüsselelement umgibt. Der Suchergebnisbereich 520 ist als Karussell von Bildern veranschaulicht, es ist aber selbstverständlich, dass der Suchergebnisbereich 520 eine gekachelte Liste, eine Aufzählungsliste beinhalten und keine Bilder beinhalten kann. Die Suchergebnisse können zum Beispiel die Anwendungszustandskennung mit einem Datums-/Zeitstempel oder einer Beschreibung auflisten. Die Auswahl eines der Suchergebnisse kann als Auswahl der Anwendungszustandskennung betrachtet werden, die dem Suchergebnis zugeordnet ist. Im Beispiel von Benutzeroberfläche 500 kann die Auswahl des Suchergebnisses durch eine Berührung des Bildes in der Mitte des Suchergebnisbereichs 520 erreicht werden. Eine solche Auswahl wird als Auswahl der Anwendungszustandskennung betrachtet, die dem Bild im Anwendungszustand-Datenspeicher zugeordnet ist. Ein Benutzer kann die Benutzeroberfläche 500 verwenden, um einen früher gespeicherten Anwendungszustand auszuwählen, um den gespeicherten Zustand auf dem Mobilgerät erneut zu aktivieren, um den gespeicherten Zustand zu einem anderen Gerät zu transferieren, das dem Benutzer zugeordnet ist, oder um den gespeicherten Zustand für ein anderes Mobilgerät freizugeben.
  • 6 zeigt ein Beispiel eines generischen Computergeräts 600, das als System 100 und/oder Client 170 von 1 betrieben werden kann und das mit den hierin beschriebenen Techniken verwendet werden kann. Computergerät 600 soll verschiedene Formen von Computergeräten, wie Laptops, Desktops, Workstations, Personal Digital Assistants, Mobiltelefone, Smartphones, Tablets, Server und andere Computergeräte einschließlich tragbarer Geräte, darstellen. Die hier gezeigten Komponenten, ihre Verbindungen und Beziehungen und ihre Funktionen sollen nur Beispiele sein und sollen Implementierungen der in diesem Dokument beschriebenen und/oder beanspruchten Erfindungen nicht einschränken.
  • Computergerät 600 beinhaltet einen Prozessor 602, Speicher 604, ein Speichergerät 606 und Erweiterungsanschlüsse 610, die über eine Schnittstelle 608 verbunden sind. In einigen Implementierungen kann Computergerät 600 Sender-Empfänger 646, Kommunikationsschnittstelle 644 und ein GPS(Global Positioning System)-Empfängermodul 648 neben anderen Komponentenbeinhalten, die über Schnittstelle 608 verbunden sind. Gerät 600 kann über Kommunikationsschnittstelle 644, die bei Bedarf eine digitale Signalverarbeitungsschaltung beinhalten kann, drahtlos kommunizieren. Jede der Komponenten 602, 604, 606, 608, 610, 640, 644, 646, und 648 kann auf einer gängigen Hauptplatine oder gegebenenfalls in anderer Weise angebracht sein.
  • Der Prozessor 602 kann Anweisungen zur Ausführung innerhalb des Computergeräts 600 verarbeiten, die Anweisungen beinhalten, die in dem Speicher 604 oder auf dem Speichergerät 606 gespeichert sind, um grafische Informationen für ein GUI auf einer externen Eingabe-/Ausgabevorrichtung, wie Anzeige 616 anzuzeigen. Anzeige 616 kann ein Monitor oder ein flaches Touchscreen-Display sein. In einigen Implementierungen können mehrere Prozessoren und/oder mehrere Busse, wie angemessen, zusammen mit mehreren Speichern und Speichertypen verwendet werden. Außerdem können mehrere Computergeräte 600 verbunden sein, wobei jedes Gerät Teile der nötigen Operationen bereitstellt (z. B. als Serverbank, eine Gruppe von Blade Servern oder ein Multiprozessor-System).
  • Der Speicher 604 speichert Informationen in Computergerät 600. In einer Implementierung ist der Speicher 604 ein flüchtiges Speichergerät oder flüchtige Speichergeräte. In einer anderen Implementierung ist der Speicher 604 ein nicht flüchtiges Speichergerät oder nicht flüchtige Speichergeräte. Der Speicher 604 kann auch eine andere Form von computerlesbarem Medium sein, zum Beispiel ein magnetischer oder optischer Datenträger. In einigen Implementierungen kann der Speicher 604 Erweiterungsspeicher beinhalten der über eine Erweiterungsschnittstelle bereitgestellt wird.
  • Das Speichergerät 606 kann Massenspeicher für das Computergerät 600 bereitstellen. In einer Implementierung kann das Speichergerät 606 ein computerlesbares Medium sein oder beinhalten, wie ein Diskettenlaufwerk, ein Festplattenlaufwerk, ein optisches Datenträgergerät, ein Magnetbandlaufwerk, ein Flash-Speicher oder anderes ähnliches Solid-State-Speichergerät oder eine Reihe anderer Geräte, einschließlich Geräte in einem Speichernetzwerk oder anderen Konfigurationen. Ein Computerprogrammprodukt kann konkret in einem solchen computerlesbaren Speicher verkörpert sein. Das Computerprogrammprodukt kann auch Anweisungen beinhalten, die, wenn sie ausgeführt werden, ein oder mehrere Verfahren wie die oben beschriebenen durchführen. Das computer- oder maschinenlesbare Medium ist ein Speichergerät, wie zum Beispiel Speicher 604, das Speichergerät 606 oder Speicher auf Prozessor 602.
  • Die Schnittstelle 608 kann ein High-Speed-Controller sein, der bandbreitenintensive Operationen für das Computergerät 600 verwaltet, oder ein Low-Speed-Controller, der weniger bandbreitenintensive Operationen verwaltet, oder eine Kombination solcher Controller. Eine externe Schnittstelle 640 kann bereitgestellt sein, um Nahbereichskommunikation von Gerät 600 mit anderen Geräten zu ermöglichen. In einigen Implementationen kann Controller 608 mit dem Speichergerät 606 und dem Erweiterungsanschluss 614 gekoppelt sein. Der Erweiterungsanschluss, der verschiedene Kommunikationsanschlüsse (z. B. USB, B, Ethernet, Funkethernet) beinhalten kann, kann an ein oder mehrere Ein-/Ausgabevorrichtungen, wie eine Tastatur, ein Zeigegerät, einen Scanner, oder ein Netzwerkgerät, wie einen Switch oder Router, z. B. durch einen Netzwerkadapter gekoppelt sein.
  • Das Computergerät 600 kann in einer Reihe verschiedener Formen implementiert sein, wie in der Figur dargestellt. So kann es beispielsweise als ein Standardserver 630 oder mehrfach in einer Gruppe solcher Server implementiert sein. Es kann außerdem als Teil eines Rack-Serversystems implementiert sein. Außerdem kann es in einem Computergerät, wie zum Beispiel einem Laptop-Computer 632, einem PC 634, einem Tablet/Smartphone 636, implementiert sein. Ein gesamtes System kann aus mehreren Computersystemen 600 bestehen, die miteinander kommunizieren. Andere Konfigurationen sind möglich.
  • 7 zeigt ein Beispiel eines generischen Computergeräts 700, das System 100 von 1 sein, das mit den hierin beschriebenen Techniken verwendet werden kann. Computergerät 700 soll verschiedene Beispielformen umfangreicher Datenverarbeitungsgeräte darstellen, z. B. Server, Blade-Server, Rechenzentren, Mainframes und andere umfangreiche Computergerät. Computergerät 700 kann ein verteiltes System mit mehreren Prozessoren sein, und möglicherweise netzwerkgebundene Speicherknoten beinhalten, die durch eines oder mehrere Kommunikationsnetzwerke miteinander verbunden sind. Die hier gezeigten Komponenten, ihre Verbindungen und Beziehungen und ihre Funktionen sollen nur Beispiele sein und sollen Implementierungen der in diesem Dokument beschriebenen und/oder beanspruchten Erfindungen nicht einschränken.
  • Das verteilte Computersystem 700 kann eine beliebige Anzahl an Computergeräten 780 beinhalten. Computergeräte 780 können einen Server oder Rack-Server, Mainframes usw. beinhalten, die über ein Local oder Wide Area Network kommunizieren, dedizierte optische Verbindungen Modems, Bridges, Router, Switches, drahtgebundene oder drahtlose Netzwerke usw.
  • In einigen Implementierungen kann jedes Computergerät mehrere Racks beinhalten. Computergerät 780a beinhaltet zum Beispiel mehrere Racks 758a758n. Jedes Rack kann einen oder mehrere Prozessoren beinhalten, z. B. Prozessoren 752a752n und 762a762n. Die Prozessoren können Datenprozessoren, netzwerkgebundene Speichergeräte und andere computergesteuerte Geräte beinhalten. In einigen Implementierungen kann ein Prozessor als Hauptprozessor betrieben werden und die Terminierungs- und Datenverteilungsaufgaben steuern. Prozessoren können über einen oder mehrere Rack-Switches 758 miteinander verbunden sein und eines oder mehrere Racks können über Switch 778 verbunden sein. Switch 778 kann die Kommunikation zwischen mehreren verbundenen Computergeräten 700 behandeln.
  • Jedes Rack kann Speicher beinhalten, z. B. Datenspeicher 754 und Datenspeicher 764 sowie Speicher wie 756 und 766. Speicher 756 und 766 können Massenspeicher bereitstellen und sie können flüchtigen und nicht flüchtigen Speicher beinhalten, z. B. netzwerkgebundene Datenträger, Disketten, Festplatten, optische Datenträger, Bänder, Flash-Speicher oder andere ähnliche Solid-State-Speichergeräte oder eine Anordnung von Geräten, z. B. Geräte in einem Storage Area Network oder anderen Konfigurationen. Speicher 756 oder 766 können zwischen mehreren Prozessoren, mehreren Racks oder mehreren Computergeräten freigegeben werden und kann ein computerlesbares Medium beinhalten, das Anweisungen speichert, die von einem oder mehreren der Prozessoren ausgeführt werden können. Datenspeicher 754 und 764 können zum Beispiel flüchtige Speichereinheit(en), nicht flüchtige Speichereinheit(en) und/oder andere Formen computerlesbarer Medien beinhalten, z. B. magnetische oder optische Datenträger, Flash-Speicher, Cache, Direktzugriffspeicher (Random Access Memory, RAM), schreibgeschützten Speicher (Read Only Memory, ROM) und Kombinationen davon. Datenspeicher, zum Beispiel Speicher 754, kann ebenfalls zwischen Prozessoren 752a752n freigegeben werden. Datenstrukturen, z. B. ein Index, können zum Beispiel über Speicher 756 und Datenspeicher 754 gespeichert werden. Computergerät 700 kann andere, nicht dargestellte Komponenten beinhalten, z. B. Controller, Busse, Eingabe-/Ausgabegeräte, Kommunikationsmodule usw.
  • Ein gesamtes System, z. B. System 100, kann aus mehreren Computersystemen 700 bestehen, die miteinander kommunizieren. Gerät 780a kann zum Beispiel mit Geräten 780b, 780c und 780d kommunizieren, und diese können zusammen als System 100 bekannt sein. Als ein weiteres Beispiel kann System 100 von 1 eines oder mehrere Computergeräte 700 beinhalten. Einige der Computergeräte können sich in geografischer Nähe zueinander befinden und andere können sich geografisch entfernt befinden. Die Anordnung von System 700 ist nur ein Beispiel und das System kann andere Anordnungen oder Konfigurationen annehmen.
  • Gemäß bestimmten Aspekten der Offenbamng beinhaltet ein Mobilgerät einen Anwendungszustand-Datenspeicher, mindestens einen Prozessor, eine ausführende mobile Anwendung und einen Speicher, der Anweisungen speichert, die, wenn sie von dem mindestens einen Prozessor ausgeführt werden, das Mobilgerät veranlassen, Operationen durchzuführen. Die Operationen können das Erzeugen einer Anwendungszustandskennung beinhalten, die einen Zustand des Mobilgeräts darstellt, wobei die Anwendungszustandskennung eine Zielaufgabenkomponente beinhaltet, die der mobilen Anwendung zugeordnet ist, und eine Teilaufgabenkomponente, die einer Benutzeroberfläche zugeordnet ist, die zum Zeitpunkt, zu dem die Anwendungszustandskennung erzeugt wird, in der mobilen Anwendung aktiv ist. Die Operationen können außerdem das Speichern der Anwendungszustandskennung im Anwendungszustand-Datenspeicher, das Empfangen einer Angabe vom Benutzer, der die Anwendungszustandskennung nach Beenden der mobilen Anwendung auswählt, und das Aktivieren des Zustands, der durch die Anwendungszustandskennung dargestellt wird, einschließlich das Öffnen der mobilen Anwendung auf der Benutzeroberfläche beinhalten.
  • Diese und andere Aspekte können eines oder mehrere der folgenden Merkmale beinhalten. Die Anwendungszustandskennung kann zum Beispiel des Weiteren eine Benutzereingabekomponente beinhalten, die Aktionen darstellt, die vom Benutzer durchgeführt werden, um zu dem Zustand zu gelangen, der durch die Anwendungszustandskennung und/oder eine Gerätezustandskomponente dargestellt wird. Als weiteres Beispiel können die Operationen außerdem die Aufnahme eines Bildes der Anzeige des Mobilgeräts zum Zeitpunkt der Erzeugung der Anwendungszustandskennung und das Verbinden des Bildes mit der Anwendungszustandskennung im Datenspeicher beinhalten. Als weiteres Beispiel können die Operationen auch das Empfangen einer Auswahl eines zweiten Mobilgeräts vom Benutzer und die Übertragung der Anwendungszustandskennung an das zweite Mobilgerät beinhalten, wobei das zweite Mobilgerät in Reaktion auf das Empfangen der Anwendungszustandskennung eine mobile Anwendung öffnet, die der Zielaufgabe für eine Benutzeroberfläche zugeordnet ist, die der Teilaufgabenkomponente entspricht. In einigen Implementierungen kann die Anwendungszustandskennung eine Benutzereingabekomponente beinhalten und die Operationen können außerdem die Ermittlung beinhalten, ob das zweite Mobilgerät dem Benutzer zugeordnet ist, und die Entfernung mindestens eines Teils der Benutzereingabekomponente in Reaktion auf die Ermittlung, dass das zweite Mobilgerät nicht dem Benutzer zugeordnet ist.
  • Als weiteres Beispiel können die Operationen die Aufnahme eines Bildes der Anzeige des Mobilgeräts zum Zeitpunkt der Erzeugung der Anwendungszustandskennung, das Durchführen der Erkennung auf dem Bild, um ein Schlüsselelement im Bild zu identifizieren, und das Verbinden des Bildes mit der Anwendungszustandskennung im Datenspeicher beinhalten. In einer solchen Implementierung kann das Empfangen der Angabe vom Benutzer das Empfangen einer Abfrage beinhalten, die den Schlüsselbegriff beinhaltet, das Darstellen mindestens eines Teils des Bildes für den Benutzer in Reaktion auf die Abfrage und das Empfangen einer Auswahl des Teils des Bildes. In einem anderen Beispiel beinhaltet die Erzeugung das Erfassen von Umgebungsvariablen der mobilen Anwendung und das Aktivieren des Zustands kann die Einrichtung von Umgebungsvariablen mithilfe von Informationen in der Teilaufgabenkomponente beinhalten.
  • Gemäß bestimmten Aspekten der Offenbamng beinhaltet ein Verfahren das Erzeugen einer Anwendungszustandskennung auf einem ersten Mobilgerät. Die Anwendungszustandskennung kann eine Zielaufgabenkomponente beinhalten, die einer mobilen Anwendung zugeordnet ist, die auf dem Mobilgerät zu dem Zeitpunkt der Erzeugung ausgeführt wird, und eine Teilaufgabenkomponente, die einer Benutzeroberflächenkomponente zugeordnet ist, die in der mobilen Anwendung zum Zeitpunkt der Erzeugung aktiv ist. Das Verfahren kann außerdem die Übertragung der Anwendungszustandskennung an ein zweites Mobilgerät beinhalten, wobei das zweite Mobilgerät in Reaktion auf das Empfangen der Anwendungszustandskennung eine mobile Anwendung öffnet, die der Zielaufgabe für eine Benutzeroberfläche zugeordnet ist, die der Teilaufgabenkomponente entspricht.
  • Diese und andere Aspekte können eines oder mehrere der folgenden Merkmale beinhalten. Die Anwendungszustandskennung kann zum Beispiel des Weiteren eine Benutzereingabekomponente beinhalten, die Aktionen darstellt, die vom Benutzer durchgeführt werden, um zu dem Zustand zu gelangen, der durch die Anwendungszustandskennung dargestellt wird. In einer solchen Implementierung können die Teilaufgabenkomponente und die Benutzereingabekomponente generische Daten beinhalten, die vor spezifischen Daten positioniert sind, und/oder das Verfahren kann außerdem die Ermittlung beinhalten, dass das zweite Mobilgerät nicht dem Benutzer zugeordnet ist, und die Entfernung mindestens eines Teils der Benutzereingabekomponenten vor Übertragung der Anwendungszustandskennung in Reaktion auf die Ermittlung. Als ein weiteres Beispiel kann das Verfahren außerdem das Erfassen eines Bildes eines Bildschirms beinhalten, der angezeigt wird, wenn die Anwendungszustandskennung erzeugt wird, das Speichern des Bildes mit der Anwendungszustandskennung in einem Datenspeicher und das Empfangen einer Auswahl mindestens eines Teils des Bildes vor Übertragung der Anwendungszustandskennung. Als weiteres Beispiel kann das Verfahren außerdem das Aufnehmen eines Bildes eines Bildschirms beinhalten, der angezeigt wird, wenn die Anwendungszustandskennung erzeugt wird, das Durchführen der Erkennung bei dem Bild, um ein Schlüsselelement im Bild zu identifizieren, das Verbinden des Bildes und der Anwendungskennung mit dem Schlüsselelement in einem Index, das Bereitstellen der Anwendungszustandskennung und mindestens eines Teil des Bildes in Reaktion auf eine Abfrage, die das Schlüsselelement enthält, und das Empfangen einer Auswahl der Anwendungszustandskennung vor Übertragung der Anwendungszustandskennung.
  • Als weiteres Beispiel kann das Verfahren das Erzeugen der Anwendungszustandskennung in Reaktion auf einen Befehl zur Freigabe des Zustands des Mobilgeräts beinhalten. In einem weiteren Beispiel kann das Verfahren das Empfangen eines Befehls zur Freigabe des Zustands des Mobilgeräts und das Auswählen der Anwendungszustandskennung als neueste Anwendungszustandskennung in einem Anwendungszustand-Datenspeicher beinhalten. Als ein weiteres Beispiel kann sich die mobile Anwendung auf dem ersten Mobilgerät von der mobilen Anwendung auf dem zweiten Mobilgerät unterscheiden.
  • Gemäß bestimmten Aspekten der Offenbamng beinhaltet ein Mobilgerät einen Index, der ein Schlüsselelement mit Bildschirmaufnahmebildern verbindet, von denen über Erkennung ermittelt wurde, dass sie das Schlüsselelement beinhalten, wobei jedes Bildschirmaufnahmebild eine zugehörige Anwendungszustandskennung hat. Die Anwendungszustandskennung beinhaltet eine Zielaufgabenkomponente, die einer mobilen Anwendung zugeordnet ist, die auf dem Mobilgerät zu dem Zeitpunkt ausgeführt wird, zu dem das Bild aufgenommen wird, und eine Teilaufgabenkomponente, die einer Benutzeroberfläche zugeordnet ist, die in der mobilen Anwendung zum Zeitpunkt der Bildaufnahme aktiv ist. Das Mobilgerät beinhaltet außerdem mindestens einen Prozessor, eine ausführende mobile Anwendung und einen Speicher, der Anweisungen speichert, die, wenn sie von dem mindestens einen Prozessor ausgeführt werden, eine Benutzeroberfläche erzeugen. Die Benutzeroberfläche kann so konfiguriert sein, dass sie ein Suchergebnis aus dem Index für Schlüsselelemente bereitstellt, das einer Abfrage entspricht, und eine Auswahl von Informationen empfängt, die der Anwendungszustandskennung zugeordnet sind. Die Auswahl veranlasst das Mobilgerät, zu einem Zustand zu wechseln, der durch die Anwendungzustandskennung dargestellt wird, einschließlich Öffnen der mobilen Anwendung, die der Zielaufgabe zugeordnet ist, auf der Benutzeroberfläche.
  • Diese und andere Aspekte können eines oder mehrere der folgenden Merkmale beinhalten. Die Benutzeroberfläche kann zum Beispiel des Weiteren so konfiguriert sein, dass sie eine Auswahl des Mobilgeräts oder des zweiten Mobilgeräts empfängt, wobei die Auswahl das Mobilgerät zum Wechsel veranlasst, wenn das Mobilgerät ausgewählt wird, und wobei die Auswahl das Mobilgerät veranlasst, die Anwendungszustandskennung an das zweite Mobilgerät zu übertragen, wenn das zweite Mobilgerät ausgewählt wird. Als weiteres Beispiel kann die Benutzeroberfläche des Weiteren so konfiguriert sein, dass ein Teil einer Benutzeroberflächenkomponente der Anwendungszustandskennung entfernt wird, wenn das zweite Mobilgerät nicht dem Benutzer zugeordnet ist.
  • Gemäß bestimmten Aspekten der Offenbamng beinhaltet ein Verfahren das Speichern einer Auswahl einer ersten gespeicherten Anwendungszustandskennung und eine Auswahl einer zweiten gespeicherten Anwendungszustandskennung als ein Aufgabenablauf in einem Speicher auf einem Mobilgerät und das Aktivieren des Aufgabenablaufs in Reaktion auf einen ersten Befehl von einem Benutzer des Mobilgeräts. Das Aktivieren des Aufgabenablaufs kann das Öffnen einer ersten mobilen Anwendung, die der Zielaufgabe in der ersten gespeicherten Anwendungszustandskennung zugeordnet ist, auf einer Benutzeroberfläche, die einer Teilaufgabenkomponente der ersten gespeicherten Anwendungszustandskennung entspricht, und das Öffnen, in Reaktion auf das Empfangen eines zweiten Befehls vom Benutzer, einer zweiten mobilen Anwendung, die einer Zielaufgabe in der zweiten gespeicherten Anwendungszustandskennung zugeordnet ist, auf einer Benutzeroberfläche, die einer Teilaufgabenkomponente der zweiten gespeicherten Anwendungszustandskennung entspricht, beinhalten.
  • Gemäß bestimmten Aspekten der Offenbamng beinhaltet eine mobile Anwendung eine Protokollkennung, eine Zielaufgabenkomponente, die einer mobilen Anwendung zugeordnet ist, die ausgeführt wird, wenn die Anwendungszustandskennung erzeugt wird, und eine Teilaufgabenkomponente, die einer Benutzeroberfläche zugeordnet ist, die in der mobilen Anwendung aktiv ist, wenn die Anwendungszustandskennung erzeugt wird. Die Anwendungszustandskennung kann außerdem eine Benutzereingabekomponente beinhalten, die Aktionen widerspiegelt, die von einem Benutzer während der Ausführung der mobilen Anwendung durchgeführt werden. Die Anwendungszustandskennung kann außerdem eine Gerätezustandskomponente beinhalten. Datenelemente in jeder Komponente können von generisch zu spezifisch geordnet sein.
  • Verschiedene Implementierungen können eine Implementierung in einem oder mehreren Computerprogrammen beinhalten, die auf einem programmierbaren System ausführbar und/oder interpretierbar sind, das mindestens einen programmierbaren Prozessor beinhaltet, der ein spezieller Prozessor oder ein Prozessor für allgemeine Zwecke sein kann, und der zum Empfangen von Daten und Anweisungen von und zum Übertragen von Daten und Anweisungen an ein Speichersystem, mindestens eine Eingabevorrichtung und mindestens eine Ausgabevorrichtung gekoppelt ist.
  • Diese Computerprogramme (auch bekannt als Programme, Software, Anwendungen oder Code) enthalten Maschinenanweisungen für einen programmierbaren Prozessor und können in eine hochrangige verfahren- und/oder objektorientierte Programmiersprache und/oder in eine Montage-/Maschinenprache umgesetzt werden. Wie hier verwendet, bezeichnen die Begriffe „maschinenlesbares Medium”, „computerlesbares Medium” ein beliebiges nicht flüchtiges Computerprogrammprodukt, eine beliebige Vorrichtung und/oder ein beliebiges Gerät (z. B. Magnetplatten, optische Platten, Speicher (einschließlich Direktzugriffsspeicher), programmierbare Logikbausteine (PLDs)), die verwendet werden, um einem programmierbaren Prozessor Maschinenanweisungen und/oder Daten bereitzustellen.
  • Die hier beschriebenen Systeme und Techniken können in einem Computersystem implementiert werden, das eine Back-End-Komponente beinhaltet (z. B. als Datenerver) oder das eine Middleware-Komponente (z. B. einen Anwendungsserver) beinhaltet oder das eine Front-End-Komponente (z. B. einen Client-Computer, der eine grafische Benutzeroberfläche oder einen Webbrowser aufweist, durch die ein Benutzer mit einer Implementierung der hier beschriebenen Systeme und Techniken interagieren kann) oder eine beliebige Kombination solcher Back-End, Middleware- oder Front-End-Komponenten beinhaltet. Die Komponenten des Systems können durch eine beliebige Form oder ein beliebiges Medium von digitaler Datenkommunikation (z. B. ein Kommunikationsnetzwerk) miteinander verbunden sein. Beispiele von Kommunikationsnetzwerken beinhalten ein lokales Netzwerk („LAN”), ein Fernnetz („WAN”) und das Internet.
  • Das Rechensystem kann Client und Server beinhalten. Ein Client und Server befinden sich im Allgemeinen ortsfern voneinander und interagieren typischerweise über ein Kommunikationsnetz. Die Beziehung zwischen Client und Server entsteht aufgrund von Computerprogrammen, die auf den jeweiligen Computer laufen und die eine Client-Server-Beziehung zueinander haben.
  • Es wurde eine Reihe von Implementierungen beschrieben. Trotzdem können unterschiedliche Modifizierungen durchgeführt werden, ohne vom Geist und Umfang der Erfindung abzuweichen. Darüber hinaus erfordern die logischen Abläufe in den Abbildungen nicht unbedingt die abgebildete Reihenfolge oder die sequenzielle Reihenfolge, um die gewünschten Ergebnisse zu erzielen. Darüber hinaus können andere Schritte bereitgestellt oder Schritte aus den beschriebenen Abläufen eliminiert werden und andere Komponenten können zu den beschriebenen Systemen hinzugefügt werden oder aus diesen entfernt werden. Dementsprechend liegen andere Implementierungen im Geltungsbereich der folgenden Ansprüche.

Claims (20)

  1. Ein Mobilgerät, umfassend: einen Anwendungszustand-Datenspeicher; mindestens einen Prozessor; eine ausführende mobile Anwendung; und einen Speicher, der Anweisungen speichert, die, wenn sie durch den mindestens einen Prozessor ausgeführt werden, das Mobilgerät zu Folgendem veranlassen: Erzeugen einer Anwendungszustandskennung, die einen Zustand des Mobilgeräts darstellt, die Anwendungszustandskennung beinhaltend: ein Präfix, das die Anwendungszustandskennung als Anwendungszustand-Transferprotokoll identifiziert, eine Zielaufgabenkomponente, die einen Typ der ausführenden mobilen Anwendung identifiziert und eine Teilaufgabenkomponente, die einer Benutzeroberfläche zugeordnet ist, die in der ausführenden mobilen Anwendung zu dem Zeitpunkt aktiv ist, zu dem die Anwendungszustandskennung erzeugt wird, wobei die aufgabenspezifischen Datenelemente vor anwendungsspezifischen Datenelementen in der Teilaufgabenkomponente erscheinen, das Speichern der Anwendungszustandskennung im Anwendungszustand-Datenspeicher, Empfangen einer Angabe vom Benutzer, der die Anwendungszustandskennung nach Beenden der mobilen Anwendung auswählt, und das Aktivieren, in Reaktion auf die Erkennung des Präfix, des Zustands, der durch die Anwendungszustandskennung dargestellt wird, einschließlich Öffnen der mobilen Anwendung auf der Benutzeroberfläche.
  2. Mobilgerät nach Anspruch 1, wobei die Anwendungszustandskomponente des Weiteren Folgendes beinhaltet: eine Benutzereingabekomponente, die der Teilaufgabenkomponente folgt, wobei die Benutzereingabekomponente Aktionen darstellt, die vom Benutzer durchgeführt werden, um zu einem Zustand zu gelangen, der durch die Anwendungszustandskennung dargestellt wird.
  3. Mobilgerät nach irgendeinem der Ansprüche 1 oder 2, wobei die Anwendungszustandskomponente des Weiteren eine Gerätezustandskomponente beinhaltet.
  4. Mobilgerät nach irgendeinem der Ansprüche 1 bis 3, wobei der Speicher des Weiteren Anweisungen speichert, die, wenn sie von dem mindestens einen Prozessor ausgeführt werden, das Mobilgerät zu Folgendem veranlassen: Aufnehmen eines Bildes einer Anzeige des Mobilgeräts zum Zeitpunkt der Erzeugung der Anwendungszustandskennung; und Zuordnen des Bildes zur Anwendungszustandskenung im Datenspeicher.
  5. Mobilgerät nach irgendeinem der Ansprüche 1 bis 4, wobei der Speicher des Weiteren Anweisungen speichert, die, wenn sie von dem mindestens einen Prozessor ausgeführt werden, das Mobilgerät zu Folgendem veranlassen: Empfangen einer Auswahl eines zweiten Mobilgeräts vom Benutzer; und Übertragen der Anwendungszustandskennung an das zweites Mobilgerät, wobei das zweite Mobilgerät in Reaktion auf das Empfangen der Anwendungszustandskennung eine mobile Anwendung des Typs öffnet, der durch die Zielaufgabe auf einer Benutzeroberfläche identifiziert wurde, die der Teilaufgabenkomponente entspricht.
  6. Mobilgerät nach Anspruch 5, wobei die Anwendungszustandskomponente des Weiteren eine Benutzereingabekomponente beinhaltet und der Speicher des Weiteren Anweisungen speichert, die, wenn sie von dem mindestens einen Prozessor ausgeführt werden, das Mobilgerät zu Folgendem veranlassen: Ermitteln, ob das zweite Mobilgerät dem Benutzer zugeordnet ist; und Entfernen mindestens eines Teils der Benutzereingabekomponente in Reaktion auf die Ermittlung, dass das zweite Mobilgerät nicht dem Benutzer zugeordnet ist.
  7. Mobilgerät nach irgendeinem der Ansprüche 1 bis 6, wobei der Speicher des Weiteren Anweisungen speichert, die, wenn sie von dem mindestens einen Prozessor ausgeführt werden, das Mobilgerät zu Folgendem veranlassen: Aufnehmen eines Bildes einer Anzeige des Mobilgeräts zum Zeitpunkt der Erzeugung der Anwendungszustandskennung; Durchführen der Erkennung am Bild, um ein Schlüsselelement im Bild zu identifizieren; und Zuordnen des Schlüsselelements zum Bild und zur Anwendungszustandskennung im Datenspeicher.
  8. Mobilgerät nach Anspruch 7, wobei das Empfangen der Angabe vom Benutzer Folgendes beinhaltet: das Empfangen einer Abfrage, die das Schlüsselelement beinhaltet; das Darstellen mindestens eines Teils des Bildes für den Benutzer in Reaktion auf die Abfrage; und das Empfangen einer Auswahl des Teils des Bildes.
  9. Mobilgerät nach irgendeinem der Ansprüche 1 bis 8, wobei das Erzeugen der Teilaufgabenkomponente Folgendes beinhaltet: das Erfassen von Umgebungsvariablen der mobilen Anwendung; das Ermitteln eines Teils der Umgebungsvariablen, die nicht auf der Benutzereingabe basieren; das Ermitteln von Umgebungsvariablen, die aufgabenspezifisch sind, aus dem Teil; und das Einbeziehen des Teils der Umgebungsvariablen, die nicht auf einer Benutzereingabe in der Teilaufgabenkomponente basieren, wobei die aufgabenspezifischen Umgebungsvariablen vor einem Rest des Teils der Umgebungsvariablen erscheinen, wobei das Aktivieren des Zustands das Einrichten von Umgebungsvariablen mithilfe von Informationen in der Teilaufgabenkomponente beinhaltet.
  10. Verfahren, umfassend: das Erzeugen einer Zeichenfolge auf einem ersten Mobilgerät, wobei die Zeichenfolge ein Präfix beinhaltet, das die restlichen Zeichen der Zeichenfolge als Anwendungszustand-Transferprotokoll mithilfe einer Anwendungskennung identifiziert, wobei die Anwendungszustandskennung Folgendes beinhaltet: eine Zielaufgabenkomponente, die einen Typ mobiler Anwendung identifiziert, die auf dem Mobilgerät zum Zeitpunkt der Erzeugung ausgeführt wird, und eine Teilaufgabenkomponente, die einer Benutzeroberflächenkomponente zugeordnet ist, die in der mobilen Anwendung zu dem Zeitpunkt der Erzeugung aktiv ist, wobei die aufgabenspezifischen Datenelemente vor anwendungsspezifischen Datenelementen in der Teilaufgabenkomponente erscheinen; das Empfangen einer Kennung für ein zweites Mobilgerät; und das Übertragen des Präfix und der Anwendungszustandskennung an das zweites Mobilgerät, wobei das zweite Mobilgerät in Reaktion auf die Erkennung des Präfix eine mobile Anwendung des Typs öffnet, der durch die Zielaufgabe auf einer Benutzeroberfläche identifiziert wurde, die der Teilaufgabenkomponente entspricht.
  11. Verfahren nach Anspruch 10, wobei die Anwendungszustandskomponente des Weiteren Folgendes beinhaltet: eine Benutzereingabekomponente, die Aktionen darstellt, die vom Benutzer durchgeführt werden, um zu dem Zustand zu gelangen, der durch die Anwendungszustandskennung dargestellt wird.
  12. Verfahren nach Anspruch 11, des Weiteren umfassend: das Ermitteln, dass das zweite Mobilgerät nicht dem Benutzer zugeordnet ist; und das Entfernen mindestens eines Teils der Benutzereingabekomponente vor Übertragen der Anwendungszustandskennung in Reaktion auf das Ermitteln.
  13. Verfahren nach irgendeinem der Ansprüche 11 oder 12, wobei die Teilaufgabenkomponente und die Benutzereingabekomponente anwendungsspezifische Datenelemente beinhalten, die vor benutzerspezifischen Datenelementen in der Anwendungszustandskennung positioniert sind.
  14. Verfahren nach irgendeinem der Ansprüche 10 bis 13, des Weiteren umfassend: das Erzeugen der Anwendungszustandskennung in Reaktion auf einen Befehl zur Freigabe des Zustands des Mobilgeräts.
  15. Verfahren nach irgendeinem der Ansprüche 10 bis 14, des Weiteren umfassend: das Empfangen eines Befehls zur Freigabe des Zustands des Mobilgeräts; und das Auswählen der Anwendungszustandskennung als neueste Anwendungszustandskennung in einem Anwendungszustand-Datenspeicher.
  16. Verfahren nach irgendeinem der Ansprüche 10 bis 13, des Weiteren umfassend: das Aufnehmen eines Bildes eines Bildschirms, der angezeigt wird, wenn die Anwendungszustandskennung erzeugt wird; das Speichern des Bildes mit der Anwendungszustandskennung in einem Datenspeicher; und das Empfangen einer Auswahl mindestens eines Teils des Bildes vor Übertragen der Anwendungszustandskennung.
  17. Verfahren nach irgendeinem der Ansprüche 10 bis 13, des Weiteren umfassend: das Aufnehmen eines Bildes eines Bildschirms, der angezeigt wird, wenn die Anwendungszustandskennung erzeugt wird; das Durchführen der Erkennung am Bild, um ein Schlüsselelement im Bild zu identifizieren; das Verbinden des Bildes und der Anwendungskennung mit dem Schlüsselelement in einem Index; das Bereitstellen der Anwendungszustandskennung und mindestens eines Teil des Bildes in Reaktion auf eine Abfrage, die das Schlüsselelement enthält; und das Empfangen einer Auswahl der Anwendungszustandskennung vor Übertragen der Anwendungszustandskennung.
  18. ein Mobilgerät, das Folgendes umfasst: einen Index, der ein Schlüsselelement mit Bildschirmaufnahmebildern verbindet, von denen durch Erkennung ermittelt wurde, dass sie Schlüsselelemente beinhalten, wobei jedes Bildschirmaufnahmebild eine zugehörige Anwendungszustandskennung hat, wobei die Anwendungszustandskennung eine Zeichenfolge ist, die Folgendes beinhaltet: ein Präfix, das die Zeichenfolge als Anwendungszustand-Transferprotokoll identifiziert, eine Zielaufgabenkomponente, die einen Typ mobiler Anwendung identifiziert, die zum Zeitpunkt der Erzeugung ausgeführt wird, und eine Teilaufgabenkomponente in Relation zu einer Benutzeroberfläche, die in der mobilen Anwendung zu dem Zeitpunkt aktiv ist, zu dem das Bild aufgenommen wird, wobei die aufgabenspezifischen Datenelemente vor anwendungsspezifischen Datenelementen in der Teilaufgabenkomponente erscheinen, mindestens einen Prozessor; eine ausführende mobile Anwendung; und einen Speicher, der Anweisungen speichert, die, wenn sie durch den mindestens einen Prozessor ausgeführt werden, eine Benutzeroberfläche erzeugen, die so konfiguriert ist, dass sie: ein Suchergebnis aus dem Index für Schlüsselelemente bereitstellt, die einer Abfrage entsprechen, eine Auswahl von Informationen erzeugt, die der Anwendungszustandskennung zugewiesen sind, und den Wechsel, in Reaktion auf die Erkennung des Präfix, zu einem Zustand, der durch die Anwendungzustandskennung dargestellt ist, einschließlich dem Öffnen der mobilen Anwendung, die der Zielaufgabe zugewiesen ist, auf der Benutzeroberfläche.
  19. Mobilgerät nach Anspruch 18, wobei die Benutzeroberfläche des Weiteren so konfiguriert ist, dass sie: eine Auswahl des Mobilgeräts oder eines zweiten Mobilgeräts empfängt, wobei die Auswahl das Mobilgerät zum Wechsel veranlasst, wenn das Mobilgerät ausgewählt wird, und wobei die Auswahl das Mobilgerät veranlasst, die Anwendungszustandskennung an das zweite Mobilgerät zu übertragen, wenn das zweite Mobilgerät ausgewählt wird.
  20. Mobilgerät nach Anspruch 18 oder 19, wobei die Benutzeroberfläche des Weiteren so konfiguriert ist, dass sie: einen Teil einer Benutzeroberflächenkomponente der Anwendungszustandskennung entfernt, wenn das zweite Mobilgerät nicht dem Benutzer zugeordnet ist.
DE112015004481.7T 2014-09-30 2015-09-28 Rahmen für zustandskennung mobiler anwendungen Pending DE112015004481T5 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/501,669 2014-09-30
US14/501,669 US9621650B2 (en) 2014-09-30 2014-09-30 Mobile application state identifier framework
PCT/US2015/052630 WO2016053867A1 (en) 2014-09-30 2015-09-28 Mobile application state identifier framework

Publications (1)

Publication Number Publication Date
DE112015004481T5 true DE112015004481T5 (de) 2017-10-19

Family

ID=54293372

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112015004481.7T Pending DE112015004481T5 (de) 2014-09-30 2015-09-28 Rahmen für zustandskennung mobiler anwendungen

Country Status (4)

Country Link
US (2) US9621650B2 (de)
CN (1) CN106575239B (de)
DE (1) DE112015004481T5 (de)
WO (1) WO2016053867A1 (de)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9436428B2 (en) * 2012-11-08 2016-09-06 Ebay Inc. Methods, apparatus, and system for mobile piggybacking
US9621650B2 (en) * 2014-09-30 2017-04-11 Google Inc Mobile application state identifier framework
US10324985B2 (en) 2014-12-19 2019-06-18 Samsung Electronics Co., Ltd. Device-specific search results
US10296641B2 (en) * 2014-12-23 2019-05-21 Samsung Electronics Co., Ltd. Techniques for efficient access of software application functionality in search
US10366127B2 (en) * 2014-12-29 2019-07-30 Samsung Electronics Co., Ltd. Device-specific search results
US20160188169A1 (en) * 2014-12-31 2016-06-30 TCL Research America Inc. Least touch mobile device
US10621189B2 (en) * 2015-06-05 2020-04-14 Apple Inc. In-application history search
US10509834B2 (en) 2015-06-05 2019-12-17 Apple Inc. Federated search results scoring
US10592572B2 (en) * 2015-06-05 2020-03-17 Apple Inc. Application view index and search
US10755032B2 (en) * 2015-06-05 2020-08-25 Apple Inc. Indexing web pages with deep links
US10803391B2 (en) * 2015-07-29 2020-10-13 Google Llc Modeling personal entities on a mobile device using embeddings
US9910685B2 (en) 2015-08-13 2018-03-06 Samsung Electronics Co., Ltd. System and method for identifying, indexing, and navigating to deep states of mobile applications
US20170060891A1 (en) * 2015-08-26 2017-03-02 Quixey, Inc. File-Type-Dependent Query System
US9983892B2 (en) 2015-11-06 2018-05-29 Samsung Electronics Co., Ltd. Deep linking to mobile application states through programmatic replay of user interface events
US9858094B2 (en) * 2015-11-10 2018-01-02 Samsung Electronics Co., Ltd. Monitoring and actuation of view controller parameters to reach deep states without manual developer intervention
US10257342B2 (en) 2016-03-31 2019-04-09 Microsoft Technology Licensing, Llc Validating stateful dynamic links in mobile applications
US10148546B2 (en) 2016-06-09 2018-12-04 Apple Inc. Scheduling processing tasks based on predicted context
US11734302B2 (en) 2016-06-09 2023-08-22 Apple Inc. Multi-device context store
US20180034764A1 (en) * 2016-07-29 2018-02-01 Linkedin Corporation Selecting applications for message handling
US10333713B2 (en) * 2016-10-11 2019-06-25 International Business Machines Corporation Validating internet of things device firmware using a peer-to-peer registry
US10326749B2 (en) * 2016-10-11 2019-06-18 International Business Machines Corporation Validating internet of things device firmware
US10356200B2 (en) * 2016-12-28 2019-07-16 Google Llc Optimizing user interface data caching for future actions
US10810278B2 (en) * 2017-04-18 2020-10-20 Google Llc Contextual deep bookmarking
KR102426123B1 (ko) * 2017-08-17 2022-07-28 삼성전자주식회사 사용자 발화를 처리하는 전자 장치 및 서버
US20190065032A1 (en) * 2017-08-23 2019-02-28 Lanjia Lin Method and system for capturing, storing, and recreating current state of an application
US10802872B2 (en) * 2018-09-12 2020-10-13 At&T Intellectual Property I, L.P. Task delegation and cooperation for automated assistants
US11620033B2 (en) * 2019-05-31 2023-04-04 Apple Inc. Systems and methods for proactively identifying and providing an internet link on an electronic device
US11044279B1 (en) * 2019-12-19 2021-06-22 Capital One Services, Llc Systems and methods for secure browser session transfer
US11321409B2 (en) 2020-01-21 2022-05-03 International Business Machines Corporation Performing a search based on position information
CN112416500B (zh) * 2020-11-30 2022-04-22 联想(北京)有限公司 一种信息处理方法及电子设备

Family Cites Families (94)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5774670A (en) * 1995-10-06 1998-06-30 Netscape Communications Corporation Persistent client state in a hypertext transfer protocol based client-server system
US5987376A (en) * 1997-07-16 1999-11-16 Microsoft Corporation System and method for the distribution and synchronization of data and state information between clients in a distributed processing system
US6332199B1 (en) * 1998-10-29 2001-12-18 International Business Machines Corporation Restoring checkpointed processes including adjusting environment variables of the processes
US6917963B1 (en) * 1999-10-05 2005-07-12 Veritas Operating Corporation Snapshot image for the application state of unshareable and shareable data
US6725273B1 (en) * 1999-12-16 2004-04-20 Nokia Corporation Point-to-point prefix protocol
US6928467B2 (en) * 2000-02-02 2005-08-09 Inno Path Software, Inc. Apparatus and methods for providing data synchronization by facilitating data synchronization system design
US7120914B1 (en) * 2000-05-05 2006-10-10 Microsoft Corporation Method and system for navigating between program modules
US6353448B1 (en) * 2000-05-16 2002-03-05 Ez Online Network, Inc. Graphic user interface display method
US6934755B1 (en) * 2000-06-02 2005-08-23 Sun Microsystems, Inc. System and method for migrating processes on a network
US7653744B2 (en) * 2000-06-12 2010-01-26 At&T Mobility Ii Llc Method and apparatus for sharing wireless content
SE517815C2 (sv) * 2000-10-27 2002-07-16 Terraplay Systems Ab Konfigurering av en flexibel infrastruktur
US6877111B2 (en) * 2001-03-26 2005-04-05 Sun Microsystems, Inc. Method and apparatus for managing replicated and migration capable session state for a Java platform
US6912569B1 (en) * 2001-04-30 2005-06-28 Sun Microsystems, Inc. Method and apparatus for migration of managed application state for a Java based application
US7243230B2 (en) * 2001-11-16 2007-07-10 Microsoft Corporation Transferring application secrets in a trusted operating system environment
AU2002359001A1 (en) * 2001-12-28 2003-07-24 Access Co., Ltd. Usage period management system for applications
US8635254B2 (en) 2002-08-08 2014-01-21 Axeda Corporation Maintaining independent states for multiple web browser instances
US7092703B1 (en) * 2003-03-24 2006-08-15 Sprint Spectrum L.P. Method and system for accessing a universal message handler on a mobile device
US7350213B2 (en) * 2003-06-19 2008-03-25 Sap Ag System and method for dynamic selection of stateless/stateful software components
US7841533B2 (en) * 2003-11-13 2010-11-30 Metrologic Instruments, Inc. Method of capturing and processing digital images of an object within the field of view (FOV) of a hand-supportable digitial image capture and processing system
US9189230B2 (en) * 2004-03-31 2015-11-17 Intel Corporation Method and system to provide concurrent user-level, non-privileged shared resource thread creation and execution
US7716274B1 (en) * 2004-04-14 2010-05-11 Oracle America, Inc. State data persistence in a distributed computing environment
US20050278419A1 (en) * 2004-06-14 2005-12-15 Morris Robert P System and method for linking resources with actions
US8339363B2 (en) * 2005-05-13 2012-12-25 Robert Bosch Gmbh Sensor-initiated exchange of information between devices
US9864628B2 (en) * 2005-08-23 2018-01-09 Blackberry Limited Method and system for transferring an application state from a first electronic device to a second electronic device
US8209620B2 (en) * 2006-01-31 2012-06-26 Accenture Global Services Limited System for storage and navigation of application states and interactions
US8533199B2 (en) * 2005-12-14 2013-09-10 Unifi Scientific Advances, Inc Intelligent bookmarks and information management system based on the same
US8209615B2 (en) * 2006-11-22 2012-06-26 Qualcomm Incorporated Apparatus and methods of linking to an application on a wireless device
US8255382B2 (en) * 2007-06-20 2012-08-28 Boopsie, Inc. Dynamic menus for multi-prefix interactive mobile searches
US10515329B2 (en) * 2007-01-19 2019-12-24 International Business Machines Corporation Business performance bookmarks
US8463813B2 (en) * 2007-04-12 2013-06-11 Younite, Inc. Individualized data sharing
US7969933B2 (en) * 2007-08-03 2011-06-28 Kapsch Trafficcom Ag System and method for facilitating a persistent application session with anonymity between a mobile host and a network host
US8407605B2 (en) * 2009-04-03 2013-03-26 Social Communications Company Application sharing
US8910240B1 (en) * 2007-11-12 2014-12-09 Google Inc. Mapping content using uniform resource identifiers
US7793153B2 (en) * 2008-01-11 2010-09-07 International Business Machines Corporation Checkpointing and restoring user space data structures used by an application
US20090204966A1 (en) * 2008-02-12 2009-08-13 Johnson Conrad J Utility for tasks to follow a user from device to device
US9104738B2 (en) * 2008-06-19 2015-08-11 Tropare, Inc. Leveraging collaborative cloud services to build and share apps
US9557889B2 (en) * 2009-01-28 2017-01-31 Headwater Partners I Llc Service plan design, user interfaces, application programming interfaces, and device management
US9639626B2 (en) 2009-04-09 2017-05-02 International Business Machines Corporation Web-browser based state repository
US20110004888A1 (en) * 2009-07-06 2011-01-06 Sudharshan Srinivasan Screen sharing method with selective access to both data and logic of a shared application using a helper application
US20110022571A1 (en) * 2009-07-24 2011-01-27 Kevin Howard Snyder Method of managing website components of a browser
JP2013506175A (ja) * 2009-09-25 2013-02-21 インターナショナル・ビジネス・マシーンズ・コーポレーション 統一リソース識別子(uri)による、アプリケーション状態情報の管理
US10453299B2 (en) 2009-12-23 2019-10-22 Aristocrat Technologies Australia Pty Limited Method of enabling restoration of games and a method of restoring games
US8392698B2 (en) * 2010-04-16 2013-03-05 Cisco Technology, Inc. System and method for providing prefixes indicative of mobility properties in a network environment
US8700698B2 (en) * 2010-05-04 2014-04-15 Microsoft Corporation Scalable affinitized state management
US8494439B2 (en) * 2010-05-04 2013-07-23 Robert Bosch Gmbh Application state and activity transfer between devices
KR101657545B1 (ko) * 2010-05-11 2016-09-19 엘지전자 주식회사 휴대 단말기 및 그 동작 방법
US8473949B2 (en) * 2010-07-08 2013-06-25 Microsoft Corporation Methods for supporting users with task continuity and completion across devices and time
KR101957951B1 (ko) * 2010-09-17 2019-03-13 구글 엘엘씨 컴퓨팅 디바이스들 사이에서 정보를 이동시키기 위한 방법들 및 시스템들
EP2445149B1 (de) * 2010-10-25 2015-03-04 BlackBerry Limited System und Verfahren zur Ermöglichung von Anwendungen zur Kommunikation mittels Peer-to-Peer-System
US20120124062A1 (en) * 2010-11-12 2012-05-17 Microsoft Corporation Application Transfer Protocol
US20120124061A1 (en) * 2010-11-12 2012-05-17 Microsoft Corporation Rich Search Over and Deep Integration with Applications
US8838679B2 (en) * 2010-12-22 2014-09-16 Microsoft Corporation Providing state service for online application users
EP2487871A1 (de) * 2011-02-11 2012-08-15 Telefónica, S.A. Verfahren und System zur Übertragung des Bewerbungsstatus zwischen verschiedenen Vorrichtungen
US9026671B2 (en) * 2011-04-05 2015-05-05 Qualcomm Incorporated IP broadcast streaming services distribution using file delivery methods
US8812601B2 (en) * 2011-05-09 2014-08-19 Google Inc. Transferring application state across devices with checkpoints
US8224894B1 (en) * 2011-05-09 2012-07-17 Google Inc. Zero-click sharing of application context across devices
US8171137B1 (en) * 2011-05-09 2012-05-01 Google Inc. Transferring application state across devices
US8467817B2 (en) * 2011-06-16 2013-06-18 Sap Ag Generic business notifications for mobile devices
US8527862B2 (en) * 2011-06-24 2013-09-03 Usablenet Inc. Methods for making ajax web applications bookmarkable and crawlable and devices thereof
US8775850B2 (en) * 2011-06-28 2014-07-08 Amazon Technologies, Inc. Transferring state information between electronic devices
US20130041790A1 (en) * 2011-08-12 2013-02-14 Sivakumar Murugesan Method and system for transferring an application state
US8631125B2 (en) * 2011-08-22 2014-01-14 Verizon Patent And Licensing Inc. Network device and mobile device with state capture services
US9578114B2 (en) * 2011-09-27 2017-02-21 Microsoft Technology Licensing, Llc External service application discovery method
US8745539B2 (en) * 2011-09-29 2014-06-03 Microsoft Corporation Automatic lifecycle management for pages on a mobile application
US8938518B2 (en) * 2012-01-16 2015-01-20 International Business Machines Corporation Transferring applications and session state to a secondary device
US9262496B2 (en) * 2012-03-30 2016-02-16 Commvault Systems, Inc. Unified access to personal data
US9003299B2 (en) * 2012-06-08 2015-04-07 Apple Inc. Extensible application state preservation architecture
US9430211B2 (en) * 2012-08-31 2016-08-30 Jpmorgan Chase Bank, N.A. System and method for sharing information in a private ecosystem
US20140074923A1 (en) * 2012-09-12 2014-03-13 General Instrument Corporation Selective content disclosure in an ad-hoc network based on social cohesion
US9106721B2 (en) * 2012-10-02 2015-08-11 Nextbit Systems Application state synchronization across multiple devices
US9774658B2 (en) * 2012-10-12 2017-09-26 Citrix Systems, Inc. Orchestration framework for connected devices
US9098177B2 (en) * 2012-12-13 2015-08-04 Google Technology Holdings LLC Apparatus and methods for facilitating context handoff between devices in a cloud based wireless personal area network
AU2013100259B4 (en) * 2012-12-31 2013-09-26 Uniloc Usa, Inc. Migration of usage sessions between devices
US10109020B2 (en) * 2013-01-23 2018-10-23 Facebook, Inc. User interface for bookmarks in a social networking system
US9516072B2 (en) * 2013-02-22 2016-12-06 Blackberry Limited Device, system and method for generating application data
US10122827B2 (en) * 2013-02-25 2018-11-06 Microsoft Technology Licensing, Llc Interaction between devices displaying application status information
US9553919B2 (en) * 2013-02-27 2017-01-24 Quixey, Inc. Techniques for sharing application states
US9313261B2 (en) * 2013-03-07 2016-04-12 Qualcomm Incorporated System and methods of transferring tasks from a first mobile device to a second mobile device
US9009215B2 (en) * 2013-03-15 2015-04-14 Wandisco, Inc. Methods, devices and systems for dynamically managing memberships in replicated state machines within a distributed computing environment
US10671028B2 (en) * 2013-03-15 2020-06-02 Fisher-Rosemount Systems, Inc. Method and apparatus for managing a work flow in a process plant
US8954611B2 (en) * 2013-03-21 2015-02-10 Nextbit Systems Inc. Mechanism for sharing states of applications and devices across different user profiles
US20140359637A1 (en) * 2013-06-03 2014-12-04 Microsoft Corporation Task continuance across devices
US9207965B2 (en) * 2013-06-10 2015-12-08 International Business Machines Corporation Managing multi-application contexts
US9721020B2 (en) * 2013-07-31 2017-08-01 International Business Machines Corporation Search query obfuscation via broadened subqueries and recombining
US8839266B1 (en) * 2013-07-31 2014-09-16 Vmware, Inc. Inter-application communication on mobile platforms
US9110930B2 (en) * 2013-08-22 2015-08-18 International Business Machines Corporation Parallel application checkpoint image compression
WO2015171549A2 (en) * 2014-05-05 2015-11-12 Citrix Systems, Inc. Facilitating communication between mobile applications
US9424065B2 (en) * 2014-06-26 2016-08-23 Vmware, Inc. Methods and apparatus to scale application deployments in cloud computing environments using virtual machine pools
GB2529838B (en) * 2014-09-03 2021-06-30 Advanced Risc Mach Ltd Bootstrap Mechanism For Endpoint Devices
US9621650B2 (en) * 2014-09-30 2017-04-11 Google Inc Mobile application state identifier framework
US20160182627A1 (en) * 2014-12-18 2016-06-23 Apollo Education Group, Inc. Application hibernation
US20170185617A1 (en) * 2015-12-29 2017-06-29 Quixey, Inc. Data Object Based Application State Sharing Methods for User Devices
US10812582B2 (en) * 2016-03-10 2020-10-20 Vmware, Inc. Management of applications across nodes using exo-clones
US10324766B1 (en) * 2016-03-24 2019-06-18 Amazon Technologies, Inc. Task profile collection

Also Published As

Publication number Publication date
US9621650B2 (en) 2017-04-11
CN106575239B (zh) 2020-12-29
US10834556B2 (en) 2020-11-10
US20170215025A1 (en) 2017-07-27
US20160094654A1 (en) 2016-03-31
CN106575239A (zh) 2017-04-19
WO2016053867A1 (en) 2016-04-07

Similar Documents

Publication Publication Date Title
DE112015004481T5 (de) Rahmen für zustandskennung mobiler anwendungen
DE112015003826T5 (de) Bereitstellen von automatischen Aktionen für mobile Bildschirminhalte
DE102017121758A1 (de) Intelligente Assistenz für wiederholte Aktionen
US9825890B2 (en) Systems and methods for supporting social productivity using thresholding
DE112015004827T5 (de) Verbesserte Ziehen-und-Ablegen-Operation in einer Mobilvorrichtung
DE112016005286T5 (de) Simulierte Hyperlinks auf einer Mobilvorrichtung
DE112016003112T5 (de) Modellieren persönlicher Entitäten
DE112013006371T5 (de) Datensynchronisierung
US20160085768A1 (en) Information processing system, and information processing method
DE112017000122T5 (de) Natürliche Sprachverarbeitung für den Sitzungsaufbau mit Serviceprovidern
CN105900121B (zh) 用于生成活动流的方法
DE112017000046T5 (de) Beurteilung der Genauigkeit eines Maschinenlernmodells
CN107430622A (zh) 用于向用户通知对存储在基于云的文件存储系统中的文件的改变的系统和方法
US11297030B2 (en) Embeddings-based discovery and exposure of communication platform features
DE102020007191A1 (de) Maschinelles Lernen zur Digitalbildauswahl unter Objektvarianten
DE112015005269T5 (de) Erweitern einer Informationsanforderung
DE102016205009A1 (de) Intelligente interaktive Bildschirmaufnahme
DE212015000245U1 (de) Assistives Browsen unter Verwendung von Kontext
DE102017111569A1 (de) Responsive, visuelle Darstellung von Kurzinformationen für vom Benutzer angefragte Themen
DE112016000962T5 (de) System und verfahren zur strukturierung von bewertungen mit automatisch erzeugten tags
DE112017005917T5 (de) Medieninhaltsverwaltungsvorrichtung
DE112016004733T5 (de) Techniken zum Anfügen von durch ein mobiles Computergerät aufgenommenen Medien an ein elektronisches Dokument
US11637714B2 (en) Embeddings-based discovery and exposure of communication platform features
DE202020005729U1 (de) Aufnahme und Präsentation von Medieninhalt
DE112015005293T5 (de) Präsentation von Informationskarten für Ereignisse, die mit Entitäten verbunden sind

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R081 Change of applicant/patentee

Owner name: GOOGLE LLC (N.D.GES.D. STAATES DELAWARE), MOUN, US

Free format text: FORMER OWNER: GOOGLE INC., MOUNTAIN VIEW, CALIF., US

R082 Change of representative

Representative=s name: KILBURN & STRODE LLP, GB

Representative=s name: KILBURN & STRODE LLP, NL

Representative=s name: BETTEN & RESCH PATENT- UND RECHTSANWAELTE PART, DE

R082 Change of representative

Representative=s name: KILBURN & STRODE LLP, GB

Representative=s name: KILBURN & STRODE LLP, NL

R082 Change of representative

Representative=s name: KILBURN & STRODE LLP, GB

Representative=s name: KILBURN & STRODE LLP, NL

R082 Change of representative

Representative=s name: KILBURN & STRODE LLP, NL