ES2930361T3 - Método y aparato para permitir que una aplicación detecte circunstancias específicas - Google Patents

Método y aparato para permitir que una aplicación detecte circunstancias específicas Download PDF

Info

Publication number
ES2930361T3
ES2930361T3 ES18171593T ES18171593T ES2930361T3 ES 2930361 T3 ES2930361 T3 ES 2930361T3 ES 18171593 T ES18171593 T ES 18171593T ES 18171593 T ES18171593 T ES 18171593T ES 2930361 T3 ES2930361 T3 ES 2930361T3
Authority
ES
Spain
Prior art keywords
mobile device
user
circumstances
operating system
application
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.)
Active
Application number
ES18171593T
Other languages
English (en)
Inventor
Bradley Geilfuss
Chris Bleakley
Arthur Wolf
Evan Gamble
Wesley Henderson
Chen Guo
Yajia Yang
Boris Shimanovsky
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.)
Factual Inc
Original Assignee
Factual Inc
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 Factual Inc filed Critical Factual Inc
Application granted granted Critical
Publication of ES2930361T3 publication Critical patent/ES2930361T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3013Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72448User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions
    • H04M1/72454User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions according to context-related or environment-related conditions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/40Data acquisition and logging
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2250/00Details of telephonic subscriber devices
    • H04M2250/12Details of telephonic subscriber devices including a sensor for measuring a physical value, e.g. temperature or motion

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Human Computer Interaction (AREA)
  • Environmental & Geological Engineering (AREA)
  • Mathematical Physics (AREA)
  • Telephonic Communication Services (AREA)
  • Manufacture, Treatment Of Glass Fibers (AREA)
  • Telephone Function (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Se proporcionan métodos y sistemas que pueden utilizarse para detectar la ocurrencia de una o más circunstancias específicas. Se puede determinar si se detectan una o más circunstancias específicas, como en respuesta a una o más acciones del usuario o la ocurrencia de un evento no relacionado con un usuario. Se pueden generar una o más señales digitales binarias para almacenar una detección de una o más circunstancias específicas del usuario en un registro o memoria al menos parcialmente en respuesta a la detección de una o más circunstancias específicas. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Método y aparato para permitir que una aplicación detecte circunstancias específicas
Antecedentes
1. Campo
El tema divulgado en este documento se refiere a un método, sistema o aparato para permitir que una aplicación detecte circunstancias para un usuario de un dispositivo móvil.
2. Información
Hay una gran cantidad de información recopilada de los usuarios de dispositivos móviles, por ejemplo, a diario. Por ejemplo, un dispositivo móvil, tal como un teléfono inteligente, puede tener la capacidad de estimar periódicamente su ubicación o posición, tal como mediante la recepción de señales del sistema de posicionamiento global (GPS). Un dispositivo móvil puede estar en comunicación periódica con diversas entidades, tal como una estación base para el servicio de telefonía celular, o a través de algún otro tipo de punto de acceso o servidor, tal como para obtener acceso a internet. Un dispositivo móvil también puede incluir un acelerómetro a partir del cual se puede determinar la información de movimiento relacionada con el dispositivo móvil, así como otros sensores que pueden, por ejemplo, determinar la orientación, la ubicación, la temperatura, la altitud o la presión barométrica.
Ciertas condiciones recurrentes pueden estar presentes cuando un usuario realiza ciertas acciones, tal como conducir a casa usando una ruta particular después del trabajo. Dichas condiciones recurrentes pueden observarse o detectarse y pueden utilizarse para predecir o influir en el comportamiento del usuario.
El documento US2014/0053260 se encuentra en el Informe de búsqueda europeo y describe métodos, dispositivos y sistemas para detectar comportamientos sospechosos o que degradan el rendimiento de los dispositivos móviles. No se ocupa de detectar circunstancias para un usuario, sino más bien de detectar si un dispositivo móvil sufre de software malicioso, conflictos de software, fallas de hardware u otros errores o fenómenos similares que pueden tener un impacto negativo en un dispositivo móvil a largo plazo y en los niveles continuos de rendimiento y utilización de potencia. Con este fin, se monitorizan diversos comportamientos de dispositivos móviles para permitir que se identifique un comportamiento sospechoso de dispositivos móviles a partir de un conjunto limitado de observaciones. Resumen
De acuerdo con un aspecto de la presente invención, se proporciona un método según la reivindicación 1 independiente.
Otro aspecto de la invención proporciona un dispositivo móvil según la reivindicación 8 independiente.
Otro aspecto de la invención proporciona el producto de programa informático según la reivindicación 12 independiente.
Otras características opcionales se citan en las reivindicaciones dependientes.
Breve descripción de los dibujos.
El tema reivindicado se señala en particular y se reivindica claramente en la porción concluyente de la memoria descriptiva. Sin embargo, tanto en cuanto a la organización y/o el método de operación, junto con los objetos, características y/o ventajas de los mismos, puede entenderse mejor con referencia a la siguiente descripción detallada si se lee con los dibujos adjuntos en los que:
La figura 1 ilustra un sistema para la comunicación entre un dispositivo móvil y un primer servidor y un segundo servidor de acuerdo con una realización;
La figura 2 ilustra un proceso para que un desarrollador de aplicaciones especifique las circunstancias a detectar en un dispositivo móvil de un usuario de acuerdo con una realización;
La figura 3 ilustra un dispositivo móvil según una realización; y
La figura 4 ilustra un proceso para que un motor de observación monitorice un dispositivo móvil para detectar una ocurrencia de una o más circunstancias específicas de acuerdo con una realización.
En la siguiente descripción detallada se hace referencia a los dibujos adjuntos, que forman parte de la misma, en donde los mismos numerales pueden designar partes iguales para indicar componentes correspondientes y/o análogos. Se apreciará que los componentes ilustrados en las figuras no se han dibujado necesariamente a escala, tal como por simplicidad y/o claridad de la ilustración. Por ejemplo, las dimensiones de algunos componentes pueden ser exageradas en relación con otros componentes. Además, debe entenderse que pueden utilizarse otras realizaciones. Además, se pueden realizar cambios estructurales y/o de otro tipo sin apartarse del tema reivindicado. También se debe tener en cuenta que las direcciones y/o las referencias, por ejemplo, tal como arriba, abajo, superior, inferior, etc., se pueden usar para facilitar la discusión de los dibujos y/o no pretenden restringir la aplicación del tema reivindicado.
Descripción detallada
La referencia a lo largo de esta especificación a "un ejemplo", "una característica", "un ejemplo" o "una característica" significa que una característica, estructura o característica particular descrita en relación con la característica o el ejemplo está incluida en al menos una característica o ejemplo del tema reivindicado. Por lo tanto, las apariciones de la expresión "en un ejemplo", "un ejemplo", "en una característica" o "una característica" en diversos lugares a lo largo de esta especificación no necesariamente se refieren todas a la misma característica o ejemplo. Además, las características, estructuras o características particulares pueden combinarse en uno o más ejemplos o características.
Hay una gran cantidad de información recopilada de los usuarios de dispositivos móviles, por ejemplo, a diario. Por ejemplo, un dispositivo móvil, tal como un teléfono inteligente, puede tener la capacidad de estimar periódicamente su ubicación o posición, tal como mediante la recepción de señales del sistema de posicionamiento global (GPS). Un dispositivo móvil puede estar en comunicación periódica con diversas entidades, tal como una estación base para el servicio de telefonía celular, o a través de algún otro tipo de punto de acceso o servidor, tal como para obtener acceso a internet. El dispositivo móvil puede mantener un registro de sus estimaciones de ubicación actuales o pasadas, o puede transmitir dicha información a un dispositivo en red, tal como un servidor.
Se puede utilizar un registro o almacenamiento de estimaciones de ubicación actual y/o pasada para un dispositivo móvil para hacer o inferir una o más observaciones sobre un usuario de un dispositivo móvil. Por ejemplo, los datos del sensor de acelerómetro o giroscopio para un usuario pueden indicar que el usuario está corriendo o de pie. Una "observación", como se usa en este documento, puede referirse a una característica detectable de un usuario. Por ejemplo, si un dispositivo móvil de un usuario está asociado con una estimación de ubicación particular a una hora particular del día, una observación puede ser que el usuario estaba en la estimación de ubicación particular a esa hora particular del día. Una observación puede determinarse a intervalos de tiempo periódicos, tal como cada 30 minutos, por ejemplo. En una realización, se puede determinar adicional o alternativamente una observación si una estimación de ubicación para un usuario ha dejado de cambiar, tal como si el usuario ha estado en una ubicación particular, tal como una ubicación de casa o una ubicación de trabajo, durante un período de tiempo determinado. Las observaciones pueden determinarse con base en diversas actividades realizadas por un usuario, tal como a través del dispositivo móvil del usuario. Por ejemplo, se pueden observar las identidades de diversas aplicaciones utilizadas por el usuario, tal como una aplicación de correo electrónico, una aplicación de Facebook™ o una aplicación de despertador, por nombrar solo algunos ejemplos entre muchos. Una categoría de una aplicación utilizada puede comprender una observación adicional. De forma similar, pueden observarse adicional o alternativamente las horas del día en las que se usaron diversas aplicaciones y los períodos de tiempo en los que se usaron las diversas aplicaciones. Se pueden observar mediciones del acelerómetro, tal como para indicar que un usuario está o estaba caminando, conduciendo, montando en un tren o saltando, por ejemplo. Se puede observar una manera en la que se observan las mediciones del acelerómetro, tal como si las mediciones indican que un usuario está o estaba conduciendo de manera particularmente agresiva, rápida o lenta. Hay tipos potencialmente ilimitados de observaciones que se pueden hacer sobre un usuario de un dispositivo móvil, por ejemplo. En una realización, se pueden realizar observaciones adicional o alternativamente sobre un usuario que no están relacionadas con ningún dispositivo móvil particular utilizado por el usuario, tal como una externalidad.
Una "externalidad", tal como se usa en este documento, se refiere a un evento, ocurrencia o ubicación externa a un dispositivo informático, tal como un dispositivo móvil o un usuario del dispositivo móvil. Por ejemplo, una externalidad puede ser independiente de una acción o ubicación de un dispositivo móvil o un usuario del dispositivo móvil. Una externalidad, como se usa en este documento, puede referirse a la presencia de un evento de concierto, un evento en un espacio cerrado, el clima, el tráfico u otro evento noticioso, por nombrar algunos ejemplos.
Un dispositivo móvil puede ejecutar o poner en marcha una o más aplicaciones en un momento dado. Una aplicación particular puede monitorizar o rastrear diversas observaciones realizadas sobre un usuario o sobre el dispositivo móvil del usuario. Por ejemplo, un dispositivo móvil puede implementar una aplicación que comprende un motor de observación para monitorizar si se han detectado, logrado o cumplido ciertas circunstancias.
Una "circunstancia", como se usa en este documento, se refiere a un estado o condición indicativa de la detección de un evento, condición o acción en particular. Por ejemplo, una circunstancia puede ser una acción realizada por un usuario o en nombre del usuario, tal como por un dispositivo móvil del usuario. Los ejemplos de circunstancias pueden incluir la determinación de que el usuario ha utilizado una aplicación de viaje compartido en particular ahora o en el pasado, el usuario se encuentra actualmente en una sala de conciertos en particular, el usuario acaba de salir de una gran tienda en particular, o el usuario ha visitado la misma cafetería durante tres días consecutivos, por ejemplo. A continuación se analizan ejemplos adicionales de circunstancias.
Un "motor de observación", como se usa en este documento, se refiere a un kit de desarrollo de software (SDK) en el dispositivo que detecta la ocurrencia de ciertas circunstancias. Por ejemplo, un motor de observación puede agregarse o puede comprender una porción de un programa de aplicación. En una realización particular, un motor de observación puede comprender un código ejecutable o instrucciones que, si se ejecutan, pueden notificar a un programa de aplicación en el que está integrado o del cual forma una porción, para notificar al programa de aplicación de la existencia de ciertas circunstancias o condiciones que pueden ser predeterminadas, predefinidas o especificadas de otro modo antes de la ejecución o implementación del programa de aplicación. Por ejemplo, tras la detección de ciertas circunstancias, se puede generar una señal o se puede cambiar un estado para informar a la aplicación de la existencia de las circunstancias.
Un "kit de desarrollo de software" o "SDK", como se usa en este documento, se refiere a una biblioteca de código que se compila en un programa de aplicación. Se puede agregar o adjuntar un SDK a una aplicación antes de compilarla.
Una "aplicación" o "programa de aplicación", como se usa aquí se refiere a un programa o código ejecutable para realizar un grupo de funciones, tareas o actividades coordinadas, por ejemplo. En una realización, se puede programar inicialmente una aplicación y luego se puede compilar un SDK en la aplicación. La aplicación puede compilarse posteriormente con el SDK y puede estar disponible para que los usuarios finales la instalen o la descarguen. En una realización, se puede acceder, descargar o recuperar de otro modo una aplicación a través de una base de datos de aplicaciones o una "tienda de aplicaciones", por ejemplo.
Una "tienda de aplicaciones", como se usa en este documento, se refiere a un repositorio desde el cual se puede acceder, descargar o recuperar una o más aplicaciones. En una realización, se puede acceder a una tienda de aplicaciones a través de una red, tal como internet, y un usuario final puede descargar una aplicación para instalarla en un dispositivo del usuario final, tal como un teléfono celular o inteligente, un ordenador, tal como un ordenador de escritorio o portátil, o cualquier otro tipo de dispositivo informático, tal como un dispositivo móvil o un dispositivo estacionario.
En un ejemplo particular, un motor de observación puede detectar la ocurrencia de ciertas circunstancias, tal como (a) si un dispositivo ingresa a un Starbucks a pie durante el viaje de la mañana; (b) si el dispositivo sale de la ubicación de trabajo de su propietario en carro durante las horas de trabajo; o (c) si el dispositivo se transporta a un concierto de rock en un lugar pequeño en Hollywood, CA.
Los desarrolladores de aplicaciones pueden definir las circunstancias utilizando una herramienta de autor. Por ejemplo, una herramienta de autor puede estar separada de un programa de aplicación que comprenda un SDK para implementar un motor de observación. En una realización, las circunstancias pueden cargarse o enviarse a un motor de observación a través de un tipo de sistema por aire (OTA).
Se utiliza un motor de observación para hacer que las circunstancias específicas sean procesables. En un ejemplo, un motor de observación puede realizar una devolución de llamada a la aplicación de un desarrollador para invocar una función particular si se detecta o se cumple un conjunto específico de circunstancias. Por ejemplo, la aplicación de un desarrollador puede ser ejecutada o puesta en marcha por el mismo dispositivo móvil que ejecuta o pone en marcha un motor de observación. La aplicación de un desarrollador puede realizar algún tipo de acción en respuesta a la recepción de una devolución de llamada de un motor de observación. Por ejemplo, si la aplicación de un desarrollador comprende una aplicación de viajes compartidos, un motor de observación puede generar y transmitir una devolución de llamada a la aplicación de viajes compartidos si se detectan o cumplen ciertas circunstancias, tales como que un usuario está saliendo de una sala de cine después de haber estado dentro de la sala de cine durante dos horas, presumiblemente asistiendo a una proyección de película. En un ejemplo, si se detectan las circunstancias, la aplicación de viajes compartidos puede solicitar al usuario que envíe un mensaje para solicitar un viaje en automóvil a casa.
En una realización, la aplicación de un desarrollador puede determinar si las visitas de un usuario a Starbucks™ son comunes. De ser así, la aplicación del desarrollador puede solicitar al usuario que determine si desea que su café se pida por adelantado a través de una interfaz de programa de aplicación (API) de Starbucks™ en el futuro. En un ejemplo en el que una circunstancia comprende cada vez que un dispositivo móvil sale de la ubicación de trabajo de su propietario en carro durante las horas de trabajo, la aplicación de un desarrollador puede buscar un punto de interés de comida local en el camino, si, por ejemplo, la salida ocurre durante la hora del almuerzo.
Una aplicación o producto puede combinarse con un motor de observación para descubrir una correlación entre los resultados deseados y las circunstancias. Alternativamente, el motor de observación puede descubrir las correlaciones de los usuarios por sí mismo. En consecuencia, una tarea secundaria de un motor de observación puede ser recopilar datos de atribución.
Una interfaz SDK para un dispositivo móvil puede ser idiomáticamente coherente con una plataforma en la que opera o se asienta, tal como iOS™ o Android™. Un motor de observación puede aprovechar las bibliotecas predeterminadas del sistema operativo, que están destinadas a resolver problemas superpuestos, según corresponda. Por ejemplo, en iOS™, los servicios de cambios significativos y ubicación estándar existentes pueden utilizarse en lugar de los personalizados en una realización. Un objetivo es aprovechar el código que un desarrollador de plataforma, tal como Apple™, mantiene y mejora de manera relativamente continua.
Según una realización, puede ser relativamente simple y fácil instalar y configurar un motor de observación. Dicha instalación puede seguir las mejores prácticas de una plataforma, tal como CocoaPods™.
Para facilitar la instalación, el espacio ocupado puede mantenerse pequeño. Por ejemplo, se puede utilizar un techo particular, tal como 1MB o menos de código, para implementar un motor de observación.
Un motor de observación puede utilizar actualizaciones OTA para garantizar que se utilice una última versión compatible del motor de observación en un dispositivo móvil. Mediante el uso de actualizaciones OTA, uno puede asegurarse de que las instancias de un motor de observación en el campo se configuren de manera consistente, tal como dentro de aproximadamente 24 horas de cualquier actualización, por ejemplo.
Un entorno de autoría o programación para describir o indicar circunstancias de interés es independiente de un SDK de una aplicación instalada en el dispositivo móvil de un usuario. Por ejemplo, un programador puede describir o indicar de forma remota circunstancias de interés o puede determinar de forma remota ciertas directivas, tal como para indicar si se debe invocar una función particular al menos parcialmente en respuesta a la detección de una o más circunstancias específicas.
Una actualización OTA puede transmitir o enviar reglas o directivas "por aire", tal como a través de una conexión a internet u otra red a la aplicación. Las reglas o directivas pueden ser creadas para diversas circunstancias diferentes. Las reglas o directivas pueden informar a un dispositivo anfitrión sobre si y/o cuándo realizar una acción específica en respuesta a la detección de una circunstancia específica.
Un SDK de una aplicación puede recopilar o reunir información o datos de interés, puede almacenar esta información en un registro de una memoria y puede iniciar la transmisión de la información registrada a una base de datos o almacén de datos para su posterior análisis, tal como por un desarrollador de una aplicación en la que se utiliza el SDK. El SDK informa a una aplicación de organización sobre la detección de circunstancias específicas, con base en diversas reglas o directivas relacionadas con la circunstancia especificada, de modo que, por ejemplo, la aplicación de organización puede realizar una acción específica o invocar una función específica.
En una realización, un SDK puede determinar o tomar sus propias decisiones en respuesta a la detección de circunstancias específicas. Por ejemplo, una decisión puede basarse, al menos en parte, en un proceso de aprendizaje de máquina. Se pueden obtener ciertos beneficios, por ejemplo, si las directivas se actualizan periódicamente y un SDK tiene la capacidad de tomar sus propias decisiones con respecto a las respuestas a la detección de circunstancias específicas.
En una realización, las directivas o reglas relacionadas con ciertas circunstancias específicas pueden transmitirse o enviarse periódicamente a un dispositivo móvil para probar o determinar qué acciones en respuesta a la detección de las circunstancias específicas dieron como resultado una respuesta interesante por parte de un usuario. Por ejemplo, si un porcentaje relativamente alto de usuarios deja comentarios en respuesta a una solicitud con base en la detección de circunstancias específicas, la acción de solicitar al usuario que deje comentarios puede considerarse una respuesta interesante, que puede incorporarse en directivas futuras, por ejemplo.
Por ejemplo, las circunstancias específicas pueden estar relacionadas con una aplicación para encontrar un restaurante. Se puede realizar un análisis de las respuestas de los usuarios registrados a las solicitudes con base en la detección de circunstancias para identificar las circunstancias en las que es más probable que un usuario responda a las solicitudes. Un ejemplo de una circunstancia sería si un usuario está en un restaurante, saliendo del restaurante, o si el usuario ha estado en casa al menos 20 minutos, pero estuvo en un restaurante hace 3 horas. Un ejemplo de respuesta a la detección de una circunstancia del usuario puede ser iniciar un mensaje emergente para preguntar si al usuario le gustaría opinar sobre el restaurante y analizar si el usuario realmente escribe una opinión. Una actualización OTA también o alternativamente puede realizarse para actualizar una manera en la que se detectan las circunstancias. Por ejemplo, si un usuario está caminando, el acto de caminar del usuario puede detectarse con base en una frecuencia en la que el teléfono del usuario se mueve hacia arriba y hacia abajo, tal como si el teléfono está en el bolsillo de un usuario y puede detectar si un patrón de salida del sensor se parece a un movimiento humano, tal como de forma periódica regular. Sin embargo, si el usuario que monta en bicicleta con el teléfono puede detectar una salida de sensor similar o igual, la forma en que se detectan las circunstancias puede actualizarse para distinguir entre un usuario que camina y un usuario que monta en bicicleta. Una actualización sobre la forma en que se detectan las circunstancias puede, por ejemplo, enviarse al dispositivo móvil de un usuario a través de una actualización OTA.
El acceso por radio puede utilizar cantidades indeseablemente grandes de potencia de la batería y puede requerir un servicio disponible. En consecuencia, un motor de observación, como se describe en este documento, puede comportarse independientemente de una conexión de red. En una realización en la que se puede requerir una conexión de red, un motor de observación puede utilizar formas inteligentes para administrar o minimizar los fallos. Un motor de observación puede proporcionar a los desarrolladores de aplicaciones un grado de libertad con respecto al ajuste del consumo de batería, la precisión y la latencia, por ejemplo. Si un desarrollador desea enviar una aplicación que consume mucha potencia de manera adecuada (tal como una aplicación de dirección paso a paso), se puede configurar un motor de observación para que se ajuste a dicho perfil. Por el contrario, si un desabollador quiere un perfil de uso de potencia lo más pequeño posible, ese objetivo también se puede lograr. Un motor de observación puede aprovechar las circunstancias con base en diversos ítems, tales como (a) actividades, tal como llegar o salir; (b) ubicaciones, tal como si un usuario se encuentra en una categoría particular de lugar; (c) eventos, tal como un tipo de evento que ocurre donde se encuentra actualmente un usuario; (d) movilidad, tal como si un usuario está caminando o conduciendo; o (e) relaciones temporales, tal como si un usuario va o viene, cuánto tiempo ha estado allí, o una probabilidad estadística de que el usuario se vaya dentro de los próximos 5 minutos, y así sucesivamente.
Un kit de desarrollo de software para una aplicación puede requerir servicios para: (a) lugar adjunto, tal como para determinar con precisión dónde se encuentra un usuario, con una baja tasa de falsos positivos; (b) detección de actividad, tal como una latencia baja y una determinación de alta precisión del método de tránsito (por ejemplo, esto también puede encapsular actividades de nivel superior como "compras minoristas" o "ejercicio"); (c) estado, tal como el último lugar donde se adjuntó un usuario y el tiempo de permanencia correspondiente.
Una interfaz puede estar basada en devolución de llamada, como se discutió anteriormente. Un modelo particular es la detección de actividad (que puede abarcar tanto el apego al lugar como la detección de eventos). Al inicio de la detección de actividad, se puede iniciar la monitorización de circunstancias particulares. Si hay un resultado positivo tal que se detectan circunstancias, el evento puede registrarse y la aplicación de un desarrollador puede recibir una alerta sobre el hecho de que un registro de eventos tiene una nueva entrada.
La figura 1 ilustra un sistema 100 para la comunicación entre un dispositivo 105 móvil y un primer servidor 110 y un segundo servidor 115 de acuerdo con una realización. Un usuario puede estar asociado con el dispositivo 105 móvil. El dispositivo 105 móvil puede incluir un transmisor 120, un receptor 125, un procesador 130 y una memoria 135, por nombrar solo algunos entre muchos componentes o elementos posibles del dispositivo 105 móvil. La memoria 135 puede almacenar instrucciones ejecutables por el procesador 130 y también puede almacenar otra información relacionada con el dispositivo 105 móvil, tal como un identificador (ID) del dispositivo 105 móvil o una ubicación estimada del dispositivo 105 móvil. Por ejemplo, el procesador 130 puede estimar una ubicación del dispositivo 105 móvil. Por ejemplo, una ubicación estimada del dispositivo 105 móvil puede incluir coordenadas de latitud/longitud para el dispositivo 105 móvil o coordenadas con base en algún otro sistema o convención de coordenadas.
Una aplicación que comprende un SDK puede estimar la ubicación de un dispositivo móvil en el que la aplicación se ejecuta por sí misma (lado del cliente). Al tener la capacidad de estimar la ubicación de un dispositivo móvil, una aplicación puede estar razonablemente aislada contra fallas de la red, puede operar de una manera más eficiente con la batería (por ejemplo, al no hacer ping a los servidores de ubicación de forma periódica o regular) y también puede comportarse de manera inteligente con un nivel de privacidad relativamente alto (por ejemplo, porque no es necesario enviar una estimación de ubicación para el dispositivo móvil a un servidor). Sin embargo, una aplicación puede comunicarse con un "servidor de mosaicos" o un "servidor de mapas", de modo que los datos puedan organizarse y suministrarse en relación con un área geográfica particular. Un servidor de mosaico puede, por ejemplo, proporcionar mosaicos de información de mapa o datos para un área circundante, que puede comprender información o datos que una aplicación puede utilizar para estimar una ubicación actual del dispositivo móvil que pone en marcha o ejecuta la aplicación. Los mosaicos de mapas se pueden almacenar en un caché dentro de una aplicación, que comprende una representación de datos de cosas o ítems alrededor del dispositivo móvil en el momento actual. Si se determina que es probable que el dispositivo móvil abandone un área en particular para la cual tiene suficientes datos de mapas para operar por sí solo, la aplicación puede recuperar mosaicos para nuevas áreas a las que es probable que se mueva el dispositivo móvil.
El transmisor 120 puede transmitir una o más señales. Por ejemplo, el transmisor 120 puede transmitir una o más señales al primer servidor 110 o al segundo servidor 115. En una realización, se puede obtener una aplicación de motor de observación del primer servidor 110, y una aplicación de desarrollador se puede obtener del segundo servidor 115. En algunas realizaciones, se pueden utilizar más o menos de dos servidores. A El receptor 125 puede recibir una o más señales, tal como una o más señales recibidas a través de una red de comunicaciones, desde el primer servidor 110 o el segundo servidor 115.
La figura 2 ilustra un proceso 200 para que un desarrollador de aplicaciones configure o especifique circunstancias para detectar mediante un SDK de una aplicación de un dispositivo móvil de acuerdo con una realización. Las realizaciones según el tema reivindicado pueden incluir todos, menos o más de los bloques 205-230. Además, el orden de los bloques 205-230 es simplemente un orden de ejemplo.
En la operación 205, un desarrollador de software agrega una biblioteca SDK a una aplicación no compilada. En la operación 210, un desarrollador de software define circunstancias predeterminadas para que un SDK maneje, procese o detecte de otro modo. La operación 210 se puede realizar a través de un código de programación o a través de una API proporcionada, por ejemplo, por un servidor remoto o utilizando una interfaz de usuario con acceso a la API.
En la operación 215, un desarrollador de software asocia ciertas circunstancias a diversos métodos de devolución de llamada. Por ejemplo, un desarrollador de software puede indicar directivas para responder a la detección de una o más circunstancias específicas. Una directiva puede, por ejemplo, indicar que se debe invocar una función de devolución de llamada al detectar una o más circunstancias específicas. Una "devolución de llamada" o "función de devolución de llamada", como se usa en este documento, se refiere a una pieza de código ejecutable que se pasa como argumento a otro código. Por ejemplo, una devolución de llamada se puede utilizar para "devolver la llamada" o invocar la ejecución de un argumento en algún momento específico o apropiado. En un ejemplo, una devolución de llamada puede invocar una función particular. Por ejemplo, si se detecta una circunstancia específica que indica que un usuario ha salido de un concierto, una devolución de llamada puede invocar una función para pedir un taxi, tal como a través de una aplicación de taxi o una aplicación de viaje compartido. Una devolución de llamada puede invocar una función dentro de la misma aplicación o puede iniciar la ejecución de una aplicación diferente, tal como una aplicación de viaje compartido como se mencionó anteriormente. En otro ejemplo, si se detectan ciertas circunstancias, tales como aquellas que indican que un usuario estuvo en un restaurante hace tres horas y ahora ha estado en casa durante los últimos 30 minutos, se puede invocar una función para solicitar al usuario que escriba una reseña para el restaurante. En otro ejemplo, si las circunstancias detectadas indican que un usuario ha llegado a un restaurante en particular para hacer una reserva para cenar, una devolución de llamada puede invocar una función para notificar a otras partes sobre la reserva para cenar, tal como a través de un mensaje de texto o registrando al usuario en el restaurante en una aplicación de redes sociales, para indicar que el usuario ha llegado al restaurante.
Haciendo referencia de nuevo a la figura 2, un desarrollador de software puede compilar una aplicación en la operación 220. Una aplicación compilada puede cargarse en una tienda de aplicaciones, servidor, base de datos o alguna otra ubicación desde la cual un usuario final puede descargar, recuperar o acceder a la aplicación compilada. En la operación 225, un usuario final puede descargar y ejecutar o poner en marcha de otro modo una aplicación compilada r. En la operación 230, una aplicación puede descargar definiciones de circunstancias nuevas o actualizadas o puede usar circunstancias predeterminadas. Por ejemplo, las definiciones de circunstancias pueden actualizarse con el tiempo, tal como periódicamente o de otra manera, y una aplicación puede descargar definiciones de circunstancias nuevas o actualizadas.
Algunas circunstancias dependen del usuario y otras no. Por ejemplo, algunas circunstancias pueden determinarse con base en las acciones particulares de un usuario, tal como si el usuario se encuentra dentro de una determinada ubicación o punto de interés, o si el usuario está realizando una actividad particular, por nombrar solo un par de ejemplos. Algunas circunstancias son independientes de un usuario, tales como ciertas condiciones climáticas, la ocurrencia de ciertas noticias o eventos deportivos, o la detección de ciertos días festivos, por citar solo algunos ejemplos. Algunas circunstancias pueden detectarse con base en la información proporcionada por un sistema operativo que ejecuta el código del programa para una aplicación o ejecuta la aplicación de otro modo. Por ejemplo, un sistema operativo puede procesar datos de sensores sin procesar y realizar sus propias observaciones. Por ejemplo, un sistema operativo puede determinar de forma independiente que el usuario se ha detenido en algún lugar durante un tiempo lo suficientemente largo como para ser razonablemente perceptible, tal como cuando los datos sin procesar del sensor comprenden lecturas del acelerómetro tomadas cada 1/10 de segundo. De manera similar, un sistema operativo puede observar que el dispositivo móvil de un usuario se ha movido a un área de servicio de torre celular diferente. Un motor de observación, como se analiza en este documento, puede tener acceso a diversos tipos de entrada, que pueden aprovecharse para realizar sus propias observaciones.
En otro ejemplo, un motor de observación puede extraer diversos tipos de información o datos o propiedades de un sistema operativo del dispositivo móvil. Por ejemplo, si el dispositivo móvil tiene una aplicación meteorológica, un sistema operativo puede extraer o adquirir de otro modo las condiciones meteorológicas actuales o pronosticadas, que pueden enviarse a un motor de observación, como se explica en este documento. De manera similar, un sistema operativo puede determinar si un usuario ha enviado mensajes de texto o ha realizado llamadas telefónicas a un número, persona, lugar o punto de interés específicos y puede enviar esta información a un motor de observación.
Una "propiedad del sistema operativo", como se usa en este documento, se refiere a datos o información disponible de un sistema operativo. Por ejemplo, se puede acceder a uno o más sensores de un móvil a través del sistema operativo. En consecuencia, una propiedad del sistema operativo puede incluir datos o información a los que se puede acceder a través de un sistema operativo, incluidos tanto (a) los datos o la información generados por el sistema operativo, como (b) los datos o la información accesibles a través del sistema operativo, aunque no necesariamente generados por este. Una propiedad del sistema operativo puede incluir, por ejemplo, información disponible desde o a través del sistema operativo, incluida información de diversos sensores, así como atributos del sistema operativo o dispositivo tal como el tipo, la versión, la memoria o la capacidad disponible de la batería, por nombrar solo algunos entre muchos ejemplos.
Un ejemplo de información o datos que pueden enviarse a un motor de observación puede incluir un escenario en el que un sistema operativo determine que el dispositivo móvil de un usuario ha cambiado de torre celular y que esto se considera (términos de Apple) un "cambio significativo" según el sistema operativo iPhone (IOS) de Apple™. Por ejemplo, un sistema operativo puede notificar al motor de observación que se ha producido un cambio en una torre celular de servicio. Tal notificación puede incluir una nueva ubicación estimada o coordenadas tales como latitud y longitud. El motor de observación puede utilizar esta información o datos (y también puede solicitar otra información o datos) para estimar una situación actual. Este proceso puede, por ejemplo, comprender una alimentación relativamente continua de eventos que se envían al motor de observación.
Un ejemplo de información o datos que puede extraer un motor de observación puede incluir un escenario en el que el motor de observación ha estado ejecutando un temporizador y determinó que no ha verificado si algo ha cambiado dentro de un período de tiempo particular, tal como en los últimos cinco minutos. Un motor de observación puede extraer o solicitar, desde el sistema operativo, la latitud/longitud o altitud actual, por nombrar solo un par de ejemplos, y puede usar esta información o datos para estimar su circunstancia actual.
A continuación, en el cuadro A, se muestran ejemplos de diversas circunstancias y respuestas o acciones deseadas.
Cuadro A
Circunstancia Respuesta o acción deseada
El usuario está en el estacionamiento de una gran Informar al usuario sobre las ofertas disponibles en esa tienda ubicación específica de la gran tienda
El usuario acaba de salir de una gran tienda Solicitar al usuario que realice una encuesta sobre su experiencia de compra
El usuario visita la misma cafetería tres días seguidos Preguntar si el usuario quiere reservar un café para el viaje de mañana
El usuario está en el tráfico y se ha desviado de una Preguntar si el usuario quiere café de un Starbucks ruta normal al trabajo alternativo que pronto pasará
El usuario pronto dejará un concierto al que viajó en Avisar para llamar a un viaje a casa
viaje compartido
Como se muestra en el cuadro A, diversos ejemplos de circunstancias y respuestas o acciones deseadas incluyen (a) si el usuario está en el estacionamiento de una gran tienda, informar al usuario sobre las ofertas disponibles en esa ubicación específica de la gran tienda; (b) si el usuario acaba de salir de una gran tienda, solicitar al usuario que realice una encuesta sobre su experiencia de compra; (c) si el usuario visita la misma cafetería tres días seguidos, pregúntele si desea pedir un café por adelantado para el viaje de mañana; (d) si el usuario está en el tráfico y se ha desviado de una ruta normal al trabajo, entonces preguntar si el usuario quiere café de un Starbucks alternativo por el que pasará pronto; y (e) si el usuario se irá pronto de un concierto al que viajó en un viaje compartido, se le pedirá que llame a un viaje a casa. Un desarrollador puede elegir las circunstancias y las respuestas o acciones deseadas en la operación 210, por ejemplo, transmitiendo un mensaje para ser recibido o cargado en un motor de observación de una aplicación en el dispositivo móvil del usuario en la operación 215.
La figura 3 ilustra un dispositivo 300 móvil según una realización. Como se muestra, el dispositivo 300 móvil puede ejecutar o poner en marcha, tal como a través de un procesador, una aplicación 310 de desarrollador. La aplicación 310 de desarrollador puede incluir un motor 305 de observación. Como se discutió anteriormente, un SDK que comprende el motor 305 de observación puede agregarse o añadirse de otro modo a la aplicación 310 de desarrollador.
La figura 4 ilustra un proceso 400 para un motor de observación para monitorizar un dispositivo móvil para detectar una ocurrencia de una o más circunstancias específicas de acuerdo con una realización. Las realizaciones según el tema reivindicado pueden incluir todos, menos o más de los bloques 405-425. Además, el orden de los bloques 405­ 425 es simplemente un orden de ejemplo.
En la operación 405, la salida del sensor, tal como mediciones u otros datos, tales como sensores que indican el movimiento de un dispositivo móvil, y las propiedades del sistema operativo, se monitorizan y procesan, como se explicó anteriormente. La salida del sensor puede incluir, por ejemplo, una lectura o medición de un acelerómetro o una estimación de ubicación, tal como coordenadas geográficas, que pueden incluir coordenadas de latitud/longitud. Las propiedades del sistema operativo pueden incluir información enviada desde un sistema operativo a un motor de observación, o extraída por el motor de observación del sistema operativo, como se mencionó anteriormente. En la operación 410, las observaciones se determinan basándose, al menos en parte, en la salida del sensor procesada y las propiedades del sistema operativo. En la operación 415, se determina si se han detectado circunstancias específicas o definidas basándose, al menos en parte, en las observaciones. Como se discutió anteriormente, las circunstancias pueden ser especificadas, definidas o identificadas a priori por un desarrollador de software. Si no se detectan circunstancias en la operación 415, entonces el procesamiento vuelve a la operación 405. Sin embargo, si se detectan circunstancias en la operación 415, entonces las circunstancias detectadas se almacenan en un registro en una memoria u otro dispositivo de almacenamiento junto con un tiempo de detección en la operación 420. La información almacenada en un registro puede transmitirse periódicamente a un servidor u otro dispositivo para su análisis, tal como mediante un desarrollador de la aplicación. Por ejemplo, un desarrollador de aplicaciones puede modificar las directivas que indican qué devoluciones de llamada particulares u otra respuesta realizar al menos parcialmente en respuesta a la detección de circunstancias basándose, al menos en parte, en la información de un registro.
En la operación 425, se inicia una devolución de llamada para invocar una función particular. Por ejemplo, si un desarrollador tiene una aplicación de viajes compartidos y las circunstancias o condiciones detectadas indican que un usuario está abandonando un evento y puede estar listo para volver a casa, se puede iniciar una devolución de llamada a la aplicación de viajes compartidos de un desarrollador.
Como se discutió anteriormente, las circunstancias pueden ser identificadas o seleccionadas por un desarrollador de aplicaciones, tal como mediante la carga del desarrollador o proporcionando definiciones de circunstancias, tal como a través de una cadena. Una cadena creada para las circunstancias puede comprender un identificador arbitrario, una palabra, una etiqueta u otro conjunto de bytes definido por un desarrollador cuando se crea una regla de circunstancias. No es necesario que una regla de circunstancias sea única, por lo que se pueden unir varias reglas para obtener un resultado uniforme.
Como se analiza en este documento, un dispositivo móvil o algún otro tipo de dispositivo puede ejecutar algún sistema operativo. Los datos del sensor pueden obtenerse mediante un motor de observación del sistema operativo, y los datos del sensor pueden procesarse para determinar una o más "observaciones". Dichas observaciones pueden ser procesadas para determinar si se ha cumplido una determinada circunstancia y, de ser así, esta determinación puede anotarse en un registro histórico, tal como en una memoria. En una realización, puede haber una razón mínima para alertar a un usuario, tal como si se determina que el usuario tiene ciertas coordenadas geográficas de latitud/longitud que corresponden a un lugar o punto de interés particular, tal como un Starbucks™ particular.
En una realización, se puede proporcionar un servicio en el que una aplicación de organización puede consultar para determinar si un usuario de un dispositivo móvil ha cumplido una circunstancia específica o un conjunto de circunstancias, por ejemplo.
Las tablas B-F, como se muestra a continuación, ilustran información diversa para las circunstancias, tales como categoría, título o nombre, y definiciones para las circunstancias.
La Tabla B ilustra las circunstancias con base en la actividad de un usuario. Como se muestra a continuación, "Llegó" puede indicar que un usuario se encuentra en un lugar en particular. "Partió" puede indicar que un usuario ha dejado un lugar en particular. "Es probable que llegue pronto" puede indicar que se predice que el usuario llegará "pronto" a un lugar, donde esta predicción puede basarse en la velocidad, la hora de inicio de un evento conocido y que un usuario se encuentra en un lugar en particular. "Probable partida pronto" puede indicar que se prevé que el usuario abandonará un lugar "pronto", donde esta predicción puede basarse en ítems tales como el tiempo de permanencia promedio, la velocidad y las horas de cierre. "Cerca" puede requerir un parámetro de ajuste tal como "caminable", "conducible" o 400m. "Es probable que pase pronto" puede basarse en la velocidad, la dirección y el trayecto conocido. "Desviarse de la ruta común" puede representar una desviación del trayecto de viaje regular de un usuario, con base en la velocidad y la dirección.
Tabla B
Categoría mbre Definición
Actividad
Figure imgf000009_0001
El usuario está en un lugar
Partió El usuario ha dejado un lugar
Es probable que llegue pronto Se predice que el usuario llegará a un lugar "pronto". La predicción puede basarse en la velocidad, la hora de inicio de un evento conocido, etc.
Probable partida pronto Se predice que el usuario se irá a un lugar "pronto". La predicción puede basarse en el tiempo de permanencia promedio, la velocidad, las horas de cierre, etc.
(continuación)
Categoría Título/nombre Definición
Puede requerir un parámetro de ajuste como "caminable",
Figure imgf000010_0002
"conducible", 400 m, etc.
Es probable que pase pronto Puede basarse en la velocidad, la dirección y el trayecto conocido
Desviarse de la ruta común Si rastrea cosas como el trayecto de viaje regular del usuario, esto representaría una desviación de ese trayecto
La Tabla C ilustra las circunstancias con base en la ubicación de un usuario. Como se muestra a continuación, "POI específico" puede indicar que un usuario se encuentra en un lugar particular con base en un ID. "POI por categoría" puede indicar que un usuario se encuentra en un lugar identificado por una categoría. "POI de cadena" puede indicar que su lugar está identificado por un ID de cadena particular. "En AOA común" puede indicar que un usuario se encuentra en un lugar determinado con base en la información de una fuente de información sobre un usuario de dispositivo (en adelante, "fuente de audiencia"), tal como, por ejemplo, un servidor, memoria o base de datos que puede almacenar información sobre una audiencia conocida o prevista de un usuario en particular. "Casa" puede indicar que un usuario se encuentra en una ubicación determinada con base en la información de fuente de audiencia. "Trabajo" puede indicar que un usuario se encuentra en una ubicación determinada con base en la información de fuente de audiencia.
Tabla C
Categoría Título/nombre Definición
Ubicación POI específico Lugar verificado por ID
POI por categoría Lugar identificado por una categoría
POI de cadena Lugar identificado por ID de cadena verificada En AOA común Con base en información de fuente de audiencia
Casa Con base en información de fuente de audiencia
Trabajo Con base en información de fuente de audiencia
La Tabla D ilustra las circunstancias con base en las condiciones de ubicación (condiciones presentes potencialmente superpuestas). Como se muestra a continuación, "(no) está abierto ahora" puede indicar que un lugar o punto de interés, tal como un negocio o lugar, no está abierto y puede determinarse a partir de un indicador de horas de operación de una fuente de información sobre lugares o puntos de interés (en adelante, "fuente de lugares de interés"), tal como, por ejemplo, un servidor, memoria o base de datos que puede almacenar información sobre una información conocida o prevista sobre una ubicación, tal como un lugar o una estructura. "Actualmente está organizando un evento" puede indicar que un lugar o punto de interés está actualmente organizando un evento, tal como un concierto o una reunión, por ejemplo, y puede determinarse a partir de una fuente de información sobre eventos (en adelante, "fuente del evento"), tal como, por ejemplo, un servidor, memoria o base de datos que puede almacenar información sobre una información conocida o prevista sobre un evento. "Actualmente está organizando un evento de una categoría específica" puede indicar si un lugar o punto de interés actualmente está organizando un evento, tal como una fiesta privada, por ejemplo, y puede determinarse a partir de la información de la fuente del evento. "Cualquier condición de lugar (por ejemplo, calificación, rango de lugar, coste, etc.)" puede indicar la presencia de una calificación particular, tal como una calificación de 5 estrellas para un restaurante o lugar de interés, por ejemplo, y puede determinarse a partir de la información. de una fuente de lugares de interés.
Tabla D
Categoría Título/nombre Definición
Figure imgf000010_0001
Condiciones de ubicación (No) está abierto ahora Usando el indicador de horas de (condiciones potencialmente operación de fuentes de lugares de superpuestas presentes) interés
(continuación)
Categoría Título/nombre Definición Actualmente está organizando un De la información de la fuente del evento evento
Actualmente está organizando un De la información de la fuente del evento de una categoría específica evento
Cualquier condición de lugar (por De información de fuentes de ejemplo, calificación, rango de lugar, lugares de interés
coste, etc.)
La Tabla E ilustra las circunstancias con base en las condiciones de movilidad (esto puede comprender un arreglo de condiciones potencialmente superpuestas). Como se muestra a continuación, "caminar" puede determinarse con base en las mediciones del sensor desde un dispositivo móvil de un usuario. Las mediciones del sensor pueden, por ejemplo, incluir mediciones que pueden indicar movimiento, tales como mediciones de un acelerómetro o giroscopio o estimaciones de ubicación para un dispositivo móvil y/o un usuario del dispositivo móvil o algún otro dispositivo, tal como las coordenadas del sistema de posicionamiento global (GPS). "En carro" puede determinarse con base en las mediciones del sensor. "Volar" puede determinarse con base en las mediciones del sensor. "En bus" puede determinarse con base en las mediciones del sensor. "En metro/tren" puede determinarse con base en las mediciones del sensor. "En bicicleta" puede determinarse con base en las mediciones del sensor. "En el tráfico" se puede determinar con base en las mediciones del sensor, tales como las estimaciones de ubicación o los datos del acelerómetro para un dispositivo móvil que indica el movimiento de forma intermitente. "Detenido" se puede determinar con base en las mediciones del sensor, tal como las estimaciones de ubicación o los datos del acelerómetro. "Ejecutar" se puede determinar con base en las mediciones del sensor. "En ascensor" puede determinarse con base en las mediciones del sensor. "Deambular" se puede determinar con base en caminar sin dirección de forma intermitente que se asemeja a las compras minoristas.
Tabla E
Categoría Título/nombre Definición
Figure imgf000011_0001
Condiciones de movilidad (esta es un arreglo de Caminar Con base en mediciones de sensores condiciones potencialmente superpuestas)
En carro Con base en mediciones de sensores Volar Con base en mediciones de sensores En bus Con base en mediciones de sensores En metro/tren Con base en mediciones de sensores En bicicleta Con base en mediciones de sensores En el tráfico En coche, moviéndose de forma intermitente
Detenido Sin movimiento
Ejecutar Con base en mediciones de sensores En ascensor Con base en mediciones de sensores Deambular Caminar sin dirección de forma intermitente que se asemeja a las compras minoristas
La Tabla F ilustra las circunstancias con base en las condiciones temporales (arreglo de superposiciones potenciales). Como se muestra a continuación, "Rango de fecha/hora" puede significar que la hora se encuentra dentro de una fecha y/u hora de finalización especificada. "Día recurrente de la semana" puede significar que el día es un día específico de la semana, tal como "miércoles". "Día recurrente del mes" puede significar que el día es un día específico del mes, tal como "el primero de cada mes". "Día del día recurrente" puede significar que la hora del día es una hora específica del día, tal como "13:00". "Hora pico" puede significar que la hora del día se encuentra dentro de un cierto cálculo aproximado, tal como de 7 a 9 a.m. o de 4 a 6 p.m. "Luz de día" puede significar que hay luz de día y puede determinarse con base en la información local con base en las coordenadas de latitud/longitud.
"Supera el tiempo de permanencia especificado" puede significar que el usuario ha estado en la misma ubicación durante más de un umbral de tiempo.
Tabla F
Categoría Título/nombre Definición
Condiciones temporales (arreglo de Rango de fecha/hora Entre una fecha y hora especificadas/de superposiciones potenciales) finalización
Día recurrente de la Por ejemplo, "miércoles"
semana
Día recurrente del mes Por ejemplo, "el 1 de cada mes"
Hora recurrente del día Por ejemplo, "13:00"
Figure imgf000012_0001
Un motor de observación de una aplicación puede monitorizar o mantener un registro actual o en ejecución de actividades, visitas y circunstancias generales y las horas del día correspondientes en las que se observan las circunstancias.
Como se discutió anteriormente, una circunstancia puede indicar que un usuario está cerca, llega o sale de un lugar o evento específico. Los lugares pueden incluir lugares específicos (por ejemplo, Madison Square Garden, LAX); categorías de lugares (por ejemplo, todos los Starbucks, bares deportivos, centros comerciales); relativo al usuario (por ejemplo, casa, trabajo, lugares visitados comúnmente); o lugares que organizan eventos (por ejemplo, CES, juegos de los Lakers, conciertos), por nombrar solo algunos ejemplos. Una circunstancia también puede indicar que un usuario ha cambiado de actividad, tal como andar a pie, deambular, en coche, en avión, en tren, en bus, en bicicleta o en el tráfico, por citar solo algunos ejemplos.
Un motor de observación puede observar diversas combinaciones de lo anterior, tal como (a) en un carro y saliendo del trabajo; (b) conduciendo o en un bus y en el tráfico; o (c) no está en casa, por ejemplo.
Un motor de observación puede usar el aprendizaje de máquina para procesar una amplia variedad de señales e interpretar dónde están los usuarios y qué están haciendo de la manera más significativa. A medida que un motor de observación procesa más información o datos, un modelo puede seguir mejorando. Si una coordenada geográfica indica que un usuario está en un bar, un motor de observación puede interpretar que el usuario pronto dejará el bar y probablemente busque un taxi.
Un motor de observación puede tener una integración relativamente estrecha con un dispositivo móvil para que las señales puedan adquirirse o reunirse de manera eficiente. Un motor de aprendizaje de máquina del lado del cliente puede evaluar una ubicación. Un motor de observación puede utilizar la detección de actividad del acelerómetro. Las actualizaciones inalámbricas de un motor de observación pueden ayudar en la administración de potencia, la configuración de privacidad y los modelos de aprendizaje de máquina.
Si se cumple o detecta una circunstancia, se puede notificar a la aplicación de un desarrollador con una devolución de llamada. Dicha devolución de llamada puede incluir una cadena que identifique una circunstancia detectada, así como un objeto que contenga toda de la diversa información o metadatos (por ejemplo, la actividad, ubicación, etc.) y un momento en el que se detectó la circunstancia (tal como un tiempo de época, o segundos o tiempo desde el inicio, por ejemplo).
Un objetivo de un desarrollador de aplicaciones puede ser usar actualizaciones OTA para cambiar entre estrategias de detección. Un sistema OTA puede contener una configuración que comprende: (a) ajustar la recopilación de información (con qué frecuencia sondear, qué tipo de servicios de ubicación usar, qué otros servicios sondear, etc.); (b) ajustar la privacidad (lo que debe y no debe recopilarse, o cuándo se debe aplicar un indicador de no rastrear a los datos que se recopilan); (c) Información de configuración o datos para mediciones de sensores indicativas de ciertos tipos de movimientos o actividades; (d) información o datos de configuración para un lugar adjunto; y/o (e) Información o datos de configuración para el motor de reglas de circunstancias.
Un motor de observación puede tener una configuración predeterminada incluida cuando se implementa en una aplicación. Esta configuración predeterminada puede ser definida por un desabollador. Una configuración predeterminada puede comprender una configuración general, tal como ajustada para una aplicación y un sistema operativo.
Si la aplicación de un desarrollador se inicia o comienza a ejecutarse o a poner en marcha por primera vez en un dispositivo móvil, la aplicación del desarrollador puede solicitar información de configuración, tal como un archivo de configuración, a través de una API de configuración. Una solicitud de configuración de API puede proporcionar ciertos parámetros, tal como un sistema operativo (OS), el número de versión del OS, el nombre del operador de telefonía celular y el código de país, el identificador de usuario (Id), la localidad, el idioma y la clave de API. Un servicio web puede, por ejemplo, devolver o proporcionar un objeto de configuración adecuado, tal como el adquirido de una base de datos o un servidor. En inicios posteriores, una aplicación de desarrollador puede determinar si ha pasado más de una cierta cantidad de tiempo, tal como 24 horas, desde que se recibió el objeto de configuración anterior. Si es así, la aplicación de un desarrollador puede verificar si hay una configuración más nueva disponible y, de ser así, obtenerla.
Se puede utilizar un ID de dispositivo persistente para solicitudes de base de datos de información tal como información relacionada con una base de datos de audiencia. Este ID se puede usar para vincular solicitudes de modo que se puedan observar tendencias a largo plazo para ayudar a mejorar la calidad de un motor de observación.
Algunas porciones de la descripción detallada se presentan en este documento en términos de algoritmos o representaciones simbólicas de operaciones en señales digitales binarias almacenadas dentro de una memoria de un aparato específico o plataforma o dispositivo informático de propósito especial. En el contexto de esta especificación particular, la expresión aparato específico o similar incluye un ordenador de uso general una vez que se programa para realizar funciones particulares según las instrucciones del software del programa. Las descripciones algorítmicas o las representaciones simbólicas son ejemplos de técnicas utilizadas por los expertos en procesamiento de señales o técnicas relacionadas para transmitir la esencia de su trabajo a otros expertos en la técnica. Un algoritmo se considera aquí, y en general, como una secuencia autoconsistente de operaciones o un procesamiento de señal similar que conduce a un resultado deseado. En este contexto, las operaciones o el procesamiento involucran la manipulación física de cantidades físicas. Típicamente, aunque no necesariamente, tales cantidades pueden tomar la forma de señales eléctricas o magnéticas capaces de ser almacenadas, transferidas, combinadas, comparadas o manipuladas de otra manera.
A veces ha resultado conveniente, principalmente por razones de uso común, referirse a tales señales como bits, datos, valores, elementos, símbolos, caracteres, expresiones, números, numerales o similares. Debe entenderse, sin embargo, que todos estas expresiones o similares deben asociarse con cantidades físicas apropiadas y son meramente etiquetas convenientes. A menos que se indique específicamente lo contrario, como se desprende de la siguiente discusión, se aprecia que a lo largo de esta especificación, las discusiones que utilizan expresiones tales como "procesamiento", "computación", "cálculo", "determinación" o similares se refieren a acciones o procesos de un aparato específico, tal como un ordenador de propósito especial o un dispositivo informático electrónico de propósito especial similar. En el contexto de esta especificación, por lo tanto, un ordenador de propósito especial o un dispositivo informático electrónico de propósito especial similar es capaz de manipular o transformar señales, típicamente representadas como cantidades físicas electrónicas o magnéticas dentro de memorias, registros u otros dispositivos de almacenamiento de información, dispositivos de transmisión, o dispositivos de visualización del ordenador de propósito especial o dispositivo informático electrónico de propósito especial similar.
Debe entenderse que para facilitar la descripción, un dispositivo de red (también denominado dispositivo de red) puede incorporarse y/o describirse en términos de un dispositivo informático. Sin embargo, debe entenderse además que esta descripción no debe interpretarse de ninguna manera como que el tema reivindicado se limita a una realización, tal como un dispositivo informático y/o un dispositivo de red, y, en su lugar, puede incorporarse como una variedad de dispositivos o combinaciones de los mismos, incluidos, por ejemplo, uno o más ejemplos ilustrativos.
Asimismo, en este contexto, se utilizan de forma genérica las expresiones "acoplado", "conectado" y/o expresiones similares. Debe entenderse que estas expresiones no pretenden ser sinónimos. Más bien, "conectado" se usa genéricamente para indicar que dos o más componentes, por ejemplo, están en contacto físico directo, incluido el eléctrico; mientras que "acoplado" se usa genéricamente para indicar que dos o más componentes están potencialmente en contacto físico directo, incluido el eléctrico; sin embargo, "acoplado" también se usa genéricamente para significar que dos o más componentes no están necesariamente en contacto directo, pero no obstante pueden cooperar y/o interactuar. La expresión acoplado también se entiende genéricamente para significar conectado indirectamente, por ejemplo, en un contexto apropiado.
Las expresiones, "y", "o", "y/o" y/o expresiones similares, como se usa en este documento, incluyen una variedad de significados que también se espera que dependan, al menos en parte, del contexto particular en el que se usan dichas expresiones. Por lo general, "o" si se usa para asociar una lista, tal como A, B o C, significa A, B y C, aquí usados en el sentido inclusivo, así como A, B o C, aquí usados en sentido exclusivo. Además, la expresión "uno o más" y/o expresiones similares se usa para describir cualquier rasgo, estructura y/o característica en singular y/o también se usa para describir una pluralidad y/o alguna otra combinación de rasgos, estructuras y/o características. Asimismo, se entiende que la expresión "con base en" y/o expresiones similares no necesariamente pretenden transmitir un conjunto exclusivo de factores, sino que permiten la existencia de factores adicionales no necesariamente descritos expresamente. Por supuesto, para todo lo anterior, el contexto particular de descripción y/o uso proporciona una guía útil con respecto a las inferencias que se deben extraer. Cabe señalar que la siguiente descripción simplemente proporciona uno o más ejemplos ilustrativos y el tema reivindicado no se limita a estos uno o más ejemplos ilustrativos; sin embargo, nuevamente, el contexto particular de descripción y/o uso proporciona una guía útil con respecto a las inferencias que se deben extraer.
Una red también puede incluir disposiciones, derivados y/o mejoras ahora conocidos y/o que se desarrollarán más adelante, incluidos, por ejemplo, almacenamiento masivo pasado, presente y/o futuro, tal como almacenamiento adjunto a la red (NAS), una red de área de almacenamiento (SAN) y/u otras formas de computación y/o medios legibles por dispositivos, por ejemplo. Una red puede incluir una porción de internet, una o más redes de área local (LAN), una o más redes de área amplia (WAN), conexiones de tipo alámbrico, conexiones de tipo inalámbrico, otras conexiones o cualquier combinación de las mismas. Por lo tanto, una red puede tener un alcance y/o una extensión mundial. Del mismo modo, las subredes, que pueden emplear diferentes arquitecturas y/o pueden ser sustancialmente compatibles con diferentes protocolos, tales como protocolos informáticos y/o de comunicación (por ejemplo, protocolos de red), pueden interoperar dentro de una red más grande. En este contexto, la expresión subred y/o expresiones similares, si se usan, por ejemplo, con respecto a una red, se refieren a la red y/o una parte de la misma. Las subredes también pueden comprender enlaces, tales como enlaces físicos, nodos de conexión y/o acoplamiento, tal como para poder transmitir paquetes de señales y/o tramas entre dispositivos de nodos particulares, incluidos enlaces cableados, enlaces inalámbricos o combinaciones de los mismos. Diversos tipos de dispositivos, tales como dispositivos de red y/o dispositivos informáticos, pueden estar disponibles para que la interoperabilidad de los dispositivos esté habilitada y/o, al menos en algunos casos, puede ser transparente para los dispositivos. En este contexto, la expresión transparente se refiere a dispositivos, tales como dispositivos de red y/o dispositivos informáticos, que se comunican a través de una red en la que los dispositivos pueden comunicarse a través de dispositivos intermedios de un nodo, pero sin que los dispositivos de comunicación especifiquen necesariamente uno o más dispositivos intermedios de uno o más nodos y/o pueden incluir la comunicación como si los dispositivos intermedios de los nodos intermedios no estuvieran necesariamente involucrados en las transmisiones de comunicación. Por ejemplo, un enrutador puede proporcionar un enlace y/o conexión entre LAN independientes y/o separadas. En este contexto, una red privada se refiere a un conjunto particular y limitado de dispositivos de red capaces de comunicarse con otros dispositivos de red en el conjunto particular y limitado, tales como a través de paquetes de señales y/o transmisiones de tramas, por ejemplo, sin necesidad de reencaminar y/o redireccionar transmisiones. Una red privada puede comprender una red independiente; sin embargo, una red privada también puede comprender un subconjunto de una red más grande, tal como, por ejemplo, sin limitación, la totalidad o una porción de internet. Así, por ejemplo, una red privada "en la nube" puede referirse a una red privada que comprende un subconjunto de internet, por ejemplo. Aunque las transmisiones de tramas y/o paquetes de señales pueden emplear dispositivos intermedios de nodos intermedios para intercambiar transmisiones de tramas y/o paquetes de señales, esos dispositivos intermedios pueden no estar necesariamente incluidos en la red privada al no ser una fuente o destino para uno o más paquetes de señales y/o transmisiones de tramas, por ejemplo. Se entiende en este contexto que una red privada puede proporcionar comunicaciones de red salientes a dispositivos que no están en la red privada, pero los dispositivos fuera de la red privada no necesariamente pueden dirigir comunicaciones de red entrantes a dispositivos incluidos en la red privada.
Como se usa en este documento, la expresión "anuncio" y/o expresiones similares se refiere a señales y/o estados en un formato físico, tal como una señal digital y/o un formato de estado digital, por ejemplo, que puede ser percibido por un usuario si se visualiza, reproduce y/o ejecuta de otro modo mediante un dispositivo, tal como un dispositivo digital, incluido, por ejemplo, un dispositivo informático, pero que de otro modo no necesariamente puede ser percibido por humanos (por ejemplo, en un formato digital). Además, para una o más realizaciones, los componentes pueden comprender un objeto gráfico, tal como, por ejemplo, una imagen, tal como una imagen digital, y/o subobjetos, tales como sus atributos, que, nuevamente, comprenden señales físicas y/o estados físicos (por ejemplo, capaces de visualizarse físicamente). En una realización, el contenido puede comprender, por ejemplo, texto, imágenes, audio, video y/u otros tipos de documentos electrónicos y/o porciones de los mismos, por ejemplo.
Si bien se han descrito y mostrado ciertas técnicas de ejemplo en este documento usando diversos métodos y sistemas, los expertos en la técnica deben entender que se pueden realizar otras diversas modificaciones y se pueden sustituir equivalentes, sin apartarse del tema reivindicado.

Claims (15)

REIVINDICACIONES
1. Un método de detección de circunstancias para un usuario de un dispositivo (105) móvil, el método que comprende:
ejecutar (225) por uno o más procesadores (130) del dispositivo (105) móvil, un programa de aplicación para ser utilizado por un usuario del dispositivo (105) móvil, el programa de aplicación que comprende un código ejecutable para realizar una función, tarea o actividad para el usuario, que comprende además el programa de aplicación un kit de desarrollo de software que comprende un motor de observación,
recibir por el dispositivo (105) móvil una o más directivas que indican que se va a invocar una función específica tras la detección de circunstancias específicas relacionadas con las acciones de un usuario, el motor de observación procesa (405) al menos uno de:
salida de sensor de uno o más sensores o al menos una propiedad del sistema operativo de un sistema operativo del dispositivo (105) móvil;
determinar (410) una o más observaciones a partir de al menos una de las salidas del sensor o al menos una propiedad del sistema operativo;
determinar (415) si se detectan una o más circunstancias especificadas dentro de una o más observaciones; almacenar (420), en una memoria (135), un registro de una detección de una o más circunstancias especificadas; y
indicar al programa de aplicación que el programa de aplicación debe invocar (425), con base en una o más directivas relacionadas con las circunstancias especificadas, la función especificada del dispositivo (105) móvil, al menos parcialmente en respuesta a la detección de una o más circunstancias especificadas.
2. El método de la reivindicación 1, que comprende además recibir, de un desarrollador de aplicaciones, un conjunto de una o más circunstancias especificadas.
3. El método de la reivindicación 1, en donde la al menos una propiedad del sistema operativo es enviada desde el sistema operativo al motor de observación o extraída por el motor de observación del sistema operativo.
4. El método de la reivindicación 1, en donde al menos una salida del sensor comprende una medición del acelerómetro o coordenadas geográficas estimadas.
5. El método de la reivindicación 1, en donde una o más circunstancias especificadas comprenden una actividad, ubicación, una o más condiciones de ubicación, una o más condiciones de movilidad, o una o más condiciones temporales.
6. El método de la reivindicación 1, que comprende además recibir un mensaje por aire (OTA) para actualizar una o más directivas de una o más circunstancias específicas a detectar.
7. El método de la reivindicación 2, que comprende además determinar si un usuario del dispositivo (105) móvil ha cumplido una circunstancia específica o un conjunto de circunstancias en respuesta a una consulta de la aplicación.
8. Un dispositivo (105) móvil, que comprende:
un receptor (125) para recibir una o más señales electrónicas de una red de comunicación electrónica, las señales que comprenden una o más directivas que indican que se va a invocar una función específica tras la detección de circunstancias específicas relacionadas con las acciones de un usuario;
una memoria (135) para almacenar información de estado que comprende una o más señales electrónicas; y un procesador (130) para ejecutar (225) un programa de aplicación para ser utilizado por el usuario del dispositivo (105) móvil, el programa de aplicación que comprende un código ejecutable para realizar una función, tarea o actividad para el usuario, que comprende además el programa de aplicación un kit de desarrollo de software que comprende un motor de observación configurado para:
procesar (405) al menos uno de: salida de sensor de uno o más sensores y al menos una propiedad del sistema operativo de un sistema operativo del dispositivo (105) móvil;
determinar (410) una o más observaciones a partir de al menos una de las salidas del sensor o al menos una propiedad del sistema operativo;
determinar (415) si se detectan una o más circunstancias especificadas dentro de una o más observaciones; almacenar (420), en la memoria (135), un registro de una detección de una o más circunstancias especificadas; e indicar al programa de aplicación que el programa de aplicación debe invocar (425), con base en una o más directivas relacionadas con las circunstancias especificadas, la función especificada, del dispositivo (105) móvil, al menos parcialmente en respuesta a la detección de una o más circunstancias especificadas.
9. El dispositivo (105) móvil de la reivindicación 8, en donde el procesador (130) debe procesar un conjunto de una o más circunstancias específicas recibidas de un desarrollador de aplicaciones.
10. El dispositivo (105) móvil de la reivindicación 8, en donde una o más circunstancias especificadas comprenden una actividad, ubicación, una o más condiciones de ubicación, una o más condiciones de movilidad o una o más condiciones temporales.
11. El dispositivo (105) móvil de la reivindicación 8, en donde el procesador (130) debe procesar adicionalmente un mensaje por aire (OTA) recibido para actualizar una o más directivas de una o más circunstancias específicas a detectar.
12. Un producto de programa informático, que comprende:
un medio de almacenamiento que comprende un programa de aplicación que comprende instrucciones legibles por máquina ejecutables por un aparato informático de propósito especial de un dispositivo (105) móvil para realizar una función, tarea o actividad para un usuario del dispositivo (105) móvil, el programa de aplicación que comprende además:
un kit de desarrollo de software que comprende un motor de observación que tiene instrucciones legibles por máquina ejecutables para:
procesar (405) al menos uno de: salida de sensor de uno o más sensores y al menos una propiedad del sistema operativo de un sistema operativo del dispositivo (105) móvil;
determinar (410) una o más observaciones a partir de al menos una de las salidas del sensor o al menos una propiedad del sistema operativo;
determinar (415) si se detectan una o más circunstancias especificadas dentro de una o más observaciones; almacenar (420), en una memoria (135), un registro de una detección de una o más circunstancias especificadas; y
generar una o más señales digitales binarias para indicar que se va a invocar (425) el programa de aplicación, con base en una o más directivas que indican que se va a invocar una función especificada tras la detección de circunstancias especificas relacionadas con las acciones de un usuario, una función especificada, del dispositivo móvil, al menos parcialmente en respuesta a la detección de una o más circunstancias especificadas.
13. El producto de la reivindicación 12, en donde las instrucciones legibles por máquina son además ejecutables por el aparato informático de propósito especial para procesar un conjunto de una o más circunstancias específicas recibidas de un desarrollador de aplicaciones.
14. El producto de la reivindicación 12, en donde una o más circunstancias especificadas comprenden una actividad, ubicación, una o más condiciones de ubicación, una o más condiciones de movilidad, o una o más condiciones temporales.
15. El producto de la reivindicación 12, en donde las instrucciones legibles por máquina son además ejecutables por el aparato informático de propósito especial para procesar un mensaje por aire (OTA) recibido para actualizar parámetros o directivas de una o más circunstancias especificadas a detectar.
ES18171593T 2018-05-09 2018-05-09 Método y aparato para permitir que una aplicación detecte circunstancias específicas Active ES2930361T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
EP18171593.9A EP3567473B1 (en) 2018-05-09 2018-05-09 Method and apparatus for enabling an application to detect specified circumstances

Publications (1)

Publication Number Publication Date
ES2930361T3 true ES2930361T3 (es) 2022-12-09

Family

ID=62148234

Family Applications (1)

Application Number Title Priority Date Filing Date
ES18171593T Active ES2930361T3 (es) 2018-05-09 2018-05-09 Método y aparato para permitir que una aplicación detecte circunstancias específicas

Country Status (3)

Country Link
EP (1) EP3567473B1 (es)
ES (1) ES2930361T3 (es)
RS (1) RS63807B1 (es)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9495537B2 (en) * 2012-08-15 2016-11-15 Qualcomm Incorporated Adaptive observation of behavioral features on a mobile device

Also Published As

Publication number Publication date
RS63807B1 (sr) 2023-01-31
EP3567473A1 (en) 2019-11-13
EP3567473B1 (en) 2022-09-14

Similar Documents

Publication Publication Date Title
US12443404B2 (en) Method and apparatus for enabling an application to detect specified circumstances
US9900119B2 (en) Radiobeacon data sharing by forwarding low energy transmissions to a cloud host
US9721458B2 (en) Distributed sensor network
US20150087264A1 (en) Contextually Aware Mobile Device
US20170202180A1 (en) A self learning system for identifying status and location of pet animals
Liu et al. Location awareness through trajectory prediction
Dhinakaran et al. Secure android location tracking application with privacy enhanced technique
Haderer et al. Dynamic deployment of sensing experiments in the wild using smartphones
JP6912271B2 (ja) デバイス位置管理システム及びデバイス位置管理サーバ
KR101867548B1 (ko) 무선 신호 특성들에 기초한 이동 기기를 사용하여 사용자의 컨텍스트를 검색하는 방법
ES2930361T3 (es) Método y aparato para permitir que una aplicación detecte circunstancias específicas
HK40017413A (en) Method and apparatus for enabling an application to detect specified circumstances
HK40017413B (en) Method and apparatus for enabling an application to detect specified circumstances
Kumar et al. A novel approach for node localization in wireless sensor networks
Ardakani Wireless sensor network routing protocols for data aggregation
Tsubouchi et al. Parasitic location logging: Estimating users’ location from context of passersby
Meghana et al. Design of an Integrated System for Monitoring Weather and Traffic Based on Internet of Things
Kulshrestha et al. A fast and scalable crowd sensing based trajectory tracking system
Burkett et al. Low-Cost SMS Driven Location Tracking Platform Towards Anti-Poaching Efforts
Servizi et al. Context-Aware Sensing and Implicit Ground Truth Collection: Building a Foundation for Event Triggered Surveys on Autonomous Shuttles
Vivek et al. Smart-Child Tracking System with LoRa and GPS Technology
Pugliese et al. A Low‐Power Wearable IoMT System for Geofencing and Health Monitoring of Care‐Dependent Individuals: Design, Implementation and Field Testing
Förster et al. Application Case Studies for Opportunistic Networks
da Silva Machado On the social and spatiotemporal aspects for urban computing
Hadjioannou et al. On the comparison of location based software solutions used for tracking purposes in ambient assisted living applications