KR20180026406A - 모바일 디바이스의 위치 이력 레코드들의 제공, 조직화 및 관리 - Google Patents

모바일 디바이스의 위치 이력 레코드들의 제공, 조직화 및 관리 Download PDF

Info

Publication number
KR20180026406A
KR20180026406A KR1020177037847A KR20177037847A KR20180026406A KR 20180026406 A KR20180026406 A KR 20180026406A KR 1020177037847 A KR1020177037847 A KR 1020177037847A KR 20177037847 A KR20177037847 A KR 20177037847A KR 20180026406 A KR20180026406 A KR 20180026406A
Authority
KR
South Korea
Prior art keywords
mobile device
location history
location
information associated
applications
Prior art date
Application number
KR1020177037847A
Other languages
English (en)
Inventor
후이 차오
사우미트라 모한 다스
인 첸
Original Assignee
퀄컴 인코포레이티드
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 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20180026406A publication Critical patent/KR20180026406A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/029Location-based management or tracking services
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S5/00Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
    • G01S5/02Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using radio waves
    • G01S5/0252Radio frequency fingerprinting
    • G01S5/02521Radio frequency fingerprinting using a radio-map
    • G01S5/02524Creating or updating the radio-map
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0251Targeted advertisements
    • G06Q30/0254Targeted advertisements based on statistics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0251Targeted advertisements
    • G06Q30/0261Targeted advertisements based on user location
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0251Targeted advertisements
    • G06Q30/0269Targeted advertisements based on user profile or attribute
    • G06Q30/0271Personalized advertisement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/021Services related to particular areas, e.g. point of interest [POI] services, venue services or geofences

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Development Economics (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Game Theory and Decision Science (AREA)
  • Marketing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Resources & Organizations (AREA)
  • Probability & Statistics with Applications (AREA)
  • Educational Administration (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Telephonic Communication Services (AREA)
  • Telephone Function (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하기 위한 방법 및 시스템이 개시된다. 모바일 디바이스는 모바일 디바이스의 하나 또는 그 초과의 위치들에 기초하여 하나 또는 그 초과의 위치 이력 레코드들을 생성하고 ― 각각의 위치 이력 레코드는 하나 또는 그 초과의 관심 지점들 및 하나 또는 그 초과의 관심 지점들에서의 지속기간을 포함함 ― , 적어도 하나의 애플리케이션으로부터 정보 요청을 수신하고, 정보 요청으로부터의 기준들을 충족시키는 하나 또는 그 초과의 위치 이력 레코드들의 서브세트를 결정하고, 정보 요청 및 하나 또는 그 초과의 위치 이력 레코드들의 서브세트에 기초하여 적어도 하나의 애플리케이션에 대한 허가(permission)의 레벨을 결정하고, 그리고 허가의 레벨에 기초하여, 적어도 하나의 애플리케이션에 하나 또는 그 초과의 위치 이력 레코드들의 서브세트와 연관된 정보를 제공한다.

Description

모바일 디바이스의 위치 이력 레코드들의 제공, 조직화 및 관리
[001] 본원에서 개시된 양상들은 일반적으로 모바일 디바이스의 위치 이력 레코드를 제공, 조직화 및 관리하는 것에 관한 것이다.
[002] 일부 모바일 디바이스들(예를 들어, 스마트폰들, 태블릿 컴퓨터들 등)은 운영 체제들을 포함한다. 운영 체제는 모바일 디바이스 상에 설치된 애플리케이션 소프트웨어를 실행하도록 구성된다. 모바일 디바이스의 운영 체제를 사용하여 실행되도록 특별히 설계된 애플리케이션 소프트웨어 제품들(즉, 애플리케이션들)은 모바일 "앱들"로서 지칭될 수 있다.
[003] 이러한 애플리케이션들의 개발은 원래, 모바일 디바이스들의 휴대성을 이용하도록 모바일 디바이스들의 사용자들에 의해 요구되는 기능들에 초점을 맞췄다. 이러한 애플리케이션들은 모바일 디바이스들이 전자 메일(e-메일), 캘린더들, 개인 연락처 정보, 뉴스 정보, 주식 시장 정보 등을 지원하는 기능성을 제공할 수 있다. 지속적인 수요는 게임들, 공장 자동화(예를 들어, 기존 모바일 앱들의 업데이트들), 은행 업무, 주문-추적, 티켓 구매들, 건강 관련 문제 관리 등과 같은 카테고리들에서 모바일 디바이스들에 대한 애플리케이션들의 개발로 이어졌다.
[004] 일부 모바일 앱들은 모바일 디바이스의 센서와 상호작용할 수 있다. 예를 들어, 라디오 주파수 판매 시점(point of sale) 트랜잭션 센서는 상점에서 트랜잭션을 완료하기 위해 모바일 앱에 의해 사용될 수 있다. 예를 들어, 심박수 센서는 모바일 디바이스의 사용자의 심박수를 모니터링하고 보고하도록 모바일 앱에 의해 사용될 수 있다.
[005] 고도의 정밀도로 모바일 디바이스들의 위치를 결정하는 능력은 위치 데이터를 사용하여 피처들(features)을 제어하는 모바일 앱들의 카테고리인 위치-기반 서비스들의 개발로 이어졌다. 이러한 모바일 앱들의 값은, (1) 모바일 디바이스(및 확장하여, 모바일 디바이스의 사용자)와 애플리케이션(위치-기반 서비스를 제공하는 모바일 앱 또는 다른 모바일 앱 중 어느 하나)과 연관된 관심 지점 간의 근접도(degree of proximity)의 지식 및 (2) 이러한 지식으로부터 이루어질 수 있는 추론에 기초할 수 있다. 위치-기반 서비스들의 예들은 상품들 및/또는 서비스들의 특정 카테고리의 위치들, 기상 정보, 소셜 네트워킹 애플리케이션들(예를 들어, 개인의 위치를 추적함), 소포 추적, 턴-바이-턴 내비게이션(turn-by-turn navigation), 환경 경고들(예를 들어, 대기 중 고농도의 특정 알레르겐), 비상 원조에 대한 요청들을 전송하기 위한 서비스들 등을 식별하는 제품들을 포함(그러나 이에 제한되지 않음)할 수 있다.
[006] 특히, 소매상들 및/또는 다른 제 3 자들에 의해 모바일 디바이스용으로 개발된 애플리케이션들은 상품들 및/또는 서비스들의 특정 제공자들의 위치들을 식별하는 것과 관련된 위치-기반 서비스들, 위치-기반 광고, 위치-기반 프로모션들 등을 구현해왔다. 실행되는 동안, 이러한 모바일 앱은 위치에 기초하여 응답을 결정하기 위해 모바일 디바이스의 위치에 대한 요청을 전송할 수 있다. 실행되면, 이러한 모바일 앱은 또한 모바일 앱을 개발한 엔티티의 제어 하에서 서버에 모바일 디바이스의 위치를 전송할 수 있다.
[007] 다음은 모바일 디바이스의 위치 이력 레코드를 제공, 조직화 및 관리하기 위해 본원에서 개시된 매커니즘과 연관된 하나 또는 그 초과의 양상들 및/또는 실시예들에 관련된 단순화된 요약을 제공한다. 따라서, 다음의 요약은 모든 고려된 양상들 및/또는 실시예들과 관련된 광범위한 개관으로 고려되어서는 안 되며, 다음의 요약은 모든 고려된 양상들 및/또는 실시예들에 관련된 핵심적인 또는 중요한 엘리먼트들을 식별하거나 임의의 특정 양상 및/또는 실시예와 연관된 범위를 한정하기 위한 것으로 간주되어서는 안 된다. 따라서, 다음의 요약은 이하에 제시된 상세한 설명에 앞서 단순화된 형태로 본원에서 개시된 매커니즘들과 관련된 하나 또는 그 초과의 양상들 및/또는 실시예에 관련된 소정의 개념들을 제시하기 위한 유일한 목적을 갖는다
[008] 하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하는 방법은, 모바일 디바이스의 프로세서가, 모바일 디바이스의 하나 또는 그 초과의 위치들에 기초하여 하나 또는 그 초과의 위치 이력 레코드들을 생성하는 단계 ― 각각의 위치 이력 레코드는 하나 또는 그 초과의 관심 지점들 및 하나 또는 그 초과의 관심 지점들에서 모바일 디바이스의 지속기간을 포함함 ― , 모바일 디바이스의 프로세서에서, 하나 또는 그 초과의 애플리케이션들 중 적어도 하나의 애플리케이션으로부터 정보 요청을 수신하는 단계, 모바일 디바이스의 프로세서가, 정보 요청으로부터의 기준들을 충족시키는 하나 또는 그 초과의 위치 이력 레코드들의 서브세트를 결정하는 단계, 모바일 디바이스의 프로세서가, 정보 요청 및 하나 또는 그 초과의 위치 이력 레코드들의 서브세트에 기초하여 적어도 하나의 애플리케이션에 대한 허가(permission)의 레벨을 결정하는 단계, 및 모바일 디바이스의 프로세서가, 적어도 하나의 애플리케이션의 허가의 레벨에 기초하여, 적어도 하나의 애플리케이션에 하나 또는 그 초과의 위치 이력 레코드들의 서브세트와 연관된 정보를 제공하는 단계를 포함한다.
[009] 하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하기 위한 장치는, 모바일 디바이스의 하나 또는 그 초과의 위치들에 기초하여 하나 또는 그 초과의 위치 이력 레코드들을 생성하고 ― 각각의 위치 이력 레코드는 하나 또는 그 초과의 관심 지점들 및 하나 또는 그 초과의 관심 지점들에서 모바일 디바이스의 지속기간을 포함함 ― , 하나 또는 그 초과의 애플리케이션들 중 적어도 하나의 애플리케이션으로부터 정보 요청을 수신하고, 정보 요청으로부터의 기준들을 충족시키는 하나 또는 그 초과의 위치 이력 레코드들의 서브세트를 결정하고, 정보 요청 및 하나 또는 그 초과의 위치 이력 레코드들의 서브세트에 기초하여 적어도 하나의 애플리케이션에 대한 허가의 레벨을 결정하고, 그리고 적어도 하나의 애플리케이션의 허가의 레벨에 기초하여, 적어도 하나의 애플리케이션에 하나 또는 그 초과의 위치 이력 레코드들의 서브세트와 연관된 정보를 제공하도록 구성된 적어도 하나의 프로세서, 및 하나 또는 그 초과의 위치 이력 레코드들 및 하나 또는 그 초과의 위치 이력 레코드들과 연관된 정보를 저장하도록 구성되고 적어도 하나의 프로세서에 커플링되는 메모리를 포함한다.
[0010] 하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하기 위한 장치는, 모바일 디바이스의 하나 또는 그 초과의 위치들에 기초하여 하나 또는 그 초과의 위치 이력 레코드들을 생성하기 위한 수단 ― 각각의 위치 이력 레코드는 하나 또는 그 초과의 관심 지점들 및 하나 또는 그 초과의 관심 지점들에서 모바일 디바이스의 지속기간을 포함함 ― , 하나 또는 그 초과의 애플리케이션들 중 적어도 하나의 애플리케이션으로부터 정보 요청을 수신하기 위한 수단, 정보 요청으로부터의 기준들을 충족시키는 하나 또는 그 초과의 위치 이력 레코드들의 서브세트를 결정하기 위한 수단, 정보 요청 및 하나 또는 그 초과의 위치 이력 레코드들의 서브세트에 기초하여 적어도 하나의 애플리케이션에 대한 허가의 레벨을 결정하기 위한 수단, 및 적어도 하나의 애플리케이션의 허가의 레벨에 기초하여, 적어도 하나의 애플리케이션에 하나 또는 그 초과의 위치 이력 레코드들의 서브세트와 연관된 정보를 제공하기 위한 수단을 포함한다.
[0011] 하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하기 위한 비-일시적인 컴퓨터-판독 가능한 매체는, 모바일 디바이스의 프로세서가, 모바일 디바이스의 하나 또는 그 초과의 위치들에 기초하여 하나 또는 그 초과의 위치 이력 레코드들을 생성하게 하는 적어도 하나의 명령 ― 각각의 위치 이력 레코드는 하나 또는 그 초과의 관심 지점들 및 하나 또는 그 초과의 관심 지점들에서 모바일 디바이스의 지속기간을 포함함 ― , 모바일 디바이스의 프로세서에서, 하나 또는 그 초과의 애플리케이션들 중 적어도 하나의 애플리케이션으로부터 정보 요청을 수신하게 하는 적어도 하나의 명령, 모바일 디바이스의 프로세서가, 정보 요청으로부터의 기준들을 충족시키는 하나 또는 그 초과의 위치 이력 레코드들의 서브세트를 결정하게 하는 적어도 하나의 명령, 모바일 디바이스의 프로세서가, 정보 요청 및 하나 또는 그 초과의 위치 이력 레코드들의 서브세트에 기초하여 적어도 하나의 애플리케이션에 대한 허가의 레벨을 결정하게 하는 적어도 하나의 명령, 및 모바일 디바이스의 프로세서가, 적어도 하나의 애플리케이션의 허가의 레벨에 기초하여, 적어도 하나의 애플리케이션에 하나 또는 그 초과의 위치 이력 레코드들의 서브세트와 연관된 정보를 제공하게 하는 적어도 하나의 명령을 포함한다.
[0012] 본원에서 개시된 매커니즘들과 연관된 다른 목적들 및 이점들은 첨부 도면들 및 상세한 설명에 기초하여 당업자에게 자명해질 것이다.
[0013] 본 개시의 양상들 및 그의 수반되는 많은 이점들의 보다 완전한 이해는 본 개시의 제한이 아니라 단지 예시을 위해 제시된 첨부 도면들과 관련하여 고려될 때 다음의 상세한 설명을 참조함으로써 더 잘 이해될 수 있으므로 쉽게 획득될 것이다.
[0014] 도 1은 모바일 디바이스가 동작할 수 있는 환경의 예를 예시하는 도면이다.
[0015] 도 2는 본 개시의 실시예에 따른 모바일 디바이스의 실시예를 예시하는 블록도이다.
[0016] 도 3은 본 개시의 적어도 하나의 양상에 따른 모바일 디바이스의 아키텍처를 예시한다.
[0017] 도 4는 본 개시의 적어도 하나의 양상에 따라 모바일 디바이스의 포지션들로부터 유도된 위치들과 연관된 메타데이터 태그들의 예시적인 트리 구조를 예시한다.
[0018] 도 5는 본 개시의 적어도 하나의 양상에 따라 모바일 디바이스의 메모리에 저장된 예시적인 관계형 테이블을 예시하는 도면이다.
[0019] 도 6은 본 개시의 적어도 하나의 양상에 따라 포지션 레코드들을 생성하기 위한 방법을 예시하는 흐름도이다.
[0020] 도 7은 본 개시의 적어도 하나의 양상에 따라 모바일 디바이스의 위치 이력 레코드를 생성하는 방법을 예시하는 흐름도이다.
[0021] 도 8은 본 개시의 적어도 하나의 양상에 따라 위치 이력 레코드들의 데이터베이스를 유지하기 위한 방법을 예시하는 흐름도이다.
[0022] 도 9는 본 개시의 적어도 하나의 양상에 따라 모바일 디바이스에 의해 추적될 수 있는 포지션 정보의 예시적인 입도 레벨들의 예를 예시한다.
[0023] 도 10은 본 개시의 적어도 하나의 양상에 따라 하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하기 위한 방법을 예시하는 흐름도이다.
[0024] 도 11은 본원에서 교시된 바와 같이 통신들을 지원하도록 구성되는 장치의 몇 개의 샘플 양상들의 간략화된 블록도이다.
[0025] 하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하기 위한 방법 및 시스템이 개시된다. 모바일 디바이스는, 모바일 디바이스의 하나 또는 그 초과의 위치들에 기초하여 하나 또는 그 초과의 위치 이력 레코드들을 생성하고 ― 각각의 위치 이력 레코드는 하나 또는 그 초과의 관심 지점들 및 하나 또는 그 초과의 관심 지점들에서의 모바일 디바이스의 지속기간을 포함함 ― , 하나 또는 그 초과의 애플리케이션들 중 적어도 하나의 애플리케이션으로부터 정보 요청을 수신하고, 정보 요청으로부터의 기준들을 충족시키는 하나 또는 그 초과의 위치 이력 레코드들의 서브세트를 결정하고, 정보 요청 및 하나 또는 그 초과의 위치 이력 레코드들의 서브세트에 기초하여 적어도 하나의 애플리케이션에 대한 허가(permission)의 레벨을 결정하고, 그리고 적어도 하나의 애플리케이션의 허가의 레벨에 기초하여, 적어도 하나의 애플리케이션에 하나 또는 그 초과의 위치 이력 레코드들의 서브세트와 연관된 정보를 제공한다.
[0026] 이들 및 다른 양상들은 모바일 디바이스의 위치 이력 레코드를 제공, 조직화 및 관리하는 예시적인 실시예들에 관련된 특정 예들을 제시하기 위해 이하의 설명 및 관련된 도면들에서 개시된다. 본 개시의 범위로부터 벗어나지 않으면서 대안적인 양상들이 고안될 수 있다. 부가적으로, 잘-알려진 엘리먼트들은 본 개시의 관련된 세부사항들을 모호하게 하지 않도록 상세히 설명되지 않거나 또는 생략된다.
[0027] "예시적인"이란 단어는, "예, 경우 또는 예시로서 기능하는" 것을 의미하도록 본원에서 사용된다. 본원에서 "예시적인" 것으로서 설명되는 임의의 양상은 반드시 다른 대안들보다 선호되거나 유리한 것으로 해석될 필요는 없다. 유사하게, 용어 "양상"은, 본 개시의 양상들 전부가 논의된 특징, 이점, 또는 동작 모드를 포함하는 것을 요구하지 않는다.
[0028] 본원에서 사용된 용어는 특정 양상들을 설명하려는 목적만을 위한 것이며, 본 개시의 양상들을 제한하는 것으로 의도되지 않는다. 본원에서 사용되는 바와 같이, 맥락이 명확하게 달리 표시하지 않으면, 단수 형태들은 복수 형태들을 또한 포함하는 것으로 의도된다. 추가로, 용어들 "구비하는", "구비", "포함하는" 및/또는 "포함"이 본원에서 사용될 때, 언급된 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 및/또는 컴포넌트들의 존재를 특정하지만, 하나 또는 그 초과의 다른 특징들, 정수들, 단계들, 동작들, 엘리먼트들, 컴포넌트들, 및/또는 이들의 그룹들의 존재 또는 부가를 배제하지 않는다는 것이 이해될 것이다.
[0029] 추가로, 많은 양상들은, 예를 들어, 컴퓨팅 디바이스의 엘리먼트들에 의해 수행될 동작들의 시퀀스들의 관점들에서 설명된다. 본원에 설명된 다양한 동작들은, 특정 회로들(예를 들어, ASIC(application-specific integrated circuit)들)에 의해, 하나 또는 그 초과의 프로세서들에 의해 실행되는 프로그램 명령들에 의해, 또는 둘 모두의 결합에 의해 수행될 수 있다는 것이 인지된다. 부가적으로, 본원에 설명된 이들 동작들의 시퀀스는, 실행 시에, 연관된 프로세서로 하여금 본원에 설명된 기능을 수행하게 하는 컴퓨터 명령들의 대응하는 세트가 저장된 임의의 형태의 컴퓨터 판독 가능 저장 매체 내에서 완전히 실현되는 것으로 고려될 수 있다. 따라서, 본 개시의 다양한 양상들은 다수의 상이한 형태들로 실현될 수 있으며, 이들 전부는 청구되는 청구 대상의 범위 내에 있는 것으로 고려된다. 부가적으로, 본원에 설명된 양상들 각각에 대해, 임의의 그러한 양상들의 대응하는 형태는, 예를 들어, 설명된 동작을 수행 "하도록 구성된 회로"로서 본원에서 설명될 수 있다.
[0030] 도 1은 모바일 디바이스가 동작할 수 있는 환경의 예를 예시하는 도면이다. 환경은 셀룰러 네트워크(101)를 포함할 수 있다. 선택적으로, 환경은 또한 위성 내비게이션 시스템(151)을 포함할 수 있다.
[0031] 제한이 아닌 예로서, 셀룰러 네트워크(101)는 다수의 셀들(102)(예를 들어, 셀들(102A-102G))을 포함할 수 있다. 액세스 포인트(104)(예를 들어, 액세스 포인트들(104A-104G))는 대응하는 셀(102)에 통신 서비스들을 제공할 수 있다. 제한이 아닌 예로서, 도 1은 몇 개의 로컬 액세스 포인트들(106)(예를 들어, 106-1 내지 106-3) 및 몇 개의 모바일 디바이스들(108)(예컨대, 108-1 내지 108-9)을 예시한다. 모바일 디바이스(108)는 또한 UE(user equipment), 스테이션, 단말, 액세스 단말, 가입자 유닛 등으로 지칭될 수 있다. 로컬 액세스 포인트(106)는 또한 노드, 액세스 포인트, 무선 액세스 포인트 등으로 지칭될 수 있다. 로컬 액세스 포인트(106)는 예를 들어, 소형 셀 셀룰러 기지국, WLAN(wireless local area network) 액세스 포인트, Bluetooth® 액세스 포인트, RFID 리더 등일 수 있다. 모바일 디바이스(108)는 예를 들어 셀룰러폰, PDA(personal digital assistant), 무선 모뎀, 무선 통신 디바이스, 핸드헬드 디바이스, 랩톱 컴퓨터, 무선 전화, WLL(wireless local loop) 스테이션, 넷북, 스마트북, 스마트폰, 태블릿 컴퓨터, 웨어러블 컴퓨터, 자동차 등일 수 있다. 또한, "모바일 디바이스"로서 지칭되지만, 모바일 디바이스(108)의 하나 또는 그 초과는 개인용 컴퓨터와 같은 정지식 장치일 수 있다. 로컬 액세스 포인트(106) 및/또는 모바일 디바이스(108)는 순방향 링크 및/또는 역방향 링크를 통해 서로 및/또는 하나 또는 그 초과의 액세스 포인트들(104)과 통신하도록 구성될 수 있다. 예를 들어, 셀들(102)은 시골 환경에서 수 평방 마일들 또는 도시 세팅에서 몇 블록들의 영역 내에서 통신들을 제공하도록 구성될 수 있다. 셀룰러 네트워크(101)는, 예를 들어, 모바일 디바이스(108)와 액세스 포인트(104) 사이의 신호의 강도에 기초하여 대략적인 정밀도로 모바일 디바이스(108)의 위치를 결정하도록 구성될 수 있다.
[0032] 위성 내비게이션 시스템(151)은 더 뛰어난 정밀도로 모바일 디바이스(108)의 위치를 결정하는데 사용될 수 있다. 예를 들어, 위성 내비게이션 시스템(151)은 글로벌 포지셔닝 시스템(Global Positioning System)일 수 있다. 글로벌 포지셔닝 시스템은 지구 상의 임의의 지점이 적어도 6개의 위성들(152)에 대한 시선(line of sight)을 갖도록 하는 방식으로 지구 위에 분포된 위성들(152)을 포함한다. 각각의 위성(152)은 고정밀 클록을 포함한다. 글로벌 포지셔닝 시스템은 주어진 시간에, 위성(152)(예를 들어, 152A-152D)의 포지션 및 및 주어진 시간 둘 모두가 높은 정밀도로 알려지도록 구성된다. 글로벌 포지셔닝 시스템의 각각의 위성(152)은 신호의 송신 시간과 위성(152)의 포지션 둘 모두를 표시하는 정보를 포함하는 신호를 송신한다. 모바일 디바이스(108)는 적어도 4개의 위성들(152)(예를 들어, 152A 내지 152D) 각각으로부터 신호를 수신하고, 모바일 디바이스(108)의 클록에 따라 각각의 신호에 대한 도달 시간을 레코딩하고, 각각의 신호에 대한 비행 시간을 결정하고, 모바일 디바이스(108)의 위치 및 위성들(152)의 클록들로부터 모바일 디바이스(108)의 클록의 편차 둘 모두를 비행 시간들로부터 유도하도록 구성될 수 있다.
[0033] 당업자는 셀룰러 네트워크(101)로부터 획득된 정밀도보다 더 뛰어날 수 있는 정밀도로 모바일 디바이스(108)의 위치를 결정하는데 사용될 수 있는 다른 기술들을 이해한다.
[0034] 예를 들어, 모바일 디바이스(108)는 WLAN 기술을 사용하도록 구성될 수 있고 WLAN 네트워크로부터 모바일 디바이스(108)의 위치를 결정하도록 추가로 구성될 수 있다. 또한, 모바일 디바이스(108)는 2.4 GHz WLAN 네트워크로부터 모바일 디바이스(108)의 위치를 결정하도록 구성될 수 있고, 5 GHz WLAN 네트워크로부터 모바일 디바이스(108)의 위치를 결정하도록 구성될 수 있다. 예를 들어, 일부 유형들의 모바일 디바이스들(108)은 셀룰러 네트워크(101) 보다는, WLAN 기술을 사용하도록 구성될 수 있다.
[0035] 다른 예로서, 모바일 디바이스(108)는 Bluetooth® 기술 표준에 따라 동작하도록 구성될 수 있고, Bluetooth® 네트워크로부터 모바일 디바이스(108)의 위치를 결정하도록 추가로 구성될 수 있다.
[0036] 또 다른 예로서, 모바일 디바이스(108)는 셀룰러 네트워크(101), 위성 내비게이션 시스템(151), WLAN 네트워크(예를 들어, 2.4 GHz 및/또는 5 Ghz), Bluetooth® 네트워크 등 중 임의의 것의 결합으로부터 모바일 디바이스(108)의 위치를 결정하도록 구성될 수 있다.
[0037] 도 2는 본 개시의 적어도 하나의 양상에 따른 모바일 디바이스(108)의 실시예를 예시하는 블록도이다. 모바일 디바이스(108)는 하우징(202), 하나 또는 그 초과의 안테나들(204), 메인 프로세서(206), 애플리케이션 프로세서(208) 및/또는 저전력 코어(220)를 포함할 수 있는 프로세서(228), 메모리(210), 송신기(216), 수신기(218), 하나 또는 그 초과의 센서들(224), 및 버스 시스템(226)을 포함할 수 있다. 송신기(216) 및 수신기(218)의 기능들은 트랜시버(230)에 통합될 수 있다. 저전력 코어(220)는 예를 들어, 모뎀, DSP(digital signal processor), 저-전력 프로세서(즉, 애플리케이션 프로세서(208) 또는 메인 프로세서(206)보다 적은 전력을 소비하는 프로세서), 또는 다른 특수 회로일 수 있다. 프로세서(228)의 컴포넌트들로서 도시되었지만, 메인 프로세서(206), 애플리케이션 프로세서(208) 및/또는 저전력 코어(220)는 별개의 컴포넌트일 수 있다. 예를 들어, 프로세서(228)는 메인 프로세서(206)만을 포함할 수 있고, 저전력 코어(220)는 별도의 모뎀 컴포넌트일 수 있고, 애플리케이션 프로세서(208)는 프로세서(228) 및 저전력 코어(220) 둘 모두와 별개의 프로세서일 수 있다.
[0038] 프로세서(228)는 모바일 디바이스(108)의 동작들을 제어하도록 구성될 수 있다. 일 실시예에서, 프로세서(228)는 모바일 디바이스(108)의 CPU(central processing unit)일 수 있다. 다른 실시예에서, 애플리케이션 프로세서(208)는 모바일 디바이스(108)의 CPU 및/또는 GPU(graphics processing unit)일 수 있다. 메모리(210)는 프로세서(228)에 커플링될 수 있고, 프로세서(228)와 통신할 수 있으며, 명령들 및 데이터를 프로세서(228)에 제공할 수 있다. 프로세서(228)는, 메모리(210) 내에 저장된 프로그램 명령들에 기초하여 논리적 및 산술적 연산들을 수행할 수 있다. 메모리(210) 내의 명령들은 본원에서 설명되는 방법들 및 프로세스들 중 하나 또는 그 초과를 수행하도록 실행 가능할 수 있다.
[0039] 프로세서(228)는 하나 또는 그 초과의 프로세서들(예를 들어, 메인 프로세서(206), 애플리케이션 프로세서(208) 및 저전력 코어(220))로 구현된 프로세싱 시스템을 포함할 수 있거나 그의 컴포넌트일 수 있다. 프로세서들(206, 208 및 220)은, 범용 마이크로프로세서들, 마이크로제어기들, DSP들, FPGA(field programmable gate array)들, PLD(programmable logic device)들, 제어기들, 상태 머신들, 게이팅된(gated) 로직, 이산 하드웨어 컴포넌트들, 전용 하드웨어 유한 상태 머신들, 또는 계산들을 수행하고 그리고/또는 정보를 조작할 수 있는 임의의 다른 적절한 엔티티들의 임의의 결합으로 구현될 수 있다.
[0040] 프로세싱 시스템은 또한, 소프트웨어를 저장하기 위한 머신-판독 가능한 매체를 포함할 수 있다. 소프트웨어는, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 디스크립션 언어로 지칭되든 또는 이와 달리 지칭되든, 임의의 유형의 명령들을 의미하도록 광의로 해석될 수 있다. 명령들은 코드를, 예를 들어, 소스 코드 포맷, 바이너리 코드 포맷, 실행 가능한 코드 포맷, 또는 임의의 다른 적합한 코드 포맷으로 포함할 수 있다. 명령들은, 하나 또는 그 초과의 프로세서들에 의해 실행되는 경우, 프로세싱 시스템으로 하여금, 본원에서 설명되는 기능들 중 하나 또는 그 초과를 수행하게 한다.
[0041] 메모리(210)는 ROM(read-only memory) 및 RAM(random access memory) 둘 모두를 포함할 수 있다. 메모리(210)의 일부는 또한 NVRAM(non-volatile random access memory)를 포함할 수 있다.
[0042] 일 실시예에서, 모바일 디바이스(108)는 키패드, 마이크로폰, 스피커, 디스플레이 스크린 및/또는 터치스크린 디스플레이와 같은 사용자 인터페이스를 포함할 수 있다. 사용자 인터페이스는, 모바일 디바이스(108)의 사용자에게 정보를 전달하고 그리고/또는 사용자로부터 입력을 수신하는 임의의 엘리먼트 또는 컴포넌트를 포함할 수 있다. 그러나 사용자 인터페이스는 외부 디스플레이, 다른 컴퓨팅 디바이스 등과 같은 상이한 디바이스 상에 있을 수 있다.
[0043] 송신기(216) 및 수신기(218)(또는 트랜시버(230))는 모바일 디바이스(108)와 원격 디바이스 사이에서 데이터의 송신 및 수신을 허용할 수 있다. 하나 또는 그 초과의 안테나들(204)은 하우징(202)에 부착되고 트랜시버(230)에 전기적으로 커플링될 수 있다. 일부 구현들에서, 모바일 디바이스(108)는 또한 다수의 송신기들, 다수의 수신기들, 다수의 트랜시버들 및/또는 다수의 안테나들을 포함할 수 있다(예시되지 않음).
[0044] 하나 또는 그 초과의 센서들(224)은 물리적 특성의 측정을 행할 수 있고 그 측정을 신호로 변환할 수 있는 임의의 디바이스일 수 있다. 하나 또는 그 초과의 센서들(224)은 카메라, 마이크로폰, 터치스크린 디스플레이, 열 센서, 자기 센서, 전기장 센서, 광학 센서, 모션 센서, 가속도계, 관성 측정 유닛, 압력 센서, 터치 스크린 센서, 6 자유도 센서, 포트레이트/랜드스케이프(portrait/landscape) 센서, 후각 센서, 심박수 센서, 화학 환경 센서, 바이오 센서, 신진 대사 표시 센서, 라디오 주파수 판매 시점 트랜잭션 센서 등, 또는 이들의 임의의 결합을 포함(그러나 이에 제한되지 않음)할 수 있다. 부가적으로 또는 대안적으로, 하나 또는 그 초과의 센서들(224) 중 적어도 하나는 모바일 디바이스(108)와 별개일 수 있다(즉, 하우징(202) 외부에 있음).
[0045] 글로벌 포지셔닝 시스템의 위성들(152) 및/또는 셀룰러 네트워크(101)로부터의 신호들에 기초하여 자신의 포지션을 결정하는 것 외에도, 모바일 디바이스(108)는 모바일 디바이스(108)의 관성 상태를 측정하기 위해 하나 또는 그 초과의 센서들(224)의 온-보드 관성 센서들(예를 들어, 가속도계, 자이로스코프 등)을 활용할 수 있다. 이들 온-보드 관성 센서들로부터 획득된 관성 측정들은 모바일 디바이스(108)의 지리적 포지션 및 방향(heading)의 추정들을 제공하기 위해 위성들(152) 및/또는 셀룰러 네트워크(101)로부터 수신된 내비게이션 신호들과 결합하여 또는 이들과 독립적으로 사용될 수 있다.
[0046] 모바일 디바이스(108)의 다양한 컴포넌트들은 버스 시스템(226)에 의해 함께 커플링될 수 있다. 버스 시스템(226)은, 데이터 버스를 포함할 수 있고, 데이터 버스 외에도, 전력 버스, 제어 신호 버스, 및/또는 상태 신호 버스를 또한 포함할 수 있다.
[0047] 인지될 수 있는 바와 같이, 모바일 디바이스(108)는 도 2에 예시되지 않은 다른 컴포넌트들 또는 엘리먼트들을 포함할 수 있다.
[0048] 부가적으로, 다수의 별개의 컴포넌트들이 도 2에 예시되었지만, 컴포넌트들 중 하나 또는 그 초과는 결합되거나 또는 보통으로 구현될 수 있다. 예를 들어, 프로세서(228) 및 메모리(210)는 단일 칩 상에 구현될 수 있다. 프로세서(228)는 부가적으로 및/또는 대안적으로 프로세서 레지스터들과 같은 메모리를 포함할 수 있다. 유사하게, 다양한 블록들의 기능성의 기능 블록들 또는 부분들 중 하나 또는 그 초과는 단일 칩 상에 구현될 수 있다. 대안적으로, 특정 블록의 기능성은 둘 또는 그 초과의 칩들 상에서 구현될 수 있다.
[0049] 일부 모바일 디바이스들(108)(예를 들어, 스마트폰들, 태블릿 컴퓨터들 등)은 운영 체제들을 포함한다. 운영 체제는 모바일 디바이스(108) 상에 설치된 애플리케이션 소프트웨어를 실행하도록 구성될 수 있다. 모바일 디바이스(108)의 운영 체제를 사용하여 실행되도록 특별히 설계된 애플리케이션들은 모바일 "앱들"로서 또한 지칭될 수 있다.
[0050] 이러한 애플리케이션들의 개발은 원래, 모바일 디바이스들(108)의 휴대성을 이용하도록 모바일 디바이스들(108)의 사용자들에 의해 요구되는 기능들에 초점을 맞췄다. 이러한 애플리케이션들은 모바일 디바이스들(108)이 전자 메일(e-메일), 캘린더들, 개인 연락처 정보, 뉴스 정보, 주식 시장 정보 등을 지원하는 기능성을 제공할 수 있다. 지속적인 수요는 게임들, 공장 자동화(예를 들어, 기존 모바일 앱들의 업데이트들), 은행 업무, 주문-추적, 티켓 구매들, 건강 관련 문제 관리 등과 같은 카테고리들에서 모바일 디바이스들(108)에 대한 애플리케이션들의 개발로 이어졌다.
[0051] 일부 모바일 앱들은 센서(224) 중 적어도 하나와 상호작용할 수 있다. 예를 들어, 라디오 주파수 판매 시점(point of sale) 트랜잭션 센서는 상점에서 트랜잭션을 완료하기 위해 모바일 앱에 의해 사용될 수 있다. 예를 들어, 심박수 센서는 모바일 디바이스(108)의 사용자의 심박수를 모니터링하고 보고하도록 모바일 앱에 의해 사용될 수 있다.
[0052] 위에서 설명된 바와 같이, 고도의 정밀도로 모바일 디바이스들(108)의 위치를 결정하는 능력은 위치 데이터를 사용하여 피처들을 제어하는 모바일 앱들의 카테고리인 위치-기반 서비스들의 개발로 이어졌다. 이러한 모바일 앱들의 값은, (1) 모바일 디바이스들(108)(및 확장하여, 모바일 디바이스들(108)의 사용자)과 애플리케이션(위치-기반 서비스를 제공하는 모바일 앱 또는 다른 모바일 앱 중 어느 하나)과 연관된 관심 지점 간의 근접도의 지식 및 (2) 이러한 지식으로부터 이루어질 수 있는 추론에 기초할 수 있다. 위치-기반 서비스들의 예들은 상품 및/또는 서비스의 특정 카테고리의 위치들, 기상 정보, 소셜 네트워킹 애플리케이션들(예를 들어, 개인의 위치를 추적함), 소포 추적, 턴-바이-턴 내비게이션(turn-by-turn navigation), 환경 경고들(예를 들어, 대기 중 고농도의 특정 알레르겐), 비상 원조에 대한 요청들을 전송하기 위한 서비스들 등을 식별하는 제품들을 포함(그러나 이에 제한되지 않음)할 수 있다.
[0053] 특히, 소매상들 및/또는 다른 제 3 자들에 의해 모바일 디바이스들(108)용으로 개발된 애플리케이션들은 상품들 및/또는 서비스들의 특정 제공자들의 위치들을 식별하는 것과 관련된 위치-기반 서비스들, 위치-기반 광고, 위치-기반 프로모션들 등을 구현해왔다. 실행되는 동안, 이러한 모바일 앱은 위치에 기초하여 응답을 결정하기 위해 모바일 디바이스(108)의 위치에 대한 요청을 전송할 수 있다. 실행되는 동안, 이러한 모바일 앱은 또한 모바일 앱을 개발한 엔티티의 제어 하에서 서버(예시되지 않음)에 모바일 디바이스(108)의 위치를 전송할 수 있다.
[0054] 이 접근법은 몇 가지 단점들을 갖는다. 예를 들어, 모바일 디바이스(108)(및 확장하여, 모바일 디바이스(108)의 사용자)의 순간 위치(instantaneous location)를 알리는 값은 단지 모바일 디바이스(108)의 순간 위치의 지식으로부터 이루어질 수 있는 비교적 적은 수의 추론들로 제한된다. 또한, 예를 들어, 몇 개의 모바일 앱들이 실행되는 경우, 프로세서(228)는 모바일 디바이스(108)의 위치에 대한, 몇 개의 모바일 앱들로부터의 다수의 요청들에 대한 응답으로 모바일 디바이스(108)의 위치에 관한 리던던트 결정들을 내리도록 요구될 수 있다. 이러한 리던던트 결정들은, 프로세서(228)에 의해 달리 실행되었을 수 있는 다른 명령들을 희생시킬 수 있다. 또한, 예를 들어, 모바일 디바이스(108)의 사용자는 모바일 앱을 개발한 엔티티가 모바일 디바이스(108)(및 확장하여, 모바일 디바이스(108)의 사용자)의 순간 위치의 지식을 갖는 것을 원치 않을 수 있다.
[0055] 그러나 모바일 디바이스(108)의 순간 위치 외에도 또는 그 대신에, 일부 모바일 앱들에 대해, 모바일 디바이스(108)의 위치 이력이 더 유용할 수 있다. 예를 들어, 모바일 디바이스(108)의 위치 이력은 쇼핑, 음식, 운동 등에 대한 모바일 디바이스(108)의 사용자의 선호도들 및 장기 동향들을 반영할 수 있다. 그것은 또한, 사용자가 특정 소매상에게 얼마나 중요한지를 반영할 수 있다.
[0056] 그러나 위치 이력 정보는 현재, 구조화된 방식으로 노출되지 않으며 애플리케이션 별로 '클라우드'-기반 모바일 앱들에 의해서만 추적된다. 이러한 상황에서, 각각의 모바일 앱은 위치 API의 애플리케이션 호출들(application invocations)에 의해 알 수 있는, 모바일 디바이스(108)의 위치 이력의 제한된 뷰만을 가질 수 있다.
[0057] 따라서, 높은 레벨에서, 본원에서 개시된 시스템들 및 방법은 시스템 전체 별로(system wide basis) 저전력으로(예를 들어, 저전력 코어(220)에 의해)으로 모바일 디바이스(108)의 위치 이력을 추적하고, 위치 이력에 기초하여 부가적인 메타데이터/태그들을 컴퓨팅/생성하고, 위치 이력 정보를 다루기 위해 모바일 앱 허가 모델들을 변경하고, 모바일 앱들의 요구들에 기초하여 위치 이력의 상이한 레벨들의 세부사항 및 입도(granularity)를 노출하고, 그리고 앱 요청들에 기초하여 위치 이력 추적을 동적으로 조정할 수 있다.
[0058] 모바일 앱들이 모바일 디바이스(108)의 위치 이력 정보를 사용하도록 허용하는 것은 다수의 이점들이 있다. 예를 들어, 위치 이력은 애플리케이션 경험이 사용자에게 보다 커스터마이징(customize)되게 하는데 사용될 수 있다. 다른 예로서, 모바일 디바이스(108)의 사용자는 예를 들어, 프라이버시 선호도들에 따라 위치 이력을 선택적으로 노출시킴으로써 제 3 자들로부터 더 양호한 제안들(offers)을 획득하기 위해 에셋(assert)으로서 위치 이력을 사용할 수 있다. 또 다른 예로서, 모바일 디바이스(108)의 사용자는 몇 개의 모바일 앱들 내에서 동작들을 수행하기 위한 크리덴셜(credential)로서 위치 이력 정보를 사용할 수 있다.
[0059] 따라서, 본원에서 설명된 양상들은 모바일 디바이스(108)의 위치 이력 레코드들을 생성한다. 위치 이력 레코드는 적어도 모바일 디바이스(108)의 포지션, 모바일 디바이스(108)의 포지션이 캡처된 시간, 및 선택적으로 그 포지션에서 모바일 디바이스(108)의 지속기간을 포함할 수 있다.
[0060] 위치 이력 레코드는, 예를 들어, 모바일 디바이스(108)의 프로세서(228)(특히, 일 실시예에서, 저전력 코어(220))에 의해 실행될 수 있는, 메모리(210)에 저장된 소프트웨어에 의해 생성될 수 있다. 이러한 소프트웨어는 예를 들어, 모바일 디바이스(108)의 운영 체제와 하나 또는 그 초과의 모바일 앱들 간의 인터페이싱을 위한 미들웨어로서 구성될 수 있다.
[0061] 유리하게는, 모바일 디바이스(108)에 의해 생성된 위치 이력 레코드를 가짐으로써, 모바일 디바이스(108)의 위치에 대한 몇 개의 모바일 앱들로부터의 다수의 요청들에 대한 응답으로 프로세서(228)가 모바일 디바이스(108)의 위치의 리던던트 결정들을 행할 필요성을 감소시키고 그리하여 프로세서(228)를 자유롭게 하여 다른 명령들을 실행할 수 있다. 위치 이력 레코드들은 예를 들어, 모바일 디바이스(108)의 메모리(210)에 저장될 수 있다. 위치 이력 레코드들에 대한 액세스는 모바일 디바이스(108)에 의해 제어될 수 있어서, 모바일 디바이스(108)의 사용자는 어느 애플리케이션들이 위치 이력 레코드들 중 적어도 하나를 수신할 수 있는지를 결정할 수 있다.
[0062] 도 3은 본 개시의 적어도 하나의 양상에 따른 모바일 디바이스(108)의 아키텍처를 예시한다. 도 3의 예에서, 저전력 코어(220)는 포지셔닝 엔진(322), 위치 압축 및 분석 모듈(324) 및 위치 이력 추출/추상 모듈(326)을 포함한다. 포지셔닝 엔진(322), 위치 압축 및 분석 모듈(324), 및 위치 이력 추출/추상 모듈(326)은 저전력 코어(220)에 통합되거나 기능적으로 커플링된 하드웨어 컴포넌트들, 저전력 코어에 의해 실행되는 소프트웨어 모듈들, 또는 하드웨어 및 소프트웨어의 결합일 수 있다.
[0063] 포지셔닝 엔진(322)은 위에서 설명된 포지셔닝 기술들(예를 들어, 셀룰러 네트워크(101), 위성 내비게이션 시스템(151), WLAN 네트워크, Bluetooth® 네트워크 등) 중 하나 또는 그 초과를 이용하여 시간에 걸쳐 모바일 디바이스(108)의 포지션을 추적한다. 포지셔닝 엔진(322)의 출력들은 예를 들어, 시간 필드(312a)의 시간들(포지션 측정이 이루어진 시간)과 포지션 필드(314a)의 대응하는 포지션들(위도 및 경도 측정들, 액세스 포인트 식별자 등일 수 있음)의 관계형 테이블로서 공유 메모리(210)에 캐시된다. 이들 출력은 모바일 앱들(330)로부터의 요청, 연결성을 위해 행해진 WLAN 또는 셀룰러 스캔 등에 기초하여 포지셔닝 엔진(322)에 의해 수집될 수 있다.
[0064] 위치 압축 및 분석 모듈(324)은 모바일 디바이스(108)의 포지션 필드(314a)의 포지션들을 클러스터링하고 시간에 걸친 모바일 디바이스(108)의 이산 포지션들을 식별하기 위해 이들 클러스터에서 모바일 디바이스(108)의 지속기간을 추정한다. 모바일 디바이스(108)의 이산 포지션들은 포지션 필드(314b)에 저장되고 그 이산 포지션에서의 모바일 디바이스(108)의 지속기간은 지속기간 필드(316)에 저장된다. 모바일 디바이스가 그 포지션에 있었던 시간, 예컨대, 시작 시간, 종료 시간, 중간값(median) 시간 등이 시간 필드(312b)에 저장된다. 일 실시예에서, 시간 필드(312b), 포지션 필드(314b), 및 선택적으로 지속기간 필드(316)는 본원에서 집합적으로 "포지션 레코드" 또는 "위치 레코드"로서 지칭될 수 있다.
[0065] 그 후, 위치 압축 및 분석 모듈(324)은 식별된 위치들을 상이한 메타데이터 태그들(318)과 연관시키기 위해 POI 데이터베이스에서 클러스터들에 대응하는 위치들을 룩업하거나 모바일 디바이스(108)가 이 위치들을 룩업하게 할 수 있다. 포지션 필드(314b)의 클러스터링된 포지션들에 대응하는 식별된 위치들은 예를 들어, 위치들을 식별하고 그리고/또는 위치들과 연관된 하나 또는 그 초과의 활동들을 설명하는, POI 데이터베이스로부터의 메타데이터 태그들과 연관될 수 있다. 예를 들어, 포지션 필드(314b)의 포지션들의 클러스터에 대응하는 위치가 POI 데이터베이스의 Safeway™ POI에 대응하는 경우, 위치에는 "Safeway™", "쇼핑", "식료품 쇼핑", "델리(deli)", "베이커리" 등의 메타데이터 태그들(318)이 할당될 수 있다. POI 데이터베이스는 국부적으로(예를 들어, 공유 메모리(210)에) 또는 원격으로 저장되고 무선 네트워크를 통해 모바일 디바이스(108)가 액세스 가능할 수 있다.
[0066] 일 실시예에서, 위치 압축 및 분석 모듈(324)은 도로(road)들을 따른 클러스터들이 단일 위치로 압축되고, "통근(commute)"과 같은 메타데이터 태그들(318)이 할당되어야 하는 것으로 결정할 수 있다. 다른 실시예에서, 위치 압축 및 분석 모듈(324)은 단명(short-lived) 클러스터들(예를 들어, 모바일 디바이스(108)가 임계 시간량 미만의 시간을 소비한 포지션 필드(314b)의 포지션들의 클러스터) 또는 대응하는 메타데이터 태그들이 없는 위치는 삭제될 수 있다고 결정할 수 있다.
[0067] 일 실시예에서, 하나 또는 그 초과의 센서들(224)로부터의 데이터는 위치 압축 및 분석 모듈(324)에 의해 수행된 분석을 보강하고 식별된 위치들에 대한 부가적인 메타데이터 태그들(318)을 부가하는데 사용될 수 있다. 예를 들어, 포지션 필드(314b)의 포지션들의 클러스터는 POI 데이터베이스에서 공공 공원에 대응하는 것으로 식별될 수 있다. 하나 또는 그 초과의 센서들(224) 중 가속도계로부터의 데이터는, 포지셔닝 엔진(322)이 포지션 필드(314b)에 표현된 포지션들을 측정할 때 모바일 디바이스(108)의 사용자가 달렸음을 표시할 수 있다. 따라서, 위치 압축 및 분석 모듈(324)은 예를 들어, 식별된 위치에 대해 "달리기(running)"의 부가적인 메타데이터 태그(318)를 할당할 수 있다.
[0068] 일 실시예에서, 메타데이터 태그들(318)은 실제 센서 데이터일 수 있다. 예를 들어, 사용자는 (도 5의 502G에서와 같이) 모바일 디바이스(108)의 주어진 포지션에서 주어진 지속기간 동안 75bpm의 평균 심박수를 유지했었을 수 있다. 메타데이터 태그들(318)은 도 7을 참조하여 아래에서 논의되는 바와 같이 표준 편차, 최대값(들), 최소값(들) 등과 같은 다른 통계를 포함할 수 있다. 또한, 메타데이터 태그들(318)은 할당된 태그에 기초하여 변경되거나 레코딩될 수 있다. 예를 들어, 메타데이터 태그(318)가 "달리기"인 경우, 모바일 디바이스(108)는 1초마다 심박수를 레코딩하고 그것을 센서 메타데이터로서 저장할 수 있다.
[0069] 다른 예로서, 포지션 필드(314b)의 포지션들의 클러스터는 직장에 통근하는 모바일 디바이스(108)의 사용자에 대응할 수 있다. 하나 또는 그 초과의 센서들(224) 중 하나는 모바일 디바이스(108)가 음악을 플레이하고 있거나 사용자가 라디오로 음악을 듣고 있음을 검출할 수 있다. 따라서, 위치 압축 및 분석 모듈(324)은 예를 들어, 식별 위치에 대해 "음악 청취"의 부가적인 메타데이터 태그(318)를 할당할 수 있다.
[0070] 다른 예로서, 포지션 필드(314b)의 포지션들의 클러스터는 특정 쇼핑 위치에 있는 모바일 디바이스(108)의 사용자에 대응할 수 있다. 하나 또는 그 초과의 센서들(224) 중 하나는 모바일 디바이스(108)가 쇼핑 위치에서 지불을 한 것을 검출할 수 있다. 따라서, 위치 압축 및 분석 모듈(324)은 예를 들어, 식별된 위치에 대해 "구매를 함(purchase made)"의 부가적인 메타데이터 태그(318)를 할당할 수 있다.
[0071] 일 실시예에서, 위치 이력 레코드들은 시간 필드들(312b), 포지션 필드들(314b), 지속기간 필드들(316) 및 메타데이터 태그들(318)을 포함할 수 있다.
[0072] 위치 압축 및 분석 모듈(324)에 의해 수행된 분석은 계산 집약적일 수 있기 때문에, 이들 동작들은 시간 필드들(312a)의 시간들 및 포지션 필드들(314a)의 포지션들이 수집되는 동안 실시간으로 수행되기 보다는, 모바일 디바이스(108)가 전력 소스에 연결될 때 수행될 수 있다.
[0073] 위치 이력 추출/추상 모듈(326)은, 애플리케이션 프로세서(208)를 통해 모바일 앱들(330)로부터 위치 이력 레코드들 및/또는 위치 이력 레코드들과 연관된 정보(예를 들어, 시간 필드들(312b), 포지션 필드들(314b), 지속기간 필드들(316) 및 메타데이터 태그들(318)의 서브세트)에 대한 요청을 수신한다. 위치 이력 레코드들/위치 이력 레코드와 연관된 정보에 대한 요청들은, 위에서 언급된 바와 같이, 모바일 앱들(330)로부터 또한 수신될 수 있는, 모바일 디바이스(108)의 포지션 필드(314a)의 포지션들을 측정하기 위한 요청들과 별개의 요청들이란 것에 주의한다. 본원에서 추가로 설명되는 바와 같이, 위치 이력 레코드들/위치 이력 레코드들과 연관된 정보에 대한 요청은 위치 이력 레코드들과 연관된 정보를 필터링하기 위한 하나 또는 그 초과의 기준들을 포함할 수 있다.
[0074] 도 4는 본 개시의 적어도 하나의 양상에 따라 모바일 디바이스(108)의 포지션 필드들(314a)의 포지션들로부터 유도된 위치들과 연관된 메타데이터 태그들의 예시적인 트리 구조(400)를 예시한다. 트리 구조(400)의 루트(410)는 각각의 서브트리의 유형 및 크기를 표시하는 메타데이터와 연관될 수 있다. 메타데이터는 서브트리들의 유형(들)(도 4의 예에서, 쇼핑, 식사, 체육관 및 기타), 서브트리들의 크기(들), 자식들(children)의 수 및/또는 서브트리의 요약을 표시할 수 있다. 아래에서 설명될 바와 같이, 서브트리의 크기는 그 카테고리의 하나 또는 그 초과의 위치들에서 소비된 시간을 표시할 수 있다. 서브트리의 요약은 일정 시간의 기간, 예를 들어, 지난 두 달에 걸친 정보의 요약일 수 있다.
[0075] 도 4에 예시된 바와 같이, 트리 구조(400)는 위치들의 4개의 예시적인 카테고리들 즉, 쇼핑, 식사, 체육관 및 기타를 갖는 제 1 레벨(420)을 포함한다. 트리 구조(400)의 제 2 레벨(430)은 쇼핑 카테고리를 식료품 쇼핑 및 의류 쇼핑의 서브-카테고리들로 그리고 식사 카테고리를 패스트 푸드 및 레스토랑의 서브-카테고리들로 분할한다. 트리 구조(400)의 제 3 레벨(440)은 식료품 쇼핑의 서브-카테고리를 Safeway™, Trader Joes™ 및 Whole Foods™의 추가의 서브-카테고리들로 분할한다. 트리 구조(400)의 제 4 레벨(450)은 트리 구조(400)의 리프 노드들에 대응한다. 리프 노드들은 상세한 위치 및 타이밍(예를 들어, 지속기간) 정보를 제공한다. 인지될 수 있는 바와 같이, 도 4는 4개의 레벨들만을 예시하지만, 트리 구조(400)의 더 많은 또는 더 적은 레벨들이 있을 수 있다.
[0076] 알 수 있는 바와 같이, 도 4는 (모바일 디바이스(108)의 포지션 필드들(314a)의 포지션들을 클러스터링함으로써 결정된) 다양한 위치들에, 증가하는 입도/특이성 레벨로 다수의 메타데이터 태그들이 어떻게 할당될 수 있는지를 예시한다. 모바일 디바이스(108)의 사용자가 다른 위치보다 더 자주 특정 위치를 방문하는 경우, 그 위치와 연관된 서브트리는 다른 위치들과 연관된 서브트리들보다 더 발전될 수 있다. 예를 들어, 위치 압축 및 분석 모듈(324)은 특정 위치에 대한 메타데이터 태그들의 디폴트 수 또는 레벨들에 액세스할 수 있다. 모바일 디바이스(108)가 위치에 대한 부가적인 방문을 행할 때, 모바일 디바이스(108)는 그 위치와 연관된 부가적인 메타데이터 태그들에 액세스할 수 있다. 부가적인 메타데이터 태그들은 위치에 대한 보다 구체적인 정보일 수 있다. 예를 들어, 위치가 Safeway™ 식료품 상점인 경우, 도 4에 예시된 바와 같이, 위치 압축 및 분석 모듈(324)은 제 1 방문에서 POI 데이터베이스로부터 쇼핑 및 식료품 쇼핑 중 처음 2개의 레벨들의 메타데이터 태그들을 리트리브할 수 있다. 후속 방문 시에, 위치 압축 및 분석 모듈(324)은 Safeway™의 세번째 레벨의 메타데이터 태그를 리트리브할 수 있다. 추가 후속 방문 시에, 위치 압축 및 분석 모듈(324)은 델리, 베이커리 및 약국(예시되지 않음)의 네번째 레벨의 메타데이터 태그들을 검색할 수 있다.
[0077] 이러한 방식으로, 도 4에 예시된 메타데이터 태그들과 같이, 위치 이력 레코드와 연관된 정보를 현재 요청하는 모바일 앱들에 덜 중요한 노드들에 대해, 위치 이력 레코드들과 연관된 정보는 첫번째 레벨의 메타데이터 태그들만을 포함할 수 있다. 예를 들어, 모바일 디바이스(108)의 사용자가 지난 2주 동안 체육관에서 1시간만을 소비했기 때문에, 체육관 서브트리는 부가적인 서브-카테고리들을 포함하지 않을 수 있다. 따라서, 사용자의 활동들 및 모바일 앱들로부터의 요청에 기초하여, 더 많은 자원들이 다른 트리 노드들보다 일부 트리 노드들에 배정될 수 있다.
[0078] 위치에 대한 메타데이터 태그들이 하나 또는 그 초과의 센서들(224)에 의해 수집된 데이터에 기초하여 메타데이터 태그들로 보강되는 실시예에서, 사용자가 위치를 더 자주 방문할수록, 위치 압축 및 분석 모듈(324)은 하나 또는 그 초과의 센서들(224)로부터 데이터를 모으고 그에 따라 그 데이터에 기초하여 위치에 대한 메타데이터 태그들을 부가할 더 많은 기회들을 갖는다. 예를 들어, 위치가 모바일 디바이스(108)의 사용자가 자주가는 공공 공원인 경우, 하나 또는 그 초과의 센서들은 한 번의 방문에서 사용자가 뛰어서 공원을 지나가고, 다른 방문에서, 사용자가 걸어서 공원을 지나가고, 다른 방문에서, 사용자가 일정 기간의 시간 동안 공원의 놀이터 근처에 머무른다는 것 등을 검출할 수 있다. 따라서, 위치 압축 및 분석 모듈(324)은 이들 활동들에 기초하여 공공 공원 위치에 부가적인 메타데이터 태그들을 할당할 수 있다.
[0079] 도 5는 본 개시의 적어도 하나의 양상에 따라 모바일 디바이스(108)의 메모리(210)에 저장된 예시적인 관계형 테이블(500)을 예시하는 도면이다. 관계형 테이블(500)은 위치 이력 레코드들(502A-502Z)을 저장하도록 구성될 수 있다. 위치 레코드들은 포지션 열(506) 및 시간 열(504), 및 선택적으로 지속기간 열(510)에 대응할 수 있다. 시간 열(504)의 시간들, 포지션 열(506)의 포지션들 및 지속기간 열(510)의 지속기간들은 각각 도 3의 시간 필드들(312b)의 시간들, 포지션 필드들(314b)의 포지션들 및 지속기간 필드들(316)의 지속기간들에 대응할 수 있다. 위치 이력 레코드들은 위치 레코드들을 포함하고 제공 주체(provided by) 열(508), 최근 요청 열(512), 요청 빈도 열(514), 센서 정보 열(516) 및 포지션 식별자(ID) 열(518)에 추가로 대응한다. 위치 이력 레코드들(502A-Z)과 결합된 것으로 예시되었지만, 위치 레코드들은 별개의 레코드들로서 저장되거나 그리고/또는 개별 레코드들로서 지칭될 수 있다.
[0080] 도 5에 예시되지 않았지만, 관계형 테이블(500)은 부가적인 열들, 예컨대, 도 4에 예시된 메타데이터 태그들의 각각의 레벨에 대응하는 하나 또는 그 초과의 열들을 포함할 수 있다. 예를 들어, Safeway™ 위치 이력 레코드들(502D, 502E 및 502I) 중 하나 또는 그 초과는, 모바일 디바이스(108)의 사용자가 Safeway™에 방문한 횟수에 의존하여 쇼핑, 식료품 쇼핑, 델리, 베이커리 및/또는 약국의 메타데이터 태그들에 대한 부가적인 열들을 포함할 수 있다.
[0081] 도 6은 본 개시의 적어도 하나의 양상에 따라 포지션 레코드들을 생성하는 방법(600)을 예시하는 흐름도이다. 블록(602)에서, 프로세서(228)는 모바일 앱으로부터 포지션 픽스 레이트 요청(position fix rate request)을 수신한다. 일 실시예에서, 요청은 모바일 앱이 모바일 디바이스(108)의 포지션이 얼마나 자주 결정되기를 바라는지를 정의할 수 있다. 아래에서 설명되는 바와 같이, 저전력 코어(220)는 모바일 디바이스(108)의 포지션 및 모바일 앱으로부터의 요청과 독립적으로, 모바일 디바이스(108)의 포지션을 결정하는 레이트를 결정할 수 있다. 예를 들어, 저전력 코어(220)는 위치 픽스들을 수행하는 디폴트 레이트를 결정할 수 있지만, 604를 참조하여 아래에서 논의되는 바와 같이, 모바일 앱으로부터의 요청에 기초하여 그 디폴트 레이트를 업데이트할 수 있다.
[0082] 일 실시예에서, 저전력 코어(220)는 (예를 들어, 도 3의 포지션 필드들(314a)의 각각의 포지션에 대한) 각각의 포지션 픽스에 대한 포지션 레코드를 생성할 수 있다. 대안적으로, 저전력 코어(220)는 (예를 들어, 도 3의 포지션 필드들(314b)의 각각의 포지션에 대한) 모바일 디바이스(108)의 포지션들의 클러스터에 대응하는, 각각의 포지션에 대한 포지션 레코드를 생성할 수 있다. 도 3을 참조하여 논의된 바와 같이, "포지션 레코드" 또는 "위치 레코드"는 주어진 시간에, 모바일 디바이스(108)의 포지션의 레코드이고, 예를 들어, 포지션의 지리적 좌표들 및 대응하는 타임스탬프일 수 있다. 대안적으로, 저전력 코어(220)는 특정 포지션 픽스들만을 위한 포지션 레코드를 생성할 수 있다. 예를 들어, 저전력 코어(220)는 모바일 디바이스(108)가 마지막 포지션 픽스 이후 임계 거리 초과로 이동한 경우에만 포지션 레코드들을 생성할 수 있다.
[0083] 요청된 빈도는 하나 또는 그 초과의 관심 지점들에 대한 모바일 디바이스(108)의 근접도, 모바일 디바이스(108)의 이동량, 또는 이들의 임의의 결합에 기초할 수 있다. 예를 들어, 모바일 디바이스(108), 특히, 저전력 코어(220)는 1분마다 포지션 레코드를 생성할 수 있다. 그러나 커피숍 Starbucks™용 모바일 앱은, 모바일 디바이스(108)가 Starbucks™ 상점에 또는 그 근처에 있을 때면 언제나, 모바일 디바이스(108)가 1초마다 포지션 레코드를 생성하는 것을 요청할 수 있다. Starbucks™ 모바일 앱은 예를 들어, 애플리케이션이 처음 열릴 때 프로세서(228)에 이 요청을 전송할 수 있다. 저전력 코어(220)는 이 요청을 평가하고 자신이 모바일 디바이스(108)의 포지션을 얼마나 자주 결정할지를 조정하고 하나 또는 그 초과의 관심 지점들에 대한 모바일 디바이스(108)의 근접도에 기초하여 대응하는 포지션 레코드를 생성할 수 있다. 이 상황에서 Starbucks™ 모바일 앱은 요청을 한 번만 전송할 필요가 있을 것이고, Starbucks™ 모바일 앱은 종료될 수 있지만 저전력 코어(220)는 요청에 기초하여 위치 픽스들/포지션 레코드들을 생성할 것이다.
[0084] 다른 예에서, 모바일 디바이스(108)는 1분마다 포지션 레코드를 다시 생성할 수 있다. 그러나 보수계 애플리케이션은, 모바일 디바이스(108)가 이동중이거나 마지막 순간에 이동했으면, 모바일 디바이스(108)가 1초마다 포지션 레코드를 생성하도록 요청할 수 있다.
[0085] 일 실시예에서, 하나 또는 그 초과의 포지션 레코드들을 생성하라는 요청은 사용할 포지셔닝 기술, 포지션 불확실성 임계치, 또는 이들의 임의의 결합을 포함할 수 있다.
[0086] 일 실시예에서, 포지션 픽스 레이트 요청은 또한, 센서 레이트 요청, 즉, 주어진 레이트로 하나 또는 그 초과의 센서들(224)로부터 데이터를 샘플링하라는 요청을 포함할 수 있다. 예를 들어, 보수계 애플리케이션은, 모바일 디바이스(108)가 마지막 1분 동안 이동했을 때마다, 하나 또는 그 초과의 센서들(224) 중 땀 센서가 1초마다 데이터를 생성/샘플링해야 하고 포지션 레코드가 10 초마다 생성되어야 한다고 요청할 수 있다.
[0087] 일 실시예에서, 하나 또는 그 초과의 포지션 레코드들을 생성하라는 요청은 하나 또는 그 초과의 관심 지점들에 대한 모바일 디바이스(108)의 근접도, 모바일 디바이스의 이동 또는 이들의 임의의 결합에 기초하여 하나 또는 그 초과의 센서들(224)로부터 데이터를 생성하라는 요청을 포함할 수 있다. 예를 들어, 피트니스 애플리케이션은, 모바일 디바이스(108)가 체육관에 근접할 때마다, 포지션 레코드들이 1 초마다 발생되고 심박수 센서로부터의 데이터가 30 초마다 샘플링되도록 요청할 수 있다.
[0088] 다른 예에서, 식료품 상점 Safeway™용 모바일 앱은, 모바일 디바이스(108)가 Softway™ 상점의 체크아웃 라인에 근접할 때마다, 모바일 디바이스(108)의 하나 또는 그 초과의 센서들(224) 중 라디오 주파수 판매 시점 트랜잭션 센서가 인에이블되도록 요청할 수 있다. 이는 Safeway™ 상점에서 트랜잭션을 완료하기 위해 모바일 디바이스(108)를 사용할 필요성을 예상함으로써 모바일 디바이스(108)의 사용자에게 가치있는 서비스를 제공한다. 유리하게는, 모바일 앱으로부터 라디오 주파수 판매 시점 트랜잭션 센서의 샘플링 레이트를 변경하는 센서 레이트 요청이 없는 경우, 라디오 주파수 판매 시점 트랜잭션 센서를 비활성 상태로 유지하는 것은 프로세서(228)가 다른 명령들을 자유롭게 실행할 수 있고, 메모리(210)의 소비를 제한할 수 있고, 충전될 필요가 있기 전에, 모바일 디바이스(108)의 전력 소스(예를 들어, 배터리)가 모바일 디바이스(108)에 전력을 제공할 수 있는 시간 지속기간을 연장시킬 수 있거나, 위의 것의 임의의 결합일 수 있다.
[0089] 일 실시예에서, 하나 또는 그 초과의 포지션 레코드들을 생성하라는 요청은 애플리케이션에 의해 행해진 하나 또는 그 초과의 이전 요청들을 오버라이드(override)하는 오버라이드를 포함할 수 있다.
[0090] 블록(604)에서, 저전력 코어(220)는 모바일 디바이스(108)의 포지션, 하나 또는 그 초과의 센서들(224)로부터 데이터를 샘플링하기 위한 하나 또는 그 초과의 파라미터들, 또는 이들의 임의의 결합을 결정하기 위한 하나 또는 그 초과의 파라미터들을 결정한다.
[0091] 일 실시예에서, 하나 또는 그 초과의 모바일 앱들은 상이한 요건들을 갖는 다수의 요청들을 발행할 수 있고, 저전력 코어(220)는 모든 요건들을 서비스할 수 있는지 여부를 결정할 수 있다. 일 실시예에서, 저전력 코어(220)는, 저전력 코어(220)가 이전 요청들의 모든 요건들을 서비스할 수 없는 경우 최근 요청들을 활용할 수 있고, 그리고/또는 이전 요청들로부터의 가능한 한 많은 이전 요건들을 활용할 수 있다. 일부 경우들에서, 저전력 코어(220)는 가장 높은 입도를 갖는 요청을 활용할 수 있다. 예를 들어, 하나의 모바일 앱은 모바일 디바이스(108)가 이동중일 때 10 초마다 포지션을 요청할 수 있고 제 2 모바일 앱은 모바일 디바이스(108)가 이동중일 때 1초마다 포지션을 요청할 수 있다. 이러한 상황에서, 저전력 코어(220)는 포지션 레코드들을 생성하기 위한 더 높은 빈도를 활용하고 1초마다 모바일 디바이스(108)의 포지션을 결정할 수 있다.
[0092] 블록(606)에서, 저전력 코어(220)는 모바일 디바이스(108)의 포지션을 결정하기 위해 하나 또는 그 초과의 결정된 파라미터들에 기초하여 모바일 디바이스(108)의 포지션 픽스 레이트를 세팅하고, 또한 요청된 경우, 하나 또는 그 초과의 센서들(224)로부터의 데이터를 샘플링하기 위해 하나 또는 그 초과의 파라미터들에 기초하여 하나 또는 그 초과의 센서들(224)에 의해 캡처된/생성된 데이터에 대한 샘플링 레이트를 세팅한다.
[0093] 608에서, 포지셔닝 엔진(322)은 위에서 논의된 바와 같이, 606에서 세팅된 포지션 픽스 레이트에 기초하여 모바일 디바이스(108)의 포지션을 획득할 수 있고, 요청된 경우, 606에서 세팅된 샘플링 레이트에 기초하여 하나 또는 그 초과의 센서들(224)로부터 데이터를 샘플링할 수 있다. 대안적으로, 또는 부가적으로, 포지셔닝 엔진(322)은 포지션 픽스 레이트 요청과 독립적으로, 모바일 디바이스(108)의 포지션을 획득할 수 있다. 예를 들어, 모바일 디바이스(108)는 모바일 디바이스(108)의 포지션을 요청하는 애플리케이션들이 없는 경우라도 모바일 디바이스(108)의 포지션을 주기적으로 결정할 수 있다. 이는 일단 요청이 수신되면, 모바일 디바이스(108)가 모바일 디바이스(108)의 포지션에 대한 애플리케이션의 요청을 신속하게 서비스하도록 허용하고, 사용자의 경험을 개선하기 위한 문맥 인식(contextual awareness)을 가능하게 한다.
[0094] 포지셔닝 엔진(322)은 모바일 디바이스(108)의 포지션이 획득된 시간들을 시간 필드들(312a)에 저장할 수 있다. 일 실시예에서, 시간 필드들(312a/b)에서의 시간들과 같이, 포지션이 획득된 시간은 에포크 시간, 캘린더 시간 등과 같은 다양한 방식들 중 임의의 방식으로 저장될 수 있다.
[0095] 포지셔닝 엔진(322)은 획득된 포지션을 포지션 필드들(314a)에 저장할 수 있다. 일 실시예에서, 모바일 디바이스(108)의 포지션은 하나 또는 그 초과의 지리적 좌표들로서 포지션 필드들(314a/b)에 저장될 수 있다. 다른 실시예에서, 포지션은 지리적 좌표를 포함할 수 있지만, 하나 또는 그 초과의 상대적 좌표들을 또한 포함할 수 있다. 예를 들어, 모바일 디바이스(108)는 Bluetooth® 비콘들을 갖는 실내 위치에 있을 수 있지만, 비콘 포지션들은 지리적 좌표계에 세팅되지 않을 수 있고, 따라서 모바일 디바이스(108) 포지션은 Bluetooth® 비콘에 대한 하나 또는 그 초과의 좌표들은 물론 지리적 좌표들을 포함할 수 있다. 일 실시예에서, 모바일 디바이스(108)는 또한 하나 또는 그 초과의 센서들(224)로부터 데이터를 획득할 수 있다. 예를 들어, 모바일 디바이스(108)는 심박수 센서로부터 센서 데이터를 획득할 수 있다. 일 실시예에서, 하나 또는 그 초과의 센서들(224)로부터의 데이터는 모바일 디바이스(108)의 포지션과 동일한 레이트로 획득될 수 있다. 일 실시예에서, 모바일 디바이스(108)는 하나 또는 그 초과의 센서들(224)로부터 데이터를 샘플링하라는 애플리케이션으로부터의 요청과 독립적으로 하나 또는 그 초과의 센서들(224)로부터 데이터를 획득할 수 있다.
[0096] 도 7은 본 개시의 적어도 하나의 양상에 따라 모바일 디바이스(108)의 위치 이력 레코드를 생성하는 방법을 예시하는 흐름도(700)이다. 방법(700)에 있어서, 블록(702)에서, 모바일 디바이스(108), 특히, 위치 압축 및 분석 모듈(324)은 도 3을 참조하여 위에서 설명된 바와 같이, 시간 및 포지션 필드들(312b 및 314b)과 같은 포지션 레코드들을 생성한다.
[0097] 블록(704)에서, 모바일 디바이스(108), 특히, 위치 압축 및 분석 모듈(324)은 도 3의 지속기간 필드들(316)의 지속기간과 같이 포지션 레코드들에 표시된 하나 또는 그 초과의 포지션에서의 모바일 디바이스의 지속기간을 결정할 수 있다. 모바일 디바이스(108)의 위치 압축 및 분석 모듈(324)은 동일 또는 유사한 포지션에 있던 제 1 시간 레코드와 마지막 시간 레코드 사이의 시간 차이를 취함으로써 모바일 디바이스(108)가 특정 위치에 있었던 지속기간을 결정할 수 있다. 예를 들어, 위치 압축 및 분석 모듈(324)은 동일한 위치에 있는 시간 및 포지션 레코드들의 시리즈에 액세스할 수 있고(시리즈의 제 1 시간 레코드와 마지막 시간 레코드 간의 시간 차이는 1 시간임), 그러면, 위치 압축 및 분석 모듈(324)은 포지션 및 1시간인 지속기간에 대한 위치 이력 레코드를 생성할 수 있다.
[0098] 일 실시예에서, 위치 압축 및 분석 모듈(324)은 도 3을 참조하여 위에서 논의된 바와 같이, 둘 또는 그 초과의 포지션들이 유사한지 그리고 함께 클러스터링되어야 하는지 여부를 결정하기 위해 임계치를 사용할 수 있다. 예를 들어, 위치 압축 및 분석 모듈(324)은 10 %의 임계치를 사용할 수 있어서, 제 2 포지션이 제 1 포지션의 10 % 내에 있어야 한다. 다른 예에서, 위치 압축 및 분석 모듈(324)은 100 피트의 임계치를 사용할 수 있어서, 클러스터되링어야 하는 유사한 포지션들로 고려되기 위해 제 1 포지션과 제 2 포지션 사이의 거리는 100 피트 이하가 되어야 한다.
[0099] 일 실시예에서, 모바일 디바이스(108)의 위치 압축 및 분석 모듈(324)은 하나 또는 그 초과의 시간 및 포지션 레코드들에 대응하는 하나 또는 그 초과의 관심 지점들을 결정할 수 있다. 하나 또는 그 초과의 시간 및 포지션 레코드들이 하나 또는 그 초과의 유사한 관심 지점들에 대응하는 경우, 위치 압축 및 분석 모듈(324)은 하나 또는 그 초과의 유사한 관심 지점들에 기초하여 하나 또는 그 초과의 위치 이력 레코드들을 생성하고, 하나 또는 그 초과의 시간 레코드들에 기초하여 지속기간을 결정할 수 있다.
[00100] 예를 들어, 서로 가깝지만 정확히 동일하지 않고 Safeway™ 식료품 상점과 같이 동일한 관심 지점과 연관되는 상이한 지리적 좌표들을 갖는 3개의 시간 및 위치 레코드들이 있을 수 있다. 그 상황에서, 위치 압축 및 분석 모듈(324)은, 포지션이 Safeway™ 관심 지점에 대응하고 지속기간이 3개의 시간 및 포지션 레코드들의 제 1 시간 레코드와 마지막 시간 레코드 사이의 시간 차이인 위치 이력 레코드를 생성할 수 있다.
[00101] 다른 예에서, 근접하게 있는 상이한 지리적 좌표들을 갖지만, 시간 및 포지션 레코드들 중 2개는 Safeway™ 식료품 상점에 대응하고 세 번째 것은 Starbucks™ 커피 상점에 대응하는 3개의 시간 및 포지션 레코드가 있을 수 있다. 이는 Safeway™ 상점이 Starbucks™ 상점/키오스크를 포함하거나, Safeway™ 상점이 Starbucks™ 상점 근처에 있거나, 또는 사용자가 Safeway™ 상점으로부터 Starbucks™ 상점으로 이동하는 경우와 같이 다수의 상황들에 발생할 수 있다. 이러한 상황들에서, 위치 압축 및 분석 모듈(324)은 Safeway™ 상점에 대응하는 적어도 하나의 위치 이력 레코드(지속기간은 관심 지점으로서 Safeway™ 상점을 갖는 제 1 레코드와 마지막 레코드 사이의 시간 차이에 기초하여 결정됨) 및 Starbucks™ 상점에 대응하는 적어도 하나의 다른 위치 이력 레코드(지속기간은 관심 지점으로서 Starbucks™ 상점을 갖는 제 1 레코드와 마지막 레코드 사이의 시간 차이에 기초하여 결정됨)를 생성할 수 있다.
[00102] 일 실시예에서, 위치 이력 레코드들은 관심 지점 내의 루트에 대응할 수 있다. 예를 들어, 복수의 시간 및 포지션 레코드들은 Safeway™ 상점에 대응할 수 있고, 복수의 시간 및 포지션 레코드들은 Safeway™ 상점을 통한 모바일 디바이스(108)의 루트를 표시할 수 있다. 이 상황에서, 위치 압축 및 분석 모듈(324)은 이들 포지션들을 대조(collate)하고 이를 경로로서 위치 이력 레코드와 연관된 정보에 포함시킬 수 있다. 이는, Safeway™가 그의 상점의 레이아웃을 개선하고 쿠폰을 제공하는 등을 할 수 있도록 위치 이력 레코드들과 연관된 정보를 요청할 때 Safeway™ 애플리케이션이 루트를 요청할 수 있기 때문에 유익하다.
[00103] 다른 실시예에서, 위치 이력 레코드는 하나 또는 그 초과의 다른 위치 이력 레코드들의 서브-레코드일 수 있다. 예를 들어, 복수의 시간 및 포지션 레코드는 Safeway™ 상점에 대응할 수 있고, 위치 이력 레코드와 연관된 정보를 저장하는 메인 레코드는 Safeway™에 대응하도록 생성될 수 있다. 그러나 위치 압축 및 분석 모듈(324)은 메인 Safeway™ 레코드 하의 서브 위치 이력 레코드로서 정의된 부가적인 위치 이력 레코드들을 생성할 수 있으며, 각각의 서브 위치 이력 레코드는 모바일 디바이스(108)가 Safeway™ 상점 내에 로케이팅된 영역들을 포함할 수 있다. 예를 들어, 모바일 디바이스(108)가 30 분 동안 베이커리 섹션에 로케이팅되었음을 표시하는 서브 위치 이력 레코드 및 모바일 디바이스(108)가 5 분 동안 농산물 섹션에 로케이팅되었음을 표시하는 다른 서브 위치 레코드가 있을 수 있다. 이는, 모바일 디바이스(108)가 어디에 로케이팅되었는지에 대한 보다 많은 입도를 애플리케이션이 수신하도록 허용하고, 보다 많은 입도가 필요할 때 위치 이력 레코드들과 연관된 정보를 조직화하기 위한 보다 유연한 접근법을 허용한다.
[00104] 다른 실시예에서, 위치 이력 레코드는 1차 관심 지점 내의 2차 관심 지점에 대응할 수 있다. 예를 들어, Bellagio™ 카지노에 대응하는 복수의 시간 및 포지션 레코드들이 있을 수 있다. 위치 압축 및 분석 모듈(324)은 모바일 디바이스(108)가 Bellagio™에 또는 그 근처에 로케이팅된 전체 지속기간에 대한 위치 이력 레코드를 생성할 수 있다. 그러나 위치 압축 및 분석 모듈(324)은 또한, Dale Chihuly의 Fiori di Como와 같이 Bellagio™ 내의 다양한 관심 지점들에 대한 위치 이력 레코드들을 생성할 수 있다.
[00105] 일 실시예에서, 위치 압축 및 분석 모듈(324)은 가장 가까운 관심 지점에 대한 위치 이력 레코드와 연관된 정보의 레코드들을 생성한다. 예를 들어, 시간 및 포지션 레코드들은 모바일 디바이스(108)가 10분 동안 Fiori di Como 샹들리에 근처에, 30분 동안 Bellagio™의 Fountains 근처에 그리고 25분 동안 Bellagio™ Botanical Gardens 근처에 로케이팅되었음을 표시할 수 있다. 그러나 Bellagio™에 대한 관심 지점에 대응하는 단일 위치 이력 레코드를 생성하기 보다는, 위치 압축 및 분석 모듈(324)은 적어도 3개의 위치 이력 레코드들 즉, Fiori di Como에 대한 하나, Bellagio™의 Fountains에 대한 다른 하나, 및 Bellagio™의 Botanical Gardens에 대한 마지막 하나를 생성할 수 있다.
[00106] 일 실시예에서, 위치 압축 및 분석 모듈(324)은 또한 하나 또는 그 초과의 이전에 생성된 위치 이력 레코드들을 포함하는, 관심 지점에 대응하는 하나 또는 그 초과의 위치 이력 레코드들을 생성할 수 있다. 예를 들어, 위의 예에서, 위치 압축 및 분석 모듈(324)은 또한 Bellagio™에 대한 위치 이력 레코드를 생성할 수 있다.
[00107] 일 실시예에서, 위치 압축 및 분석 모듈(324)은, 하나 또는 그 초과의 위치 이력 레코드들을 생성하는데 이전에 사용된 동일한 시간 및 포지션 레코드들에 기초하여 하나 또는 그 초과의 위치 이력 레코드를 생성할 수 있다(즉, Bellagio의 Fountains 위치 이력 레코드를 생성하는데 사용되고 이제 Bellagio™ 위치 이력 레코드를 생성하는데 사용됨). 특히, 하나 또는 그 초과의 이전에 생성된 위치 이력 레코드에 대응하는 위치 이력 레코드를 생성하고 그리고/또는 위치 이력 레코드들을 생성하는데 이전에 사용된 시간 및 포지션 레코드를 사용할 제한을 표시하는 임계치가 있을 수 있다. 예를 들어, 임계치는 도시로 세팅될 수 있고, 따라서 위의 예에서, 위치 압축 및 분석 모듈(324)에 의해, 관심 지점이 Las Vegas인 다른 위치 이력 레코드가 생성될 수 있다. 그러나 위치 압축 및 분석 모듈(324)은, Nevada 주에 대한 위치 이력 레코드를 생성하지 않을 것은데, 그 이유는 그것이 임계치를 위반할 것이기 때문이다.
[00108] 일 실시예에서, 위치 이력 레코드를 생성하기 위한 최소 지속기간 임계치가 있을 수 있다. 예를 들어, 위치 압축 및 분석 모듈(324)은 위치 이력 레코드가 생성되기 위해 지속기간이 적어도 5분 길이가 되도록 요구하는 임계치를 사용할 수 있다. 따라서, 하나 또는 그 초과의 관심 지점들이 4 분의 연관된 지속기간만을 갖는 경우, 위치 압축 및 분석 모듈(324)은 위치 이력 레코드를 생성하지 않을 것이다. 다른 실시예에서, 위치 압축 및 분석 모듈(324)은 하나 또는 그 초과의 관심 지점들에 대한 위치 이력 레코드를 생성할 수 있지만, 관심 지점에서의 지속기간이 임계치를 충족하지 않으면, 위치 압축 및 분석 모듈(324)은 위치 이력 레코드를 삭제할 수 있다. 예를 들어, 임계치가 15 분인 경우, 도 5의 위치 이력 레코드(502K)는 위치 이력 레코드(502K)의 지속기간 열(510)의 지속기간(5분)이 15 분 미만이기 때문에 삭제될 수 있다. 대안적으로 또는 부가적으로, 지속기간이 임계치를 초과하거나 임계치를 충족시키는 경우, 위치 압축 및 분석 모듈(324)은 위치 이력 레코드를 생성하지 않을 수 있고 그리고/또는 위치 이력 레코드를 삭제할 수 있다. 예를 들어, 임계치가 1 시간이고 위치 이력 레코드가 5 시간의 지속기간을 갖는 경우, 위치 압축 및 분석 모듈(324)은 그 특정 위치 이력 레코드를 삭제할 수 있다.
[00109] 블록(706)에서, 위치 압축 및 분석 모듈(324)은 도 3을 참조하여 위에서 논의된 바와 같이, 하나 또는 그 초과의 위치 레코드들과 연관된 POI들에 대한 메타데이터 태그들을 결정할 수 있다.
[00110] 위에서 논의된 바와 같이, 메타데이터 태그들은 하나 또는 그 초과의 센서들로부터의 센서 데이터를 포함할 수 있다. 예를 들어, 메타데이터 태그는 또한 도 6을 참조하여 위에서 논의된 바와 같이, 모바일 앱에 의해 요청되는 경우, 온도 센서로부터의 데이터를 포함할 수 있다. 일 실시예에서, 메타데이터 태그들은 위치 레코드에 대응하는 모든 센서 데이터를 포함할 수 있다. 다른 실시예에서, 메타데이터 태그들은 센서 데이터의 평균, 센서 데이터의 중간값, 센서 데이터의 표준 편차, 또는 이들의 임의의 결합인 센서 데이터를 포함할 수 있다. 예를 들어, 유사한 포지션에 대응하고 하나 또는 그 초과의 센서들(224) 중 심박수 센서로부터 55 bpm, 60 bpm 및 65 bpm의 심박수 데이터와 연관되고 하나 또는 그 초과의 센서들(224) 중 온도 센서로부터 98도, 98.5도, 및 99.5도의 온도 데이터와 또한 연관될 수 있는 3개의 위치 레코드들이 있을 수 있다. 위치 압축 및 분석 모듈(324)은 60 bpm의 평균 심박수 및 98.67 도의 평균 온도를 포함하는 메타데이터 태그들을 생성할 수 있다. 일 실시예에서, 위치 압축 및 분석 모듈(324)은 메타데이터 태그들을 생성할 수 있으며, 나중에 센서 데이터를 리트리브할 때, 하나 또는 그 초과의 센서들(224)로부터의 데이터로 위치 이력 레코드를 업데이트할 수 있다.
[00111] 일 실시예에서, 도 3을 참조하여 위에서 논의된 바와 같이, 메타데이터 태그들은 또한 대응하는 POI와 연관된 활동을 포함할 수 있다. 위치 압축 및 분석 모듈(324)은 사용자 프롬프트들, 사용자 변경들, 사용자-정의 규칙들, 사전구성된 규칙들, 운영 체제 규칙들, 애플리케이션 규칙들, 머신 학습, OEM 규칙들, 관심 지점 데이터베이스, 지불 정보 또는 이들의 임의의 결합에 기초하여 모바일 디바이스(108)의 활동을 결정할 수 있다. 예를 들어, 위치 압축 및 분석 모듈(324)은, 위치 압축 및 분석 모듈(324)이 위치 이력 레코드와 연관된 메타데이터 태그를 생성할 때 또는 메타데이터 태그가 생성된 후에 활동을 분류하도록 사용자에게 프롬프팅(prompt)할 수 있다. 예를 들어, 사용자가 식료품 상점을 나간 후에, 사용자는 활동을 분류하도록 프롬프팅될 수 있고, 사용자는 "식료품 쇼핑"의 활동을 입력 및/또는 선택할 수 있다. 프로세서(228)는 이 사용자-정의된 규칙 및/또는 머신 학습을 통해 향후의 상호작용들을 위해 관심 지점을 식료품 쇼핑과 연관시킬 수 있다.
[00112] 다른 예에서, 사용자는 몰(mall) POI가 "쇼핑"으로 분류된 활동임을 이전에 정의했을 수 있다. 그러나 주어진 여행 동안, 모바일 디바이스(108)의 사용자는 몰에서 체육관을 방문했을 수 있고, 따라서 사용자는 이 여행에 대한 활동의 분류를 예를 들어, "피트니스"로 변경할 수 있다. 위치 압축 및 분석 모듈(324)은 활동들을 더 잘 분류하기 위해 머신 학습을 활용할 수 있다.
[00113] 다른 예에서, 위치 이력 레코드와 연관된 메타데이터 태그는 Whole Foods™에 대한 최근의 여행에 대해 생성될 수 있지만, 모바일 디바이스(108)의 사용자에게 프롬프팅하기 보다는, 위치 압축 및 분석 모듈(324)이 관심 지점의 분류(이 경우에, 식료품 상점일 것임)를 포함할 수 있는 관심 지점 데이터베이스에 액세스할 수 있다. 이 경우, 위치 압축 및 분석 모듈(324)은 예를 들어, 이 정보를 이용하여 활동을 "식료품 쇼핑"으로서 분류할 수 있다.
[00114] 다른 예에서, 모바일 디바이스(108)의 사용자는 몰에 로케이팅된 식료품 상점을 방문할 수 있지만, 포지셔닝 엔진(322)은 모바일 디바이스(108)가 몰 내의 어디에 로케이팅되는지를 정확히 식별하기 위해 정확한 포지션을 결정할 수 없을 수 있다. 위치 압축 및 분석 모듈(324)은 몰에 대한 위치 이력 레코드와 연관된 메타데이터 태그를 생성하고 이를 "쇼핑"으로서 분류할 수 있다. 그러나 사용자가 모바일 디바이스(108) 상의 애플리케이션을 통해 지불 정보를 제공하거나 애플리케이션을 통해 최근 트랜잭션을 리트리브할 수 있는 경우(예를 들어, 사용자는 물리적 신용 카드로 지불하였지만, 신용 카드에 대한 애플리케이션이 최근 트랜잭션을 신속하게 검색할 수 있음), 위치 압축 및 분석 모듈(324)은 이 정보를 활용하여 트랜잭션이 식료품 상점에서 발생했음을 결정하고, 정보를 이용하여 관심 지점을 획득하고, 식료품 쇼핑으로서 활동을 분류할 수 있다.
[00115] 일 실시예에서, 위치 레코드들은, 위치 이력 레코드가 생성된 이후, 포지션 레코드에 기초하여 위치 이력 레코드가 생성될 수 없음을 위치 압축 및 분석 모듈(324)이 결정한 이후, 또는 이들의 임의의 결합 이후에 삭제될 수 있다. 예를 들어, 위치 압축 및 분석 모듈(324)은 2개의 위치 레코드들이 동일한 관심 지점에 있지 않다는 것을 결정할 수 있으며, 대신에, 모바일 디바이스(108)의 사용자가 운전중이거나 포지션이 관심 지점 보다는 로드에 맵핑한다는 것을 표시할 수 있다. 그러한 상황에서, 위치 압축 및 분석 모듈(324)은 이 레코드들을 삭제할 수 있다.
[00116] 도 5의 포지션 ID 열(518)을 참조하면, 일 양상에서, 위치 이력 레코드는 열(518)에서 포지션의 식별의 결여에 대한 응답으로 삭제될 수 있다. 예를 들어, 위치 이력 레코드(502L)는 위치 이력 레코드(502L)의 포지션 ID 열(518)의 포지션의 식별의 결여에 대한 응답으로 삭제될 수 있다.
[00117] 프로세서(228)는 또한 위치 이력 데이터베이스를 유지하기 위한 다양한 기능들을 수행할 수 있다. 도 8은 본 개시의 적어도 하나의 양상에 따라 위치 이력 레코드들의 데이터베이스를 유지하기 위한 방법(800)을 예시하는 흐름도이다. 802에서, 프로세서(228)는 위치 이력 레코드를 선택한다. 804에서, 프로세서(228)는 데이터베이스로부터 위치 이력 레코드를 제거할지 여부를 결정한다.
[00118] 일 실시예에서, 프로세서(228)는 시간 임계치를 초과하는 위치 이력 레코드를 제거할 수 있다. 예를 들어, 시간 임계치가 2 개월인 경우, 프로세서(228)는 도 5의 위치 이력 레코드(502Z)와 같이 2 개월보다 오래된 위치 이력 레코드들을 삭제할 수 있다. 이러한 방식으로 사용자 및/또는 애플리케이션들에 대해 가치가 있기에는 너무 오래된 시간들을 갖는 위치 이력 레코드가 삭제될 수 있다.
[00119] 다른 실시예에서, 프로세서(228)는 하나 또는 그 초과의 위치 이력 레코드들과 관련된 컴퓨테이션(computation)을 생성할 수 있다. 제한이 아닌 예로서, 컴퓨테이션은 위치 이력 레코드들의 수의 카운트, 하나 또는 그 초과의 위치들의 지속기간(510)의 평균, 메타데이터, 하나 또는 그 초과의 위치 이력 레코드들에 대한 다른 통계들(예를 들어, 평균, 표준 편차 등), 또는 이들의 임의의 결합을 포함할 수 있다. 예를 들어, 프로세서(228)는 각각의 관심 지점(예를 들어, Whole Foods®)에 대한 통계, 예컨대, 지난 2 개월 동안 Whole Foods®인 연관된 관심 지점을 갖는 위치 이력 레코드들의 수, 그 시간 기간 동안 Whole Foods®에서의 평균 지속기간, 최대 지속기간, 최소 지속기간, 방문한 상이한 Whole Foods® 상점들의 수, 방문한 각각의 Whole Foods®의 위치들 등을 생성할 수 있다. 일 실시예에서, 이 정보는 또한 관심 지점 내의 특정 위치에 대해 생성될 수 있다(예를 들어, Whole Foods®의 베이커리에서의 평균 지속기간, Whole Foods®의 체크아웃에서의 평균 지속기간 등). 이 정보는 위치 이력 레코드와 함께 그리고/또는 별개의 데이터베이스에 저장될 수 있다.
[00120] 일 실시예에서, 프로세서(228)는 이전 애플리케이션 요청들에 기초하여 시간 기간을 결정할 수 있다. 예를 들어, 프로세서(228)는 애플리케이션이 마지막 5개의 요청들에 대해 1 개월 시간 기간만을 요청한 것으로 결정할 수 있다. 다른 예에서, 프로세서(228)는, 시간 기간의 시작 시간으로서 애플리케이션이 요청을 한 마지막 시간 및 현재 날자로서 시간 기간의 종료 시간을 활용할 수 있다.
[00121] 이러한 다양한 계산들에 기초하여, 804에서, 프로세서(228)는 데이터베이스로부터 위치 이력 레코드를 제거할지 여부를 결정한다. 804에서, 프로세서(228)가 위치 이력 레코드를 제거하는 것으로 결정하는 경우, 806에서, 프로세서(228)는 연관된 메타데이터 태그들과 같이, 삭제되는 위치 이력 레코드와 연관된 임의의 정보를 보유할지 여부를 결정한다. 이는, 정보의 나이(age), 정보의 세부사항의 레벨(더 적은 세부사항을 갖는 레코드는 중요도의 결여를 표시할 수 있음), 세부사항의 결여(정보를 거의 갖지 않는 레코드는 중요도의 결여를 표시할 수 있음), 지속기간 등과 같은 위치 이력 레코드를 삭제할지 여부에 관한 고려사항들과 유사한 고려사항들을 포함할 수 있다.
[00122] 프로세서(228)가 위치 이력 레코드와 연관된 정보를 삭제하는 것으로 결정하는 경우, 808에서, 프로세서(228)는 정보를 삭제한다. 그러나 프로세서(228)가 위치 이력 레코드와 연관된 정보를 보유하는 것으로 결정하는 경우, 810에서, 프로세서(228)는 예를 들어, 메모리(210)에 정보를 저장한다. 어쨌든, 812에서, 프로세서(228)는 위치 이력 레코드를 삭제한다. 그 후, 흐름은 프로세서가 분석할 다음 위치 이력 레코드를 선택하는 802로 리턴한다.
[00123] 일 실시예에서, 프로세서(228)는 동일한 활동을 갖는 위치 이력 레코드들에 대한 다양한 통계를 결정할 수 있다. 예를 들어, 프로세서(228)는 도 4에 예시된 쇼핑 활동, 쇼핑 활동의 서브세트들(예를 들어, Safeway™ 위치, Trader Joe's 위치 및 Whole Foods® 위치) 및 2개의 중간 서브세트들(예를 들어, 식료품 쇼핑 중간 서브세트 및 의류 쇼핑)로 위치 이력 레코드를 식별할 수 있다. 프로세서(228)는 추가로, 이들 위치 이력 레코드들의 평균 시간 지속기간, 평균 시각(average time of day) 등을 결정할 수 있다.
[00124] 예에서, 모바일 디바이스(108)의 사용자가 레스토랑 Chez LaVerne, Chez Maxine 및 Chez Patricia에 대한 리뷰들을 작성했다는 정보를 Yelp 애플리케이션과 같은 주어진 애플리케이션이 수신한 경우, 애플리케이션은 리뷰들의 정당성(legitimacy)을 평가하기 위해 식사의 활동과 관련된 위치 이력 레코드에 관한 컴퓨테이션을 요구할 수 있다. 위치 이력 레코드들과 관련된 컴퓨테이션이 애플리케이션에 제공되는 경우, 애플리케이션은 모바일 디바이스(108)(및 확장하여, 모바일 디바이스(108)의 사용자)가 지난 2달 동안 8번(방문 당 30 분의 평균 시간 지속기간을 가짐)의 상이한 시간들에 Chez LaVerne에 있었던 최근 위치 이력을 갖는다는 것을 결정할 수 있다. 애플리케이션은 Chez LaVerne의 리뷰가 고도의 정당성 및/또는 가치를 갖는다는 것을 결정할 수 있고 애플리케이션은 이 정보를 활용하여 사용자의 리뷰의 가중치 등을 조정할 수 있다.
[00125] 그러나 위치 이력 레코드들과 관련된 컴퓨테이션들이 애플리케이션에 제공되는 경우, 애플리케이션은 모바일 디바이스(108)(및 확장하여, 모바일 디바이스(108)의 사용자)가 Chez Maxine에 있었던 최근 위치 이력을 갖지 않는다는 것을 결정할 수 있다. 따라서, 애플리케이션은 Chez Maxine의 리뷰가 낮은 정도의 정당성을 갖는다고 결정할 수 있다. 위치 이력 레코드들과 관련된 컴퓨테이션들이 애플리케이션에 제공되는 경우, 애플리케이션은 모바일 디바이스(108)(및 확장하여, 모바일 디바이스(108)의 사용자)가 지난 2달 동안 85번(방문 당 4시간의 평균 시간 지속기간을 가짐)의 상이한 시간들에 Chez Patricia에 있었던 최근 위치 이력을 갖는다는 것을 결정할 수 있다. 모바일 디바이스(108)의 사용자가 Chez Patricia의 직원임을 위치 이력이 시사하기 때문에, 애플리케이션은 Chez Patricia의 리뷰가 낮은 정도의 정당성을 갖는다고 결정할 수 있다.
[00126] 본 개시는 애플리케이션이 위치 이력 레코드들에 액세스하기 위한 허가 모델을 제공한다. Android와 같은 운영 체제들 상의 현재 허가들은 위치 이력을 노출하기에 적합하지 않다. 현재 ACCESS_COARSE_LOCATION 및 ACCESS_FINE_LOCATION 만이 지원된다.
[00127] 본 개시는 모바일 앱들이 위치 이력 레코드들 및/또는 위치 이력 레코드들 내의 정보의 서브세트를 리트리브하도록 허용하기 위한 부가적인 허가들을 제공한다. 예를 들어, ACCESS_COARSE_LOCHISTORY의 허가는 모바일 앱이 모든 위치 이력 레코드들에 액세스하도록 허용할 수 있다. ACCESS_FINE_LOCHISTORY의 허가는, 모바일 앱이 모든 위치 이력 레코드들(그러나 더 뛰어난 세부사항 레벨로)에 액세스하도록 또한 허용할 수 있다. ACCESS_CATEGORY_LOCHISTORY의 허가는 모바일 앱이 특정 위치들의 카테고리들에 대한 위치 이력 레코드들에 액세스하도록 허용할 수 있다. 이 허가는 쇼핑, 피트니스, 식사 등과 같은 카테고리 마다 확장될 수 있다. 부가적으로, 이 액세스성(accessibility)은 모바일 앱이 모바일 디바이스(108)의 사용자에게 쿠폰 또는 다른 프로모션을 제공하는 것에 대한 응답으로 변경될 수 있다. 인지되는 바와 같이, 다른 허가들이 모바일 앱에 대해 이용 가능할 수 있다.
[00128] 상이한 모바일 앱들은 위치 이력 정보와 상이한 필요성들을 가질 수 있다. 예를 들어, 레스토랑 리뷰 애플리케이션은 레스토랑을 방문하고 나서 며칠 후에 작성된 리뷰들을 업보팅(upvoting)/검증하기 위한 소정의 정보를 필요할 수 있는 반면에, 피트니스 애플리케이션은 체육관 또는 공원에 대한 방문들을 카운트하기 위해 상이한 정보를 필요로 할 수 있다. 백화점 애플리케이션은 모바일 디바이스(108)의 사용자에 대한 제안들을 맞춤화(tailor)하도록 백화점 또는 다른 소매상들에서 체류 시간을 카운트하기 위해 또 다른 정보를 필요로 할 수 있다.
[00129] 따라서, 본 개시는 모바일 디바이스(108)의 사용자 및/또는 모바일 앱의 필요성들에 기초하여 상이한 레벨들의 세부사항 및 입도의 위치 이력 레코드들을 노출할 수 있다. 모바일 앱은 요청된 액세스의 유형 및 레벨을 특정하는 API를 사용하여 위치 이력 레코드에 액세스할 수 있다. 이러한 로직은 "LocationHistoryAPI()"로서 표현된 도 3의 위치 이력 추출/추상 모듈(326)에서 구현된다. API를 사용하여 요청될 수 있는 정보는, 검색할 정보의 시간 기간, 정보의 카테고리, 특정 활동과 관련된 위치 이력 정보, 어떤 정보가 모바일 앱에 대해 액세스 가능한지에 관한 결정, 합, 중간값, 평균 등과 같은 위치 이력 레코드들의 특성들(예를 들어, 방문 및 체류 시간들)에 관한 컴퓨테이션들을 포함한다. 부가적으로, 모바일 앱은 API를 통해 위치 이력 추출/추상 모듈(326)에 지오펜스(geofence) 파라미터들을 전달할 수 있고, 위치 이력 추출/추상 모듈(326)은 위치 이력 레코드들의 특성들에 관한 컴퓨테이션들을 수행할 때 지오펜스 파라미터들을 사용할 수 있다.
[00130] LocationHistoryAPI()에 대한 예시적인 호출들은 다음을 포함할 수 있다:
getLocHistoryVisits(time, category)
getLocHistoryVisits(time, geofence)
getLocHistoryDwellTimes(time, category)
getLocHistoryDwellTimes(time, activity).
[00131] 일 실시예에서, 모바일 앱으로부터의 요청은, 관심 지점, 위치 이력 레코드들의 포지션과 연관된 활동, 활동의 카테고리, 요청을 하는 애플리케이션의 카테고리, 관심 지점의 카테고리, 위치 이력 레코드들에 액세스하기 위한 애플리케이션의 크리덴셜들, 포지션의 결정과 연관된 포지션 불확실성 임계치, 포지션을 결정하는데 사용된 기술, 검색할 위치 이력 레코드의 시간 기간, 위치 이력 레코드가 생성된 시간, 애플리케이션에 의한 위치 이력 레코드의 사용, 애플리케이션의 명칭, 모바일 디바이스(108)의 센서에 의해 생성된 데이터의 명세, 또는 이들의 임의의 결합을 포함할 수 있다.
[00132] 일 실시예에서, 위치 이력 추출/추상 모듈(326)은 요청 내의 정보를, 사용자 프롬프트, 사전 설정된 허가들, 사전 설정된 규칙들, 이전에 그랜트된 허가들 또는 이들의 임의의 결합과 비교함으로써 모바일 앱이 요청된 정보에 액세스하도록 하는 허가를 갖는지를 결정할 수 있다.
[00133] 일 실시예에서, 위치 이력 추출/추상 모듈(326)은, 사용자 프롬프트를 활용함으로써 모바일 앱이 요청된 정보에 액세스하도록 하는 허가를 갖는지를 결정할 수 있다. 예를 들어, 모바일 앱의 설치 동안, 사용자에게는, 애플리케이션이 사용자의 위치 이력 레코드들에 액세스할 수 있는지 여부 및 사용자의 위치 이력 레코드들로부터 애플리케이션이 어느 것에 액세스할 수 있는지에 대한 제한들이 있는지에 대해 대답하도록 프롬프팅될 수 있다. 사용자 프롬프트는 또한, 애플리케이션이 위치 이력 레코드들을 요청할 때, 애플리케이션이 모바일 디바이스(108)의 위치 이력 레코드들에 액세스하도록 하는 허가를 여전히 갖는지 여부를 결정하도록 디스플레이될 수 있다.
[00134] 다른 실시예에서, 사용자 프롬프트는 쿠폰들, 보상들 등과 같은 부가적인 정보를 포함할 수 있다. 애플리케이션 요청은, 애플리케이션이 모바일 디바이스(108)의 위치 이력에 액세스하도록 사용자가 허용하게 추가로 유인하기 위해 사용될 수 있는, 사용자 프롬프트에 디스플레이될 수 있는 유인책(inducement)을 포함할 수 있다. 예를 들어, Starbucks™ 애플리케이션은 Starbucks™ 상점과 연관된 임의의 위치 이력 레코드들을 요청할 수 있고, 애플리케이션 요청은, 모바일 디바이스(108)의 위치 이력 레코드들에 대한 Starbucks™ 애플리케이션 액세스를 사용자가 허용하는 대가로, 모바일 디바이스(108)의 사용자가 Starbuck™에서 무료 커피 음료를 받도록 허용하는 유인책을 포함할 수 있다.
[00135] 다른 예에서, 캐리어, 제조자, 운영 체제 개발자 등은, 어느 애플리케이션들이 위치 이력 레코드들에 액세스할 수 있는지, 그리고 애플리케이션이 위치 이력 레코드에 액세스할 수 있는 범위를 표시하는, 모바일 디바이스(108) 상의 허가를 세팅할 수 있다.
[00136] 일 실시예에서, 모바일 디바이스(108)의 사용자는 어느 애플리케이션들이 위치 이력 레코드들에 액세스할 수 있는지를 표시하는 규칙들을 세팅할 수 있다. 예를 들어, 사용자는, 모바일 디바이스(108)가 지난 주 내에 식료품 상점에 있었던 횟수에 모든 쿠폰 애플리케이션이 액세스하도록 허용하는 규칙을 세팅할 수 있다. 이 상황에서, 대신에, 사용자가 백화점들에 다녀온 횟수에 대한 위치 이력 정보를 쿠폰 애플리케이션이 요청하는 경우, 요청은 거부될 수 있거나 사용자는 프롬프팅될 수 있다.
[00137] 다른 예에서, 사용자는 쇼핑 애플리케이션이 대응하는 상점 위치들과 연관된 위치 이력 정보에 액세스하는 것을 허용할 수 있다. 따라서, 사용자가 새로운 쇼핑 애플리케이션을 설치할 때, 위치 이력 추출/추상 모듈(326)은 머신 학습을 통해, 사용자의 허가 패턴에 액세스하고 이 허가를 새로운 쇼핑 애플리케이션에 대한 디폴트로서 세팅할 수 있다.
[00138] 다른 예에서, 사용자는 애플리케이션이 모바일 디바이스(108)의 위치 이력 레코드들에 액세스하도록 이전에 항상 허용했을 수 있어서, 위치 이력 추출/추상 모듈(326)은 사용자에게 프롬프트해야 할 필요 없이 이 특정 요청에 대한 모바일 디바이스(108)의 위치 이력 레코드에 대한 애플리케이션 액세스를 그랜트할 수 있다.
[00139] 일 실시예에서, 위치 이력 추출/추상 모듈(326)은 요청 애플리케이션이 위치 이력 정보를 요청할 때 사용자에게 프롬프트할 수 있고, 위치 이력 추출/추상 모듈(326)은 프롬프트에 대한 사용자의 응답에 기초하여 애플리케이션이 위치 이력 레코드들에 액세스할 수 있는지를 결정할 수 있다. 예를 들어, 애플리케이션이 위치 이력 정보를 요청할 때, 애플리케이션이 위치 이력 정보에 액세스할 수 있는지에 대답하도록 프롬프트가 사용자에게 디스플레이될 수 있고, 프롬프트는 요청 범위를 디스플레이할 수 있다.
[00140] 부가적으로, 애플리케이션 요청은 모바일 디바이스(108)의 사용자가 모바일 디바이스(108)의 위치 이력의 프라이버시(privacy)를 적절히 제어하도록 허용하기 위한 정보를 포함할 수 있다. 예를 들어, 도 9를 참조하면, 위치 이력 정보는 일련의 지점들(910)로서 표현된 모바일 디바이스(108)의 루트에 대한 상세한 정보 및 루트와 연관된 상세한 심박수 센서 정보를 포함할 수 있다. 일련의 지점들(910)은 주기적 GPS 픽스들에서 모바일 디바이스(108)의 포지션들을 표현할 수 있다. 위치 이력 레코드는 또한, 모바일 디바이스(108)의 루트의 보다 고-레벨의 뷰를 포함할 수 있으며, 여기서 모바일 디바이스(108)의 포지션은 모바일 디바이스(108)가 그 범위 내에 있고 액세스될 수 있는 복수의 액세스 포인트들(예를 들어, WLAN 액세스 포인트들, Bluetooth® 액세스 포인트들 등)의 커버리지 영역들(920)에 대응할 수 있다. 마지막으로, 위치 이력 레코드들은 모바일 디바이스(108)의 위치의 고-레벨 뷰를 포함할 수 있으며, 여기서 모바일 디바이스(108)의 포지션은 모바일 디바이스(108)를 서빙하는 셀룰러 기지국의 커버리지 영역(930)에 대응할 수 있다.
[00141] 보수계 애플리케이션의 경우에, 모바일 디바이스(108)의 사용자는 애플리케이션이 모바일 디바이스(108)의 상세 루트(즉, 일련의 지점들(910))에 액세스하도록 허용하지만 루트와 연관된 심박수 센서 정보에 액세스하지 못하게 할 수 있다. 그러나 체중 감소 애플리케이션의 경우에, 사용자는 애플리케이션이 모바일 디바이스(108)의 루트와 연관된 심박수 센서 정보에 액세스하도록 허용할 수 있다. 그러나 모바일 디바이스(108)의 루트에 대한 액세스들을 제공하기 보다는, 사용자는 심박수 센서 정보가 레코딩된 고-레벨 영역(930)에 대한 액세스들만을 수용하도록 체중 감량 애플리케이션의 허가를 제한할 수 있다.
[00142] 일 실시예에서, 위치 이력 정보에 대한 요청의 정보는 위치 이력 레코드들을 필터링하는데 사용될 수 있다. 예를 들어, 위치 이력 정보에 대한 요청은 식료품 쇼핑과 같은 카테고리 또는 서브-카테고리를 포함할 수 있다. 위치 이력 추출/추상 모듈(326)은 요청 애플리케이션이 식료품 쇼핑과 연관된 위치 이력 레코드들에 액세스할 수 있는지를 결정할 수 있으며, 만약 그렇다면, "식료품 쇼핑"과 연관된 관심 지점들을 갖는 위치 이력 레코드들만을 포함하도록 위치 이력 레코드들을 필터링할 수 있다.
[00143] 도 5를 참조하면, 예를 들어, 위치 이력 레코드들(502A-Z)은 위치 이력 레코드들(502D, 502E 및 502I)을 포함하는 Safeway™로부터의 위치 이력 레코드 및 위치 이력 레코드(502F)를 포함하는 Whole Foods™로부터의 위치 이력 레코드들을 포함하도록 필터링될 것이다. 그러나 그것이 "식료품 쇼핑"으로 분류되지 않았기 때문에, 그것은 7-Eleven™과 연관된, 502M과 같은 위치 이력 레코드를 포함하지 않을 것이다.
[00144] 일 실시예에서, 요청은 위치 이력 레코드의 입도 레벨(본원에서 위치 입도로서 또한 지칭됨)의 표시를 포함할 수 있다. 예를 들어, 애플리케이션은 사용자가 특정 상점에 있었던 위치, 사용자가 상점 내의 특정 위치에서 소비한 지속기간, 상점 내의 사용자의 루트 등을 알기를 원할 수 있는 반면에, 다른 애플리케이션은 사용자가 상점에 얼마나 여러 번 있었는지만을 알기를 원할 수 있다. 위치 이력 레코드들은 상이한 애플리케이션 요구들, 사용자 허가들, 포지션 결정을 위해 이용 가능한 기술들 등에 기초하여 다양한 정도의 위치 입도를 포함할 수 있다. 예를 들어, 식료품 상점과 연관된 애플리케이션은 상점 내의 루트 계획, 광고들의 배치 등을 보조하기 위해 사용자들의 정확한 위치들(예를 들어, 도 9의 일련의 지점들(910))를 알기를 바랄 수 있는 반면에, 쿠폰 애플리케이션은 사용자에게 보상 쿠폰들을 제공하기 위해 사용자가 특정 상점에 다녀간 횟수들을 필요로 할 수 있다. 다른 예에서, 사용자는 고정밀 위치 데이터(예를 들어, 도 9의 일련의 지점들(910))에 대한 하나의 애플리케이션 액세스를 허용할 수 있는 반면에, 다른 애플리케이션은 저정밀 위치 데이터(예를 들어, 도 9의 커버리지 영역들(920 또는 930))에만 액세스하도록 허용된다.
[00145] 일 실시예에서, 요청은 키(key)와 같은 애플리케이션에 대한 크린덴셜들을 포함할 수 있다. 위치 이력 추출/추상 모듈(326)은 애플리케이션이 위치 이력 레코드들에 액세스하도록 허용되는지를 결정하기 위해 크리덴셜들을 활용할 수 있다. 예를 들어, 위치 이력 추출/추상 모듈(326)은, 애플리케이션이 위치 이력 정보에 액세스하도록 허용되는지를 결정하기 위해 요청으로부터의 키를 위치 이력 레코드와 연관된 키와 비교할 수 있다. 키는 위치 이력 레코드들(502A-502Z) 중 적어도 하나의 필드로서 또는 메모리(210)의 상이한 부분에 저장될 수 있다.
[00146] 키는, 관심 지점의 카테고리, 활동의 카테고리, 애플리케이션의 카테고리, 하나 또는 그 초과의 관심 지점들, 하나 또는 그 초과의 활동들, 모바일 디바이스(108)의 포지션들의 결정과 연관된 포지션 불확실성 임계치, 모바일 디바이스(108)의 포지션을 결정하는데 사용되는 기술, 위치 이력 레코드의 시간 기간, 위치 이력 레코드가 생성된 시간, 애플리케이션에 의한 위치 이력 레코드의 용도, 애플리케이션의 명칭, 모바일 디바이스의 센서에 의해 생성된 데이터, 또는 이들의 임의의 결합과 연관되고 저장될 수 있다.
[00147] 일 실시예에서, 위치 이력 레코드에 액세스하라는 요청은 포지션 불확실성 및/또는 포지션 기술을 포함할 수 있다. 예를 들어, 도 5의 위치 이력 레코드(502E)는 단지 셀룰러 네트워크(101)만으로부터 획득되는 포지션 열(506)의 포지션을 포함할 수 있고 위치 이력 레코드(502D)는 셀룰러 네트워크(101) 및 WiFi와 같은 다른 소스로부터 획득되는 포지션 열(506)의 포지션을 포함할 수 있다. 따라서, 요청이 포지션 기술을 WiFi로 제한하고 모바일 앱이 위치 이력 레코드에 액세스하도록 하는 허가를 갖는 경우, 리턴된 정보는 위치 이력 레코드(502D)로 제한된다. 다른 예에서, 위치 이력 레코드(502E)가 1 킬로미터의 포지션 불확실성을 갖고 위치 이력 레코드(502D)가 50 미터의 포지션 불확실성을 갖는 경우 그리고, 요청이 500 미터보다 큰 포지션 불확실성을 포함하는 경우, 애플리케이션은 위치 이력 레코드(502E)에 액세스할 수 있다. 그러나 요청이 500 미터 미만의 포지션 불확실성을 포함하는 경우, 애플리케이션은 위치 이력 레코드(502D)에 액세스할 수 있다.
[00148] 일 실시예에서, 요청은 시간 기간을 포함할 수 있으며, 여기서 위치 이력 레코드들은 시간 기간 내에 있는 레코드들로 제한된다. 시간 기간은 위치 이력 레코드가 생성된 시기, 포지션이 결정된 시기 등을 특정할 수 있다. 예를 들어, 도 5를 참조하면, 요청이 2014 년 7 월 14 일 오후 12 시부터 2014 년 7 월 14 일 오후 3시까지의 시간 기간을 포함(그리고 애플리케이션이 위치 이력 레코드에 액세스하도록 하는 허가를 갖는 것으로 프로세서(228)가 결정함)하는 경우, 2014 년 7 월 14 일 오후 12 시부터 2014 년 7 월 14 일 오후 12시 30 분까지의 시간 기간 내에 있는 위치 이력 레코드(502I)가 애플리케이션에 제공된다.
[00149] 다른 예에서, 사용자는 프라이버시 모드를 인에이블할 수 있으며, 이는 프라이버시 모드가 인에이블되는 시간 기간으로부터 하나 또는 그 초과의 애플리케이션들이 위치 이력 레코드에 액세스하는 것을 차단한다. 모바일 디바이스(108)의 사용자는 모바일 디바이스(108)의 위치 이력 레코드의 공유를 하나의 애플리케이션으로 제한하기를 바랄 수 있지만, 허가 세팅들을 변경함 없이 일시적으로만 그렇게 하기를 원할 수 있다. 따라서, 사용자는 프라이버시 모드를 인에이블하고 그 애플리케이션이 모바일 디바이스(108)의 위치 이력 레코드에 계속 액세스하는 것을 인에이블할 수 있다. 이 상황에서, 사용자가 프라이버시 모드를 디스에이블한 후에도, 다른 애플리케이션들은 디바이스가 프라이버시 모드에 있었던 시간 기간 내에 생성된 위치 이력 레코드에 액세스하는 것이 허용되지 않을 수 있다.
[00150] 일 실시예에서, 요청은 위치 이력 정보가 어떻게 사용될 것인지를 포함할 수 있다. 예를 들어, 사용자는 모바일 디바이스(108)의 위치 이력에 기초하여 보상들을 제공하는 임의의 애플리케이션이 모바일 디바이스(108)의 위치 이력 레코드들에 액세스하도록 허용될 수 있는 규칙을 세팅할 수 있다. 이러한 상황에서, 애플리케이션이 모바일 디바이스(108)의 사용자에게 프로모션 제안(promotional offering)을 전송하기 위해 위치 이력을 활용하고 있음을 애플리케이션 요청이 표시하는 경우, 위치 이력 추출/추상 모듈(326)은 애플리케이션이 위치 이력 레코드들에 액세스하도록 허용할 수 있고 위치 이력 레코드들의 용도에 기초하여 위치 이력 레코드들을 또한 필터링할 수 있다.
[00151] 다른 실시예에서, 모바일 디바이스(108)의 사용자는, 위치 이력 레코드들의 애플리케이션의 용도에 기초하여 애플리케이션들이 위치 이력 레코드에 액세스하도록 허용할 수 있다. 이 상황에서, 위치 이력 추출/추상 모듈(326)은 요청에서의 위치 이력 레코드들의 용도를 사용자에 의해 허용된 위치 이력 레코드들의 용도와 비교하고, 그 후 비교에 기초하여 애플리케이션이 위치 이력 레코드에 액세스할 수 있는지를 결정한다.
[00152] 일 실시예에서, 요청은 애플리케이션의 명칭을 포함할 수 있다. 예를 들어, 도 5를 참조하면, 요청이 애플리케이션의 명칭으로서 Whole Foods®를 포함하는 경우, 위치 이력 추출/추상 모듈(326)은, 애플리케이션이 Whole Foods® 레코드(502F)와 연관된 위치 이력 레코드들에 액세스할 수 있는지를 결정할 수 있다.
[00153] 일 실시예에서, 애플리케이션은 모바일 디바이스(108)의 하나 또는 그 초과의 센서들(224) 중 특정 센서에 의해 생성된 데이터를 포함하는 위치 이력 레코드들을 요청할 수 있다. 예를 들어, 도 5를 참조하면, 애플리케이션은 심박수 센서로부터의 데이터를 포함하는 위치 이력 레코드들, 예컨대, 심박수 센서에 의해 생성된 정보(즉, 75bpm)를 필드(516)에 포함하는 위치 이력 레코드(502G)를 요청할 수 있다. 사용자는 피트니스 애플리케이션들과 같은 특정 애플리케이션이 센서 데이터에 액세스하도록 허용할 수 있지만, 다른 애플리케이션들 중 어느 것이 이 민감성 데이터에 액세스할 수 있는지를 제어하기를 원할 수 있다.
[00154] 다른 경우들에서, 사용자는 애플리케이션과 위치 이력 정보를 공유하도록 유인될 수 있다. 예를 들어, 애플리케이션은 공포 영화에 결합(tied)될 수 있고, 사용자가 영화관에 있을 때 사용자의 심박수를 모니터링하는 대가로 공포 영화에 대한 무료 티켓을 사용자에게 제공할 수 있다. 다른 예에서, 애플리케이션은 약물 시험(drug trial)에 결합될 수 있고, 사용자는 약물 시험(예를 들어, 원격 환자 모니터링)의 일부로서 애플리케이션과 정보를 공유하기를 원할 수 있다. 이 경우, 사용자의 하루에 걸친 다양한 센서 정보를 제약 회사에 제공하는 것은, 약물의 부작용들 등의 보다 양호한 이해를 허용할 수 있다.
[00155] 일 실시예에서, 애플리케이션 요청은 애플리케이션이 위치 이력 레코드들로부터 유도되기를 원하는 정보가 무엇인지를 포함할 수 있다. 예를 들어, 도 5를 참조하면, 위치 이력 레코드(502D)로부터 유도된 데이터는, 포지션 열(506)의 포지션이 셀룰러 네트워크(101) 및 다른 소스로부터 획득되었고, 위치 이력 레코드(502D)에 대한 애플리케이션으로부터의 가장 최근 요청의 시간이 2014 년 7 월 14 일 오후 6 시 10 분었음을 포함할 수 있다. 예를 들어, 애플리케이션은, 지난 30 일 이내에 사용자가 Safeway™에 다녀간 횟수들을 요청할 수 있으며 사용자는 이 애플리케이션이 유도된 정보에 액세스하도록 허용할 수 있다. 애플리케이션이 위치 이력 레코드들로부터 유도된 데이터에 액세스하도록 허용된 것으로 위치 이력 추출/추상 모듈(326)이 결정한 후, 위치 이력 추출/추상 모듈(326)은 위치 이력 레코드들로부터 유도된 정보를 결정할 수 있다.
[00156] 이 양상에서, 위치 이력 레코드들로부터 유도된 데이터는, 모바일 디바이스(108)가 주어진 위치에 있었던 횟수들 및/또는 모바일 디바이스(108)가 주어진 활동과 연관되었던 횟수들을 포함할 수 있다. 예를 들어, Safeway™ 애플리케이션은 Safeway™에 대한 위치 이력 레코드들의 수의 카운트, Safeway™에 대한 모든 위치 이력 레코드들의 시간 지속기간(510)의 평균, Safeway™에 대한 위치 이력 레코드들에 대한 다른 통계(예를 들어, 평균, 표준 편차 등) 등, 또는 이들의 임의의 결합을 요청할 수 있다.
[00157] 일 실시예에서, 애플리케이션은 위치 이력 레코드들의 정보를 수정할 수 있다. 예를 들어, Whole Foods®와 연관된 애플리케이션은 사용자가 특정 시간에 특정 Whole Foods®에 있었다고 결정할 수 있고 애플리케이션은 사용자가 Whole Foods®의 카페에서 단지 음식을 구입했다는 것을 인지할 수 있다. 따라서, 애플리케이션은 그것이 허가를 갖는 경우 대응하는 위치 이력 레코드를 리트리브하고, 다른 위치 이력 레코드들은 여전히 식료품 쇼핑으로 분류한 채로 유지하면서, "식료품 쇼핑"으로부터 "식사"로 그것을 재분류할 수 있다. 이는 애플리케이션이 사용자에 관하여 자신이 가질 수 있는 정보를 활용하고 위치 이력 레코드들을 업데이트하도록 허용하여서, 그것이 적절히 분류된다.
[00158] 일 실시예에서, 애플리케이션에 제공되는 위치 이력 정보는 위치 이력 레코드들로부터 유도된 데이터를 포함할 수 있고, 위치 이력 레코드들에 기초하여 컴퓨테이션 및/또는 요약 설명을 또한 포함할 수 있다. 예를 들어, 요약 설명은 위치 이력 레코드의 식별자(도 5의 각각의 위치 이력 레코드(502A-Z)의 부가적인 필드일 수 있음) 및/또는 위치 이력 레코드를 설명하는 내러티브(narrative)를 포함할 수 있다. 예를 들어, 도 5의 위치 이력 레코드(502D)에 대해, 내러티브는 "2014 년 7 월 14 일 Safeway™에서의 식료품 쇼핑"일 수 있다.
[00159] 일 실시예에서, 위치 이력 레코드와 연관된 활동 메타데이터 태그는 하나 또는 그 초과의 센서들(224)에 의해 생성된 데이터에 대한 응답으로 업데이트될 수 있다. 예를 들어, 관심 지점이 몰로서 식별되기 때문에 활동은 쇼핑으로 세팅될 수 있다. 그러나 심박수 센서로부터의 센서 데이터는 달리기 또는 운동과 연관될 수 있는 높은 심박수를 표시할 수 있어서, 활동 태그는 "운동중"으로 업데이트될 수 있다. 동일한 시나리오에서, 가속도계 및 자이로스코프로부터의 부가적인 센서 데이터는, 사용자가 달리기중임을 모바일 디바이스(108)로부터의 억양(cadence) 및 가속 페이스가 나타내는 것으로 표시할 수 있어서, 위치 이력 레코드의 활동은 "달리기"로서 하위-분류될 수 있다. 다른 예에서, 도 5를 참조하면, 하나 또는 그 초과의 센서들(224) 중 하나가 심박수 센서이고 모바일 디바이스(108)의 사용자가 안정시 심박수(resting heart rate)보다 높은 심박수를 갖는다는 것을 심박수 센서에 의해 생성된 데이터가 표시하는 경우, 걷기 활동이 달리기 활동으로 업데이트될 수 있다.
[00160] 일 실시예에서, 모바일 디바이스(108)는 모바일 앱들로부터 수신된 요청들에 기초하여 위치 이력 추적 및 캐싱을 동적으로 조정할 수 있다. 애플리케이션 요청들이 여러 방식들로 개선된 위치 이력 추적을 수행하는데 사용될 수 있다. 예를 들어, 애플리케이션들이 모바일 디바이스(108)에 대해 미리 알려진 요청들을 하고 있는 경우, 분석 모듈은 애플리케이션 요청들이 이루어진 지역들에서의 체류 시간들의 보다 미세한 수준의 추적(finer grained tracking)을 수행하고, 요청된 카테고리들에 대해 필요한 경우 대안적인 포지셔닝 기술들을 사용하고, 애플리케이션 요청들에 기초하여 부가적인 센서들(예를 들어, 지불 시스템들, 음악 플레이어, 비디오 플레이어, 보수계 등)을 로깅하고, 현재 애플리케이션들이 클러스터들과 매칭되지 않을 때 캐싱된 위치 이력으로부터 클러스터들을 제거하는 것 등을 행할 수 있다. 또한, 이전 애플리케이션 요청들은 사용자가 향후 모바일 앱들을 다운로드할 수 있는 카테고리들에 대한 예측 변수(predictor)로서 사용될 수 있다. 이는 또한 사용자에게 중요한 위치 이력 정보가 무엇인지를 결정하는데 사용될 수 있다.
[00161] 도 10은 본 개시의 적어도 하나의 양상에 따라 하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하기 위한 방법(1000)을 예시하는 흐름도이다. 단계(1002)에서, 모바일 디바이스(108)의 프로세서(228), 예를 들어, 위치 압축 및 분석 모듈(324)은 도 7을 참조하여 위에서 설명된 바와 같이, 모바일 디바이스의 하나 또는 그 초과의 위치들에 기초하여 하나 또는 그 초과의 위치 이력 레코드들을 생성할 수 있다. 모바일 디바이스의 하나 또는 그 초과의 위치들은 제 1 주기적 레이트로 결정될 수 있고, 각각의 위치 이력 레코드는 하나 또는 그 초과의 관심 지점들 및 하나 또는 그 초과의 관심 지점들에서 모바일 디바이스의 지속기간을 포함할 수 있다.
[00162] 1004에서, 모바일 디바이스(108)의 프로세서(228), 예를 들어, 위치 이력 추출/추상 모듈(326)은 하나 또는 그 초과의 애플리케이션들 중 적어도 하나의 애플리케이션으로부터 정보 요청을 수신한다.
[00163] 1006에서, 모바일 디바이스(108)의 프로세서(228), 예를 들어, 위치 이력 추출/추상 모듈(326)은 정보 요청으로부터의 기준들을 충족시키는 하나 또는 그 초과의 위치 이력 레코드들의 서브세트를 결정한다.
[00164] 1008에서, 모바일 디바이스(108)의 프로세서(228), 예를 들어, 위치 이력 추출/추상 모듈(326)은 정보 요청 및 하나 또는 그 초과의 위치 이력 레코드들의 서브세트에 기초하여 적어도 하나의 애플리케이션에 대한 허가의 레벨을 결정한다.
[00165] 1012에서, 모바일 디바이스(108)의 프로세서(228), 예를 들어, 위치 이력 추출/추상 모듈(326)은 적어도 하나의 애플리케이션의 허가의 레벨에 기초하여, 적어도 하나의 애플리케이션에 하나 또는 그 초과의 위치 이력 레코드들의 서브세트와 연관된 정보를 제공한다. 위에서 설명된 바와 같이, 정보는 위치 이력 레코드들의 서브세트의 다양한 필드들 전부 또는 그의 서브세트 및/또는 위치 이력 레코드들의 서브세트로부터 유도된 정보일 수 있다.
[00166] 도 11은, 일련의 상호관련된 기능 모듈들로서 표현되는 예시적인 사용자 디바이스 장치(1100)를 예시한다. 생성하기 위한 모듈(1102)은, 적어도 일부 양상들에서, 예를 들어, 본원에 논의된 바와 같은 프로세싱 시스템, 예컨대, 도 2의 프로세서(228)에 대응할 수 있다. 수신하기 위한 모듈(1104)은, 적어도 일부 양상들에서, 예를 들어, 본원에 논의된 바와 같은 프로세싱 시스템, 예컨대, 도 2의 프로세서(228)에 대응할 수 있다. 결정하기 위한 모듈(1106)은, 적어도 일부 양상들에서, 예를 들어, 본원에 논의된 바와 같은 프로세싱 시스템, 예컨대, 도 2의 프로세서(228)에 대응할 수 있다. 결정하기 위한 모듈(1108)은, 적어도 일부 양상들에서, 예를 들어, 본원에 논의된 바와 같은 프로세싱 시스템, 예컨대, 도 2의 프로세서(228)에 대응할 수 있다. 제공하기 위한 모듈(1110)은, 적어도 일부 양상들에서, 예를 들어, 본원에 논의된 바와 같은 프로세싱 시스템, 예컨대, 도 2의 프로세서(228)에 대응할 수 있다.
[00167] 도 11의 모듈들의 기능성은, 본원의 교시들에 부합하는 다양한 방식들로 구현될 수 있다. 일부 설계들에서, 이들 모듈들의 기능성은, 하나 또는 그 초과의 전기 컴포넌트들로서 구현될 수 있다. 일부 설계들에서, 이들 블록들의 기능성은, 하나 또는 그 초과의 프로세서 컴포넌트들을 포함하는 프로세싱 시스템으로 구현될 수 있다. 일부 설계들에서, 이들 모듈들의 기능성은, 예를 들어, 하나 또는 그 초과의 집적 회로들(예를 들어, ASIC)의 적어도 일부를 사용하여 구현될 수 있다. 본원에 논의된 바와 같이, 집적 회로는, 프로세서, 소프트웨어, 다른 관련 컴포넌트들, 또는 이들의 일부 결합을 포함할 수 있다. 따라서, 상이한 모듈들의 기능성은, 예를 들어, 집적 회로의 상이한 서브세트들로서, 소프트웨어 모듈들의 세트의 상이한 서브세트들로, 또는 이들의 결합으로 구현될 수 있다. 또한, (예를 들어, 집적 회로 및/또는 소프트웨어 모듈들의 세트의) 주어진 서브세트는, 1개 초과의 모듈에 대한 기능성의 적어도 일부를 제공할 수 있다는 것이 인지될 것이다.
[00168] 부가적으로, 도 11에 의해 표현된 컴포넌트들 및 기능들 뿐만 아니라 본원에 설명된 다른 컴포넌트들 및 기능들은, 임의의 적합한 수단을 사용하여 구현될 수 있다. 그러한 수단은 또한, 본원에 교시된 바와 같은 대응하는 구조를 사용하여 적어도 부분적으로 구현될 수 있다. 예를 들어, 도 11의 컴포넌트들을 "위한 모듈"과 함께 위에서 설명된 컴포넌트들은 또한, 유사하게 지정된 기능성을 "위한 수단"에 대응할 수 있다. 따라서, 일부 양상들에서, 그러한 수단 중 하나 또는 그 초과는, 프로세서 컴포넌트들, 집적 회로들, 또는 본원에 교시된 바와 같은 다른 적합한 구조 중 하나 또는 그 초과를 사용하여 구현될 수 있다.
[00169] 당업자들은, 하나의 도면을 참조하여 본원에서 설명된 특징들이 다른 도면들을 참조하여 본원에서 설명된 특징들과 상호교환 가능할 수 있고, 특정 도면을 참조한 특정 특징의 설명의 결여가, 그 특정 특징이 특정 도면에 의해 예시된 양상의 예에 통합되는 것을 배제하지 않는다는 것을 이해한다.
[00170] 정보 및 신호들이 다양한 상이한 기술들 및 기법들 중 임의의 기술 및 기법을 사용하여 표현될 수 있음을 당업자들은 인지한다. 예를 들어, 위의 설명 전반에 걸쳐 참조될 수 있는 데이터, 명령들, 커맨드들, 정보, 신호들, 비트들, 심볼들, 및 칩들은 전압들, 전류들, 전자기파들, 자기장들 또는 자기 입자들, 광학 필드들 또는 광학 입자들, 또는 이들의 임의의 결합에 의해 표현될 수 있다.
[00171] 추가로, 본원에 개시된 양상들과 관련하여 설명된 다양한 예시적인 로직 블록들, 모듈들, 회로들, 및 알고리즘 동작들이 전자 하드웨어, 컴퓨터 소프트웨어, 또는 이 둘의 결합들로서 구현될 수 있음을 당업자들은 인지한다. 하드웨어와 소프트웨어의 이러한 상호교환 가능성을 명확히 예시하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 동작들은 그들의 기능성의 관점들에서 일반적으로 위에서 설명되었다. 이러한 기능성이 하드웨어로 구현되는지 또는 소프트웨어로 구현되는지 여부는 전체 시스템에 부과되는 설계 제약들 및 특정 애플리케이션에 의존한다. 당업자들은, 설명된 기능성을 각각의 특정 애플리케이션 마다 다양한 방식들로 구현할 수 있지만, 이러한 구현 결정들이 본원에서 개시된 양상들의 범위를 벗어나게 하는 것으로 해석되어선 안 된다.
[00172] 본원에 개시된 구현들과 관련하여 설명되는 다양한 예시적인 로직 블록들, 모듈들, 및 회로들이 범용 프로세서, DSP(digital signal processor), ASIC(application-specific integrated circuit), FPGA(field programmable gate array) 또는 다른 프로그래밍 가능한 로직 디바이스, 이산 게이트 또는 트랜지스터 로직, 이산 하드웨어 컴포넌트들 또는 본원에서 설명된 기능들을 수행하도록 설계된 이들의 임의의 결합으로 구현되거나 또는 수행될 수 있다. 범용 프로세서는 마이크로프로세서일 수 있지만, 대안적으로, 프로세서는 임의의 종래의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신일 수 있다. 또한, 프로세서는 컴퓨팅 디바이스들의 결합, 예컨대, DSP와 마이크로프로세서의 결합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 또는 그 초과의 마이크로프로세서들, 또는 임의의 다른 그러한 구성으로서 구현될 수 있다.
[00173] 본원에서 개시된 양상들과 관련하여 설명되는 방법들, 시퀀스들, 및/또는 알고리즘들은 직접적으로 하드웨어로, 프로세서에 의해 실행되는 소프트웨어 모듈로, 또는 이 둘의 결합으로 실현될 수 있다. 소프트웨어 모듈은 RAM(random-access memory), 플래시 메모리, ROM(read-only memory), EPROM(erasable programmable read-only memory), EEPROM(electrically erasable programmable read-only memory), 레지스터들, 하드 디스크, 제거 가능 디스크, CD-ROM(compact disc read-only memory), 또는 당 분야에 알려져 있는 임의의 다른 형태의 저장 매체에 상주할 수 있다. 예시적인 저장 매체는, 프로세서가 저장 매체로부터 정보를 판독하고 저장 매체에 정보를 기록할 수 있도록 프로세서에 커플링된다. 대안으로, 저장 매체는 프로세서에 통합될 수 있다.
[00174] 따라서, 본 개시의 양상은, 모바일 디바이스(108)의 위치 이력 레코드를 생성하기 위한 방법을 구현하는 컴퓨터 판독 가능한 매체를 포함할 수 있다. 따라서, 본 개시는 예시된 예들로 제한되지 않으며, 본원에서 설명된 기능성을 수행하기 위한 임의의 수단이 본 개시의 양상들에 포함된다.
[00175] 위의 개시는 본 개시의 예시적인 양상들을 도시하지만, 첨부된 청구항들에 의해 정의되는 바와 같은 본 개시의 범위를 벗어남 없이 본원에서 다양한 변경들 및 수정들이 이루어질 수 있다는 것이 주의되어야 한다. 본원에 설명된 개시의 양상들에 따른 방법 청구항들의 기능들, 동작들 및/또는 액션들이 임의의 특정 순서로 수행될 필요는 없다. 또한, 본 개시의 엘리먼트들이 단수로 설명되거나 청구될 수 있지만, 단수에 대한 제한이 명시적으로 언급되지 않으면 복수가 고려된다.

Claims (30)

  1. 하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하는 방법으로서,
    상기 모바일 디바이스의 프로세서가, 상기 모바일 디바이스의 하나 또는 그 초과의 위치들에 기초하여 하나 또는 그 초과의 위치 이력 레코드들을 생성하는 단계 ― 각각의 위치 이력 레코드는 하나 또는 그 초과의 관심 지점들 및 상기 하나 또는 그 초과의 관심 지점들에서 상기 모바일 디바이스의 지속기간을 포함함 ― ;
    상기 모바일 디바이스의 프로세서에서, 상기 하나 또는 그 초과의 애플리케이션들 중 적어도 하나의 애플리케이션으로부터 정보 요청을 수신하는 단계;
    상기 모바일 디바이스의 프로세서가, 상기 정보 요청으로부터의 기준들을 충족시키는 하나 또는 그 초과의 위치 이력 레코드들의 서브세트를 결정하는 단계;
    상기 모바일 디바이스의 프로세서가, 상기 정보 요청 및 상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트에 기초하여 상기 적어도 하나의 애플리케이션에 대한 허가(permission)의 레벨을 결정하는 단계; 및
    상기 모바일 디바이스의 프로세서가, 상기 적어도 하나의 애플리케이션의 허가의 레벨에 기초하여, 상기 적어도 하나의 애플리케이션에 상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트와 연관된 정보를 제공하는 단계를 포함하는,
    하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하는 방법.
  2. 제1항에 있어서,
    상기 하나 또는 그 초과의 관심 지점들과 연관된 위치들에서의 사용자의 활동으로, 상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트와 연관된 정보를 보강하는 단계를 더 포함하는,
    하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하는 방법.
  3. 제1항에 있어서,
    상기 하나 또는 그 초과의 애플리케이션들로부터 상기 모바일 디바이스의 위치들을 결정하기 위한 하나 또는 그 초과의 요청된 주기적 레이트들(periodic rates)을 수신하는 단계; 및
    상기 하나 또는 그 초과의 요청된 주기적 레이트들에 기초하여 제 1 주기적 레이트를 결정하는 단계를 더 포함하고,
    상기 모바일 디바이스의 하나 또는 그 초과의 위치들은 상기 제 1 주기적 레이트로 결정되는,
    하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하는 방법.
  4. 제1항에 있어서,
    상기 하나 또는 그 초과의 애플리케이션들로부터 상기 모바일 디바이스의 위치들을 결정하기 위한 하나 또는 그 초과의 요청된 주기적 레이트들을 수신하는 단계; 및
    상기 하나 또는 그 초과의 요청된 주기적 레이트들에 기초하여 제 1 주기적 레이트를 결정하는 단계를 더 포함하고,
    상기 제 1 주기적 레이트는 상기 하나 또는 그 초과의 애플리케이션들 중 적어도 하나의 애플리케이션으로부터의 정보 요청과 독립적으로, 상기 모바일 디바이스의 프로세서에 의해 세팅되는,
    하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하는 방법.
  5. 제1항에 있어서,
    상기 정보 요청으로부터의 기준들은, 상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트에서 위치와 연관된 활동, 상기 활동의 카테고리, 상기 적어도 하나의 애플리케이션의 카테고리, 관심 지점의 카테고리, 상기 적어도 하나의 애플리케이션이 인가(authorization)를 갖는 액세스의 레벨, 상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트에 대한 액세스를 제공하도록 구성된 보안 키, 상기 위치의 결정과 연관된 포지션 불확실성 임계치, 상기 위치를 결정하는데 사용되는 기술, 상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트의 시간 기간, 상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트의 생성 시간, 상기 적어도 하나의 애플리케이션에 의한 상기 하나 또는 그 초과의 위치 이력 레코드들의 용도, 상기 적어도 하나의 애플리케이션의 명칭, 상기 모바일 디바이스의 센서에 의해 생성된 데이터, 상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트로부터 유도된 데이터, 또는 이들의 임의의 결합 중 적어도 하나를 포함하는,
    하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하는 방법.
  6. 제1항에 있어서,
    상기 하나 또는 그 초과의 위치 이력 레코드들 각각은 상기 모바일 디바이스가 상기 하나 또는 그 초과의 관심 지점들에 있는 것으로 문서화된 시간을 더 포함하는,
    하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하는 방법.
  7. 제6항에 있어서,
    상기 모바일 디바이스가 상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트 중 적어도 하나의 위치 이력 레코드의 하나 또는 그 초과의 관심 지점들에 있는 것으로 문서화된 시간이 임계 시간보다 앞선 것에 기초하여 상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트 중 적어도 하나의 위치 이력 레코드를 삭제하는 단계; 및
    상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트와 연관된 정보를 보유하는 단계를 더 포함하는,
    하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하는 방법.
  8. 제1항에 있어서,
    상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트와 연관된 정보는, 상기 하나 또는 그 초과의 위치들 중의 위치를 결정하는데 사용되는 기술, 상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트와 연관된 정보에 대한 가장 최근 요청의 시간, 하나 또는 그 초과의 위치 이력 레코드들의 서브세트와 연관된 정보에 대한 요청들의 빈도, 상기 위치의 식별(identification), 상기 위치와 연관된 활동, 상기 모바일 디바이스의 센서에 의해 생성된 데이터, 상기 센서에 의해 생성된 데이터의 분석, 상기 모바일 디바이스가 상기 위치에 있었던 횟수들, 상기 모바일 디바이스가 상기 활동과 연관되었던 횟수들, 또는 이들의 임의의 결합 중 적어도 하나를 포함하는,
    하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하는 방법.
  9. 제8항에 있어서,
    상기 위치의 식별은 관심 지점 데이터베이스의 위치, 지오-펜스(geo-fence)에 의해 정의된 위치, 또는 이들의 임의의 결합 중 적어도 하나와 연관되는,
    하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하는 방법.
  10. 제8항에 있어서,
    상기 모바일 디바이스의 센서에 의해 생성된 데이터에 기초하여 상기 위치와 연관된 활동을 업데이트하는 단계를 더 포함하는,
    하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하는 방법.
  11. 제1항에 있어서,
    상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트와 연관된 정보는, 상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트와 연관된 모든 정보를 포함하고, 상기 허가의 레벨을 결정하는 단계는 상기 적어도 하나의 애플리케이션이 상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트와 연관된 모든 정보에 액세스하도록 하는 허가를 갖는 것으로 결정하는 단계를 포함하는,
    하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하는 방법.
  12. 제1항에 있어서,
    상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트와 연관된 정보는, 상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트와 연관된 정보의 일부(less than all information)를 포함하고, 상기 허가의 레벨을 결정하는 단계는 상기 적어도 하나의 애플리케이션이 상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트와 연관된 모든 정보에 액세스하도록 하는 허가를 갖지 않는 것으로 결정하는 단계를 포함하는,
    하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하는 방법.
  13. 제1항에 있어서,
    상기 허가의 레벨을 결정하는 단계는, 상기 적어도 하나의 애플리케이션으로부터의 이전 정보 요청, 상기 정보 요청에 포함된 유인책(inducement)의 평가, 상기 정보 요청의 제시에 대한 응답으로 상기 모바일 디바이스의 사용자에 의한 선택 입력 또는 이들의 임의의 결합 중 적어도 하나에 기초하는,
    하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하는 방법.
  14. 제13항에 있어서,
    상기 유인책은 프로모션 제안(promotional offering), 쿠폰, 지불 또는 이들의 임의의 결합 중 적어도 하나를 포함하는,
    하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하는 방법.
  15. 제13항에 있어서,
    상기 평가는 상기 모바일 디바이스의 프로세서, 상기 모바일 디바이스의 사용자, 또는 이들의 임의의 결합 중 적어도 하나에 의해 수행되는,
    하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하는 방법.
  16. 제1항에 있어서,
    상기 허가의 레벨을 결정하는 단계는, 상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트에서 상기 모바일 디바이스의 위치의 결정과 연관된 포지션 불확실성 임계치, 상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트에서 위치를 결정하는데 사용되는 기술, 상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트에서 위치와 연관된 활동, 또는 이들의 임의의 결합에 기초하는,
    하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하는 방법.
  17. 제16항에 있어서,
    상기 포지션 불확실성 임계치, 상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트에서 위치를 결정하는데 사용된 기술, 상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트에서 위치와 연관된 활동, 또는 이들의 임의의 결합은 상기 정보 요청에 포함되는,
    하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하는 방법.
  18. 제16항에 있어서,
    상기 허가의 레벨을 결정하는 단계는 상기 활동의 카테고리에 기초하고, 상기 카테고리는 상기 정보 요청에 포함되는,
    하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하는 방법.
  19. 제1항에 있어서,
    상기 하나 또는 그 초과의 위치 이력 레코드들의 위치는 복수의 관심 지점들과 연관되고, 상기 허가의 레벨을 결정하는 단계는 상기 복수의 관심 지점들 중 적어도 하나에 기초하고, 상기 복수의 관심 지점들 중 적어도 하나는 상기 정보 요청에 포함되는,
    하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하는 방법.
  20. 하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하기 위한 장치로서,
    상기 모바일 디바이스의 하나 또는 그 초과의 위치들에 기초하여 하나 또는 그 초과의 위치 이력 레코드들을 생성하고 ― 각각의 위치 이력 레코드는 하나 또는 그 초과의 관심 지점들 및 상기 하나 또는 그 초과의 관심 지점들에서 상기 모바일 디바이스의 지속기간을 포함함 ― , 상기 하나 또는 그 초과의 애플리케이션들 중 적어도 하나의 애플리케이션으로부터 정보 요청을 수신하고, 상기 정보 요청으로부터의 기준들을 충족시키는 하나 또는 그 초과의 위치 이력 레코드들의 서브세트를 결정하고, 상기 정보 요청 및 상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트에 기초하여 상기 적어도 하나의 애플리케이션에 대한 허가의 레벨을 결정하고, 그리고 상기 적어도 하나의 애플리케이션의 허가의 레벨에 기초하여, 상기 적어도 하나의 애플리케이션에 상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트와 연관된 정보를 제공하도록 구성된 적어도 하나의 프로세서; 및
    상기 하나 또는 그 초과의 위치 이력 레코드들 및 상기 하나 또는 그 초과의 위치 이력 레코드들과 연관된 정보를 저장하도록 구성되고 상기 적어도 하나의 프로세서에 커플링되는 메모리를 포함하는,
    하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하기 위한 장치.
  21. 제20항에 있어서,
    상기 적어도 하나의 프로세서는 저전력 프로세서를 포함하는,
    하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하기 위한 장치.
  22. 제20항에 있어서,
    상기 적어도 하나의 프로세서의 저전력 코어는, 상기 하나 또는 그 초과의 위치 이력 레코드들을 생성하고, 상기 정보 요청을 수신하고, 상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트를 결정하고, 상기 허가의 레벨을 결정하고, 상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트와 연관된 정보를 제공하는,
    하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하기 위한 장치.
  23. 제20항에 있어서,
    상기 적어도 하나의 프로세서는 추가로,
    상기 하나 또는 그 초과의 관심 지점들과 연관된 위치들에서의 사용자의 활동으로, 상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트와 연관된 정보를 보강하도록 구성되는,
    하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하기 위한 장치.
  24. 제20항에 있어서,
    상기 적어도 하나의 프로세서는 추가로,
    상기 하나 또는 그 초과의 애플리케이션들로부터 상기 모바일 디바이스의 위치들을 결정하기 위한 하나 또는 그 초과의 요청된 주기적 레이트들을 수신하고; 그리고
    상기 하나 또는 그 초과의 요청된 주기적 레이트들에 기초하여 제 1 주기적 레이트를 결정하도록 구성되고,
    상기 모바일 디바이스의 하나 또는 그 초과의 위치들은 상기 제 1 주기적 레이트로 결정되는,
    하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하기 위한 장치.
  25. 제20항에 있어서,
    상기 적어도 하나의 프로세서는 추가로,
    상기 하나 또는 그 초과의 애플리케이션들로부터 상기 모바일 디바이스의 위치들을 결정하기 위한 하나 또는 그 초과의 요청된 주기적 레이트들을 수신하고; 그리고
    상기 하나 또는 그 초과의 요청된 주기적 레이트들에 기초하여 제 1 주기적 레이트를 결정하도록 구성되고,
    상기 제 1 주기적 레이트는 상기 정보 요청과 독립적으로, 상기 적어도 하나의 프로세서에 의해 세팅되는,
    하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하기 위한 장치.
  26. 제20항에 있어서,
    상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트와 연관된 정보는, 상기 하나 또는 그 초과의 위치들 중의 위치를 결정하는데 사용되는 기술, 상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트와 연관된 정보에 대한 가장 최근 요청의 시간, 하나 또는 그 초과의 위치 이력 레코드들의 서브세트와 연관된 정보에 대한 요청들의 빈도, 상기 위치의 식별, 상기 위치와 연관된 활동, 상기 모바일 디바이스의 센서에 의해 생성된 데이터, 상기 센서에 의해 생성된 데이터의 분석, 상기 모바일 디바이스가 상기 위치에 있었던 횟수들, 상기 모바일 디바이스가 상기 활동과 연관되었던 횟수들, 또는 이들의 임의의 결합 중 적어도 하나를 포함하는,
    하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하기 위한 장치.
  27. 하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하기 위한 장치로서,
    상기 모바일 디바이스의 하나 또는 그 초과의 위치들에 기초하여 하나 또는 그 초과의 위치 이력 레코드들을 생성하기 위한 수단 ― 각각의 위치 이력 레코드는 하나 또는 그 초과의 관심 지점들 및 상기 하나 또는 그 초과의 관심 지점들에서 상기 모바일 디바이스의 지속기간을 포함함 ― ;
    상기 하나 또는 그 초과의 애플리케이션들 중 적어도 하나의 애플리케이션으로부터 정보 요청을 수신하기 위한 수단;
    상기 정보 요청으로부터의 기준들을 충족시키는 하나 또는 그 초과의 위치 이력 레코드들의 서브세트를 결정하기 위한 수단;
    상기 정보 요청 및 상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트에 기초하여 상기 적어도 하나의 애플리케이션에 대한 허가의 레벨을 결정하기 위한 수단; 및
    상기 적어도 하나의 애플리케이션의 허가의 레벨에 기초하여, 상기 적어도 하나의 애플리케이션에 상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트와 연관된 정보를 제공하기 위한 수단을 포함하는,
    하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하기 위한 장치.
  28. 제27항에 있어서,
    상기 하나 또는 그 초과의 애플리케이션들로부터 상기 모바일 디바이스의 위치들을 결정하기 위한 하나 또는 그 초과의 요청된 주기적 레이트들을 수신하기 위한 수단; 및
    상기 하나 또는 그 초과의 요청된 주기적 레이트들에 기초하여 제 1 주기적 레이트를 결정하기 위한 수단을 더 포함하고,
    상기 모바일 디바이스의 하나 또는 그 초과의 위치들은 상기 제 1 주기적 레이트로 결정되는,
    하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하기 위한 장치.
  29. 하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하기 위한 비-일시적인 컴퓨터-판독 가능 저장 매체로서,
    상기 모바일 디바이스의 프로세서가, 상기 모바일 디바이스의 하나 또는 그 초과의 위치들에 기초하여 하나 또는 그 초과의 위치 이력 레코드들을 생성하게 하는 적어도 하나의 명령 ― 각각의 위치 이력 레코드는 하나 또는 그 초과의 관심 지점들 및 상기 하나 또는 그 초과의 관심 지점들에서 상기 모바일 디바이스의 지속기간을 포함함 ― ;
    상기 모바일 디바이스의 프로세서에서, 상기 하나 또는 그 초과의 애플리케이션들 중 적어도 하나의 애플리케이션으로부터 정보 요청을 수신하게 하는 적어도 하나의 명령;
    상기 모바일 디바이스의 프로세서가, 상기 정보 요청으로부터의 기준들을 충족시키는 하나 또는 그 초과의 위치 이력 레코드들의 서브세트를 결정하게 하는 적어도 하나의 명령;
    상기 모바일 디바이스의 프로세서가, 상기 정보 요청 및 상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트에 기초하여 상기 적어도 하나의 애플리케이션에 대한 허가의 레벨을 결정하게 하는 적어도 하나의 명령; 및
    상기 모바일 디바이스의 프로세서가, 상기 적어도 하나의 애플리케이션의 허가의 레벨에 기초하여, 상기 적어도 하나의 애플리케이션에 상기 하나 또는 그 초과의 위치 이력 레코드들의 서브세트와 연관된 정보를 제공하게 하는 적어도 하나의 명령을 포함하는,
    하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하기 위한 비-일시적인 컴퓨터-판독 가능 저장 매체.
  30. 제 29 항에 있어서,
    상기 하나 또는 그 초과의 애플리케이션들로부터 상기 모바일 디바이스의 위치들을 결정하기 위한 하나 또는 그 초과의 요청된 주기적 레이트들을 수신하게 하는 적어도 하나의 명령; 및
    상기 하나 또는 그 초과의 요청된 주기적 레이트들에 기초하여 제 1 주기적 레이트를 결정하게 하는 적어도 하나의 명령을 더 포함하고,
    상기 모바일 디바이스의 하나 또는 그 초과의 위치들은 상기 제 1 주기적 레이트로 결정되는,
    하나 또는 그 초과의 애플리케이션들에 모바일 디바이스의 위치 이력과 연관된 정보를 제공하기 위한 비-일시적인 컴퓨터-판독 가능 저장 매체.
KR1020177037847A 2015-07-02 2016-06-13 모바일 디바이스의 위치 이력 레코드들의 제공, 조직화 및 관리 KR20180026406A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/791,067 US10045159B2 (en) 2015-07-02 2015-07-02 Providing, organizing, and managing location history records of a mobile device
US14/791,067 2015-07-02
PCT/US2016/037157 WO2017003667A1 (en) 2015-07-02 2016-06-13 Providing, organizing, and managing location history records of a mobile device

Publications (1)

Publication Number Publication Date
KR20180026406A true KR20180026406A (ko) 2018-03-12

Family

ID=56194614

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177037847A KR20180026406A (ko) 2015-07-02 2016-06-13 모바일 디바이스의 위치 이력 레코드들의 제공, 조직화 및 관리

Country Status (7)

Country Link
US (5) US10045159B2 (ko)
EP (1) EP3317696A1 (ko)
JP (1) JP2018528505A (ko)
KR (1) KR20180026406A (ko)
CN (3) CN114387035A (ko)
BR (1) BR112018000070A2 (ko)
WO (1) WO2017003667A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200029271A (ko) * 2018-09-10 2020-03-18 삼성전자주식회사 전자 장치 및 전자 장치에서 위치를 식별하기 위한 방법

Families Citing this family (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10045159B2 (en) 2015-07-02 2018-08-07 Qualcomm Incorporated Providing, organizing, and managing location history records of a mobile device
US10749734B2 (en) * 2015-07-07 2020-08-18 International Business Machines Corporation Management of events and moving objects
JP6520535B2 (ja) * 2015-08-03 2019-05-29 富士通株式会社 情報配信方法、情報配信プログラムおよび情報配信装置
US9774994B2 (en) 2015-08-14 2017-09-26 Aeris Communications, Inc. System and method for monitoring devices relative to a user defined geographic area
US10231084B2 (en) 2015-08-14 2019-03-12 Aeris Communications, Inc. System and method for monitoring devices relative to a learned geographic area
US10648823B2 (en) 2017-06-22 2020-05-12 Aeris Communications, Inc. Learning common routes and automatic geofencing in fleet management
US10437575B2 (en) 2015-08-14 2019-10-08 Aeris Communications, Inc. Aercloud application express and aercloud application express launcher
US10506373B2 (en) 2016-06-10 2019-12-10 Apple Inc. Harvesting labels for significant locations based on candidate points of interest and contextual data
US10739159B2 (en) 2016-06-10 2020-08-11 Apple Inc. Labeling a significant location based on contextual data
US10200810B2 (en) 2016-06-12 2019-02-05 Apple Inc. Proactive actions on mobile device using uniquely-identifiable and unlabeled locations
US10244360B2 (en) 2016-06-12 2019-03-26 Apple Inc. Determining location of mobile device using sensor space to physical space mapping
US10117046B2 (en) 2016-06-12 2018-10-30 Apple Inc. Discrete location classification
US10091303B1 (en) 2016-06-12 2018-10-02 Apple Inc. Using in-home location awareness
US20180020222A1 (en) * 2016-07-12 2018-01-18 Mediatek Inc. Apparatus and Method for Low Latency Video Encoding
KR102676115B1 (ko) 2016-12-12 2024-06-19 삼성전자주식회사 위치 데이터를 제공하는 전자 장치 및 그 방법
CA3054849A1 (en) * 2017-02-28 2018-09-07 Blackberry Limited Determining positions of devices
KR102305123B1 (ko) * 2017-03-14 2021-09-28 삼성전자주식회사 위치 기반 서비스를 제공하는 방법 및 그 전자 장치
EP3596977A4 (en) * 2017-03-17 2020-09-02 SCRRD, Inc. PLATFORM FOR DETECTION, TRACKING AND AUTHENTICATION OF WIRELESS DEVICE AND METHOD
US10085118B1 (en) 2017-03-17 2018-09-25 SCRRD, Inc. Wireless device detection, tracking, and authentication platform and techniques
US10341814B2 (en) 2017-03-17 2019-07-02 SCRRD, Inc. Wireless device detection, tracking, and authentication platform and techniques
US10600322B2 (en) * 2017-06-21 2020-03-24 International Business Machines Corporation Management of mobile objects
US10504368B2 (en) 2017-06-21 2019-12-10 International Business Machines Corporation Management of mobile objects
US11627195B2 (en) 2017-06-22 2023-04-11 Aeris Communications, Inc. Issuing alerts for IoT devices
US11132636B2 (en) 2017-06-22 2021-09-28 Aeris Communications, Inc. System and method for monitoring and sharing location and activity of devices
US10735904B2 (en) 2017-06-22 2020-08-04 Aeris Communications, Inc. System and method for monitoring location and activity of devices
US11140232B2 (en) * 2017-06-26 2021-10-05 Facebook, Inc. Analyzing geo-spatial data in layers
US10313828B1 (en) * 2017-10-03 2019-06-04 Sprint Communications Company L.P. Systems and methods for operation of network location services via translation of network telemetry
CN107729225B (zh) * 2017-10-27 2020-12-22 何雄英 一种终端设备心率采集方法及***
US11017109B1 (en) * 2018-06-02 2021-05-25 Apple Inc. Dynamic sandboxing of user data
US11821747B2 (en) 2018-09-06 2023-11-21 Google Llc Displaying personalized landmarks in a mapping application
US10354205B1 (en) * 2018-11-29 2019-07-16 Capital One Services, Llc Machine learning system and apparatus for sampling labelled data
US10945190B2 (en) 2019-01-04 2021-03-09 Apple Inc. Predictive routing based on microlocation
US11388195B1 (en) * 2019-02-02 2022-07-12 Clearops, Inc. Information security compliance platform
US11698269B2 (en) * 2019-03-24 2023-07-11 Apple Inc. Systems and methods for resolving points of interest on maps
WO2021074858A1 (en) * 2019-10-18 2021-04-22 Revuie Limited Review recordation and evaluation systems and methods
US12019172B2 (en) * 2019-12-11 2024-06-25 United States Postal Service Mobile delivery device methods and systems
CN113194299B (zh) * 2021-07-01 2021-08-31 深圳市修远文化创意有限公司 一种智能医疗场景下的口腔治疗实时画面分享方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9342459B2 (en) 2002-08-06 2016-05-17 Qualcomm Incorporated Cache management in a mobile device
US8489110B2 (en) * 2006-05-12 2013-07-16 At&T Intellectual Property I, L.P. Privacy control of location information
US10163113B2 (en) * 2008-05-27 2018-12-25 Qualcomm Incorporated Methods and apparatus for generating user profile based on periodic location fixes
US20100041378A1 (en) 2008-08-14 2010-02-18 Ralph Aceves System and method for automatically generating a user profile from location information
US8683554B2 (en) * 2009-03-27 2014-03-25 Wavemarket, Inc. System and method for managing third party application program access to user information via a native application program interface (API)
US8958822B2 (en) 2010-10-25 2015-02-17 Alohar Mobile Inc. Determining points of interest of a mobile user
CN103444163B (zh) * 2011-02-05 2017-03-22 苹果公司 用于移动位置确定的方法和设备
KR101144333B1 (ko) * 2011-07-22 2012-05-11 주식회사 에스엠 엔터테인먼트 Lbs를 이용한 소셜음악서비스 제공방법과 시스템 및 그 제공방법을 실행하기 위한 프로그램이 기록된 기록매체
US9128180B2 (en) 2012-03-16 2015-09-08 Microsoft Technology Licensing, Llc Efficient power usage in position tracking operations
CN103327054B (zh) * 2012-03-23 2016-01-13 腾讯科技(深圳)有限公司 基于地理位置的交互方法、客户端、服务器及***
US20140162693A1 (en) 2012-06-15 2014-06-12 Qualcomm Incorporated Methods and systems for providing location based services in a venue
EP2864905B1 (en) * 2012-06-22 2017-09-27 Google, Inc. Providing information about relevant elements from maps history based on location
CN107124695B (zh) 2012-06-22 2020-06-30 谷歌有限责任公司 基于联系人信息来标注被访问的位置的方法和***
US9736652B2 (en) * 2012-11-06 2017-08-15 Intertrust Technologies Corporation Activity recognition systems and methods
US20140236669A1 (en) * 2013-02-18 2014-08-21 PlaceIQ, Inc. Apparatus and Method for Identifying and Employing Visitation Rates
US20150169597A1 (en) 2013-12-17 2015-06-18 Qualcomm Incorporated Methods and Systems for Locating Items and Determining Item Locations
US10045159B2 (en) 2015-07-02 2018-08-07 Qualcomm Incorporated Providing, organizing, and managing location history records of a mobile device

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200029271A (ko) * 2018-09-10 2020-03-18 삼성전자주식회사 전자 장치 및 전자 장치에서 위치를 식별하기 위한 방법
WO2020055112A1 (en) * 2018-09-10 2020-03-19 Samsung Electronics Co., Ltd. Electronic device and method for identifying location by electronic device
US10897687B2 (en) 2018-09-10 2021-01-19 Samsung Electronics Co., Ltd. Electronic device and method for identifying location by electronic device

Also Published As

Publication number Publication date
US10368205B2 (en) 2019-07-30
EP3317696A1 (en) 2018-05-09
US20240015481A1 (en) 2024-01-11
US20180317053A1 (en) 2018-11-01
US10045159B2 (en) 2018-08-07
CN114387035A (zh) 2022-04-22
JP2018528505A (ja) 2018-09-27
CN107787459A (zh) 2018-03-09
US11792604B2 (en) 2023-10-17
US10299082B2 (en) 2019-05-21
BR112018000070A2 (pt) 2018-09-11
US20190174267A1 (en) 2019-06-06
CN107787459B (zh) 2022-01-14
US20170006430A1 (en) 2017-01-05
CN114387034A (zh) 2022-04-22
US20190297465A1 (en) 2019-09-26
WO2017003667A1 (en) 2017-01-05

Similar Documents

Publication Publication Date Title
US11792604B2 (en) Providing, organizing, and managing location history records of a mobile device
US11553302B2 (en) Labeling a significant location based on contextual data
US10356559B2 (en) Harvesting labels for significant locations and updating a location fingerprint database using harvested labels
US11323843B2 (en) Efficient geo-fence data transfer and notifications using a time to reach value
JP6225257B2 (ja) 関心ポイントのクラスタリング方法及び関連する装置
US20180313959A1 (en) Persistent location tracking on mobile devices and location profiling
US9007204B2 (en) Automatic identification and storage of frequently visited locations
US10739159B2 (en) Labeling a significant location based on contextual data
US10327102B2 (en) Mobile device proximity notification
KR102290755B1 (ko) 인접 기반 정보를 제공하는 방법 및 장치
JP6692377B2 (ja) 算出装置、算出方法及び算出プログラム
US20240161147A1 (en) Information processing apparatus and information processing method
Nadler Mobile Location Tracking: Indoor and Outdoor Location Tracking
Singh A data collection framework for sensing proximity