KR20170010447A - 사용자 인터페이스의 포어그라운드 액세스의 결정론적 제어를 가지는 무선 통신 디바이스 - Google Patents

사용자 인터페이스의 포어그라운드 액세스의 결정론적 제어를 가지는 무선 통신 디바이스 Download PDF

Info

Publication number
KR20170010447A
KR20170010447A KR1020177001579A KR20177001579A KR20170010447A KR 20170010447 A KR20170010447 A KR 20170010447A KR 1020177001579 A KR1020177001579 A KR 1020177001579A KR 20177001579 A KR20177001579 A KR 20177001579A KR 20170010447 A KR20170010447 A KR 20170010447A
Authority
KR
South Korea
Prior art keywords
input
application
received
wireless communication
communication device
Prior art date
Application number
KR1020177001579A
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
Priority claimed from US14/026,159 external-priority patent/US9367214B2/en
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20170010447A publication Critical patent/KR20170010447A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/4443
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • 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/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72409User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories
    • H04M1/72415User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories for remote control of appliances
    • H04M1/72533
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2250/00Details of telephonic subscriber devices
    • H04M2250/22Details of telephonic subscriber devices including a touch pad, a touch sensor or a touch detector

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Telephone Function (AREA)
  • User Interface Of Digital Computer (AREA)
  • Digital Computer Display Output (AREA)

Abstract

컴퓨터 플랫폼 상에 상주하는 하나 이상의 애플리케이션들, 무선 통신 인터페이스, 디스플레이, 및 적어도 디스플레이 상에 나타나는 사용자 인터페이스를 가지는 무선 통신 디바이스. 컴퓨터 플랫폼 상에 상주하는 하나 이상의 애플리케이션들 및/또는 중재기는, 사용자 인터페이스들이 디스플레이의 제어를 위하여 경쟁할 때, 미리 결정된 기준들에 기초하여, 컴퓨터 플랫폼 상에 상주하는 하나 이상의 애플리케이션들 중의 어느 사용자 인터페이스가 디스플레이를 제어하는지를 결정할 수도 있다. 또 다른 실시형태에서, 어느 애플리케이션이 디스플레이를 제어한다는 결정에 따르지 않는 애플리케이션은 종결될 수도 있다. 방법은, 어느 애플리케이션이 무선 통신 디바이스의 복수의 디스플레이들 중의 디스플레이를 제어할 수도 있는지를 결정하도록 수행될 수도 있다. 방법은, 디스플레이의 제어의 변경이 있을 때에 사용자 입력 데이터를 애플리케이션들과 연관시키도록 수행될 수도 있다.

Description

사용자 인터페이스의 포어그라운드 액세스의 결정론적 제어를 가지는 무선 통신 디바이스{WIRELESS COMMUNICATION DEVICE HAVING DETERMINISTIC CONTROL OF FOREGROUND ACCESS OF THE USER INTERFACE}
관련 출원들
본 출원은 2008 년 6 월 5 일자로 출원된 "WIRELESS COMMUNICATION DEVICE HAVING DETERMINISTIC CONTROL OF FOREGROUND ACCESS OF THE USER INTERFACE (사용자 인터페이스의 포어그라운드 액세스의 결정론적 제어를 가지는 무선 통신 디바이스)" 라는 명칭의 미국 가출원 제 12/134,129 호의 일부계속 출원이고, 그 전체 내용들은 참조에 의해 본원에 편입된다.
1. 발명의 분야
본 발명은 휴대용 무선 통신 디바이스들에 관한 것이다. 더욱 구체적으로, 본 발명은, 상주 애플리케이션 (resident application) 들의 어느 사용자 인터페이스가 디바이스의 디스플레이를 제어하는지를 결정론적으로 제어할 수 있는 무선 통신 디바이스에 관한 것이다.
2. 관련 기술의 설명
최신 무선 통신 네트워크들에서, 무선 통신 디바이스들의 다수는, 컴퓨터 플랫폼 상에서 개별적으로 또는 병렬로 실행될 수 있는 오퍼레이팅 시스템 (operating system) 들 및 소프트웨어 애플리케이션들을 갖는 상주 컴퓨터 플랫폼들을 가진다. 소프트웨어 애플리케이션들은, 무선 통신 디바이스의 상주 디스플레이 (resident display) 상에서 종종 디스플레이되는, 무선 통신 디바이스를 위한 상주 사용자 인터페이스 (resident user interface) 의 제어를 위하여 경쟁할 수 있고, 몇몇 문제들은 사용자 인터페이스의 제어를 장악하는 것을 시도하는 실행 중인 애플리케이션들의 충돌로부터 기인할 수 있다.
예를 들어, 이벤트들을 다른 상주 애플리케이션들로 전송하기 위한 통지 메커니즘을 갖는 오퍼레이팅 시스템에서, 오퍼레이팅 시스템은 전형적으로, 착신 통신들의 수신, 다양한 애플리케이션들의 실행, 및 상주 하드웨어 컴포넌트들의 스테이터스 (status) 와 같은 이벤트들을 다수의 소프트웨어 애플리케이션들로 브로드캐스팅하기 위하여 통지들을 이용할 수도 있다. 상주 소프트웨어 애플리케이션들은 통상적인 오퍼레이팅 시스템 애플리케이션-프로그래밍 인터페이스 ("application-programming interface; API") 를 이용하여 통지들에 대하여 등록할 수 있다. 또한, 상주 소프트웨어 애플리케이션은 "통지" 클래스를 구현할 수도 있고, 통지들을 의도된 바와 같이 다른 소프트웨어 애플리케이션들로 전송할 수도 있다. 일단 애플리케이션이 이벤트를 수신하면, 상주 소프트웨어 애플리케이션은 전형적으로 자유롭게, 작동하고 API 상의 포어그라운드 (foreground) 에 도달한다.
특정 이벤트를 처리할 수 있는 다수의 애플리케이션들이 있고, 그 애플리케이션들이 모두 UI 의 포어그라운드에 도달하는 것을 원할 경우에는, 하나의 문제가 발생한다. 이것은, 각각의 애플리케이션이 포어그라운드에 도달하는 것을 시도하는 스래싱 (thrashing) 및 바람직하지 않은 사용자 거동을 야기시킬 수 있고, 이에 따라, 오퍼레이팅 시스템은 임의의 하나의 애플리케이션이 UI 에서 맨 위에 머무르지 않게 할 수도 있다. 이 문제에 대한 하나의 종래 기술의 해결책은 브로드캐스팅된 이벤트 모델의 결과로서, 포어그라운드 스래싱을 간단하게 허용하는 것이었다. 그러나, 애플리케이션들은 이들이 UI 상에서 장악하고 디스플레이하는 임의의 특정된 순서를 가지므로, UI 스래싱을 간단하게 허용하는 것은 바람직하지 않으며, 높은 우선순위의 애플리케이션들은 제어를 위하여 낮은 우선순위의 애플리케이션들과 경합하게 된다.
그러므로, 다수의 애플리케이션들이 동시에 인보크되고 UI 의 제어를 위하여 경쟁할 경우에, 복수의 상주 애플리케이션들 중의 어느 것이 UI 의 제어를 가질 수도 있는지를 제어하기 위하여 무선 통신 디바이스를 위한 시스템 및 방법을 제공하는 것이 유리할 것이다. 이러한 시스템 및 방법은 제어를 결정함에 있어서 상당한 디바이스 자원들을 사용하지 않으면서, 어느 애플리케이션이 UI 를 가질 수도 있는지를 우선순위화할 수 있어야 한다. 이에 따라, 본 발명은 주로, UI 의 상주 애플리케이션 제어를 결정하는 무선 통신 디바이스의 이러한 시스템 및 방법에 대한 것이다.
간단히 설명하면, 로컬 컴퓨터 플랫폼 상에 상주하는 하나 이상의 애플리케이션들을 가지며, 적어도 무선 통신 인터페이스 및 디스플레이를 포함하는 무선 통신 디바이스가 본원에서 제공된다. 각각의 애플리케이션은 사용자와 상호작용하기 위하여 이용하는 사용자 인터페이스를 가진다. 컴퓨터 플랫폼 상에 상주하는 중재기 애플리케이션 (arbiter application) 은, 우선순위화 방식, 가장 최근에 이용된 알고리즘과 같은 미리 결정된 기준들에 기초하여, 다수의 애플리케이션들을 인보크하는 이벤트의 성질에 기초하여, 어느 애플리케이션이 그 사용자 인터페이스를 포어그라운드에 가져갈 수도 있는지를 제어한다.
하나의 실시형태에서, 무선 통신 디바이스의 컴퓨터 플랫폼 상의 상주 애플리케이션들의 어느 사용자 인터페이스가 디스플레이를 제어하는지를 결정하는 방법으로서, 상기 사용자 인터페이스는 적어도, 무선 통신 디바이스의 디스플레이 상에 나타나며, 상기 사용자 인터페이스를 통해, 무선 통신 디바이스의 사용자가 상주 애플리케이션들과 상호작용하는, 상기 방법은, 무선 통신 디바이스의 디스플레이 상에서 사용자 인터페이스를 디스플레이하는 단계로서, 여기서, 상기 디스플레이는 컴퓨터 플랫폼 상에 상주하는 하나 이상의 애플리케이션들의 사용자 인터페이스에 의해 선택적으로 제어되도록 구성되는, 상기 디스플레이하는 단계, 그 다음으로, 컴퓨터 플랫폼 상에 상주하는 중재기에서, 디스플레이를 제어하기 위한 상주 애플리케이션들 중의 하나 이상으로부터 요청을 수신하는 단계, 및 중재기에서, 미리 결정된 기준들에 기초하여, 하나 이상의 상주 애플리케이션들의 사용자 인터페이스들의 어느 애플리케이션이 사용자 인터페이스를 제어하는지를 결정하는 단계를 포함하거나, 하나 이상의 상주 애플리케이션들이 디스플레이의 제어의 우선순위를 표시하는 우선순위 데이터를 포함할 경우, 하나 이상의 상주 애플리케이션들은 어느 애플리케이션의 어느 사용자 인터페이스가 디스플레이를 제어하는지를 결정할 수도 있다.
또 다른 실시형태에서, 복수의 디스플레이의 각각의 제어를 무선 통신 디바이스 상에 상주하는 복수의 애플리케이션들 중의 애플리케이션에 배정하는 방법은, 하나를 초과하는 애플리케이션을 동시에 인보크하는 통지 이벤트를 수신하는 것에 응답하여, 미리 결정된 기준들에 기초하여, 복수의 디스플레이들 중의 하나를 제어하는 복수의 애플리케이션들 중의 제 1 애플리케이션을 중재기를 통해 결정하는 단계, 제 1 애플리케이션이 복수의 디스플레이들 중의 하나를 제어한다는 중재기를 통한 결정에 응답하여, 복수의 애플리케이션들 중의 제 2 애플리케이션에 관련 있는 액티비티 (activity) 가 검출되는지 여부를 결정하는 단계, 제 2 애플리케이션에 관련 있는 액티비티를 검출하는 것에 응답하여, 복수의 디스플레이들 중의 실행가능한 디스플레이들의 리스트를 제 2 애플리케이션에 대한 우선순위의 순서로 순서화하는 단계, 선택된 디스플레이가 제 3 애플리케이션에 의해 이용 중인지 여부를 결정하는 단계, 및 선택된 디스플레이가 제 3 애플리케이션에 의해 이용 중이지 않은 것으로 결정하는 것에 응답하여, 선택된 디스플레이의 포어그라운드의 제어를 배정하는 플래그 (flag) 를 제 2 애플리케이션으로 전송하는 단계를 포함할 수도 있다.
또 다른 실시형태에서, 사용자 의도에 따라 사용자 입력 데이터를 무선 통신 디바이스 상에 상주하는 복수의 애플리케이션들과 연관시키는 방법은, 하나를 초과하는 애플리케이션을 동시에 인보크하는 통지 이벤트를 수신하는 것에 응답하여, 미리 결정된 기준들에 기초하여, 무선 통신 디바이스의 디스플레이를 제어하는 복수의 애플리케이션들 중의 제 1 애플리케이션을 중재기를 통해 결정하는 단계, 제 1 애플리케이션이 디스플레이를 제어한다는 중재기를 통한 결정에 응답하여, 복수의 애플리케이션들에서의 제 1 애플리케이션으로부터 복수의 애플리케이션들에서의 제 2 애플리케이션으로의 디스플레이의 제어에 있어서의 변경을 검출하는 단계, 디스플레이의 제어에 있어서의 검출된 변경 전에 수신된 제 1 입력과, 디스플레이의 제어에 있어서의 검출된 변경 후에 수신된 제 2 입력을 식별하는 단계, 제 1 입력이 디스플레이의 제어에 있어서의 검출된 변경의 제 1 시간 문턱 내에 수신되었는지 여부를 결정하는 단계, 제 2 입력이 디스플레이의 제어에 있어서의 검출된 변경의 제 2 시간 문턱 내에 수신되었는지 여부를 결정하는 단계, 및 제 1 입력이 제 1 시간 문턱 내에 수신되지 않았거나 제 2 입력이 제 2 시간 문턱 내에 수신되지 않은 것으로 결정하는 것에 응답하여, 제 2 입력을 제 2 애플리케이션과 연관시키는 단계를 포함할 수도 있다.
또 다른 실시형태에서, 무선 통신 디바이스 상에 상주하는 복수의 애플리케이션들을 제어하는 방법은, 관리상 특권들을 가지는 중재기 애플리케이션과 같은 중재기를 통해, 하나를 초과하는 애플리케이션을 동시에 인보크하는 통지 이벤트를 수신하는 것에 응답하여, 미리 결정된 기준들에 기초하여 무선 통신 디바이스의 디스플레이를 제어하는 복수의 애플리케이션들 중의 제 1 애플리케이션을 결정하는 단계, 복수의 애플리케이션들 중의 제 2 애플리케이션이 복수의 애플리케이션들 중의 제 1 애플리케이션이 디스플레이를 제어한다는 중재기를 통한 결정을 준수하지 않았는지 여부를 결정하는 단계, 및 복수의 애플리케이션들 중의 제 2 애플리케이션이 준수하지 않은 것으로 결정하는 것에 응답하여, 제 2 애플리케이션을 종결시키는 단계를 포함할 수도 있다.
그러므로, 본 시스템 및 방법은, 디스플레이의 제어에서의 스래싱을 최소화하기 위하여, 인보크 이벤트로 야기되는 바와 같이, 복수의 인보크된 또는 액티비티인 상주 UI 애플리케이션들 중의 어느 것이 디스플레이의 제어를 가질 수도 있는지를 제어하기 위한 능력을 갖는 무선 통신 디바이스를 제공한다는 점에서 유리하다. 다양한 무선 환경들에서의 구현을 허용하는 디스플레이의 애플리케이션 제어를 우선순위화하기 위한 몇몇 실시형태들이 있다. 따라서, 디스플레이의 제어의 결정은 디스플레이의 제어를 중재할 시에 상당한 디바이스 프로세싱 자원들을 들여야 할 필요 없이 달성될 수도 있다.
본 발명의 다른 목적들, 특성들, 및 장점들은 도면의 간단한 설명, 발명의 상세한 설명, 및 청구항들의 검토 후에 명백해질 수도 있다.
본원에 편입되며 이 명세서의 일부를 구성하는 첨부한 도면들은 발명의 예시적인 실시형태들을 예시하고, 위에서 주어진 일반적인 설명 및 이하에서 주어진 상세한 설명과 함께, 발명의 특징들을 설명하도록 작용한다.
도 1 은 PTT 그룹 구성원들의 무선 통신 디바이스들 사이의 그룹 통신 서버 제어 통신들을 가지는, 통상적인 셀룰러 통신 구성에서의 무선 네트워크의 하나의 실시형태의 대표적인 도면이다.
도 2 는 푸시-투-토크 (push-to-talk; PTT) 기능과 함께 여기서 도시된, 무선 통신 디바이스의 컴퓨터 플랫폼을 예시하는 블록도이다.
도 3a 는 이벤트 통지를 복수의 다른 디바이스-상주 애플리케이션들로 전송하는 무선 통신 디바이스 상주 애플리케이션의 블록도이다.
도 3b 는 도 3a 와 유사한 블록도이지만, 중재기는 또한, 이벤트 통지를 수신하고, 애플리케이션이 UI 를 제어함에 있어서 우선순위를 가진다는 것을 표시하기 위하여 플래그를, 통지를 수신하는 다른 애플리케이션들 중의 하나로 전송한다.
도 4 는 주 디스플레이 (primary display) 의 제어를 위하여 경쟁하는 복수의 상주 애플리케이션들 인터페이스 (API) 들을 갖는 무선 통신 디바이스를 위한 UI 의 디스플레이의 하나의 실시형태의 대표적인 예시도이다.
도 5 는 복수의 인보크된 무선 통신 디바이스-상주 애플리케이션들 사이의 디스플레이 제어를 위한 우선순위를 결정하는 중재기를 위한 방법의 하나의 실시형태의 프로세스 흐름도이다.
도 6 은 디스플레이의 제어를 추구하는 애플리케이션들에서 상주하는 우선순위 데이터에 기초하여 복수의 인보크된 무선 통신 디바이스-상주 애플리케이션들 사이의 디스플레이 제어를 위한 우선순위를 결정하기 위한 방법의 하나의 실시형태의 프로세스 흐름도이다.
도 7a 내지 도 7b 는 무선 통신 디바이스가 다수의 디스플레이들의 포어그라운드의 제어를 배정 (또는 중재) 하기 위한 실시형태의 방법들의 프로세스 흐름도들이다.
도 8 은 무선 통신 디바이스가 다수의 디스플레이들의 우선순위들을 재계산하기 위한 실시형태의 방법의 프로세스 흐름도이다.
도 9a 는 디바이스가 사용자 입력을 수신할 때에 포어그라운드에 도달하는 제 2 애플리케이션을 갖는 무선 통신 디바이스를 위한 사용자 인터페이스의 디스플레이의 대표적인 예시도이다.
도 9b 는 무선 통신 디바이스가 타이밍 정보에 기초하여 수신된 사용자 입력을 제 1 또는 제 2 애플리케이션과 연관시키기 위한 실시형태의 방법의 프로세스 흐름도이다.
도 10a 는 디바이스가 사용자 입력을 수신할 때에 제 2 애플리케이션이 포어그라운드에 도달하는 것에 응답하여, 프롬프트 다이얼로그 박스 (prompt dialog box) 를 렌더링하는 무선 통신 디바이스를 위한 사용자 인터페이스의 디스플레이의 대표적인 예시도이다.
도 10b 는 무선 통신 디바이스가 프롬프트 다이얼로그 박스에 대응하는 선택 입력들에 기초하여 수신된 사용자 입력을 제 1 또는 제 2 애플리케이션과 연관시키기 위한 실시형태의 방법의 프로세스 흐름도이다.
도 11a 는 포어그라운드에 도달하는 제 2 애플리케이션과 일치하는 수신된 사용자 입력을 프로세싱하는 것에 응답하여 프롬프트 다이얼로그 박스를 렌더링하는 무선 통신 디바이스를 위한 사용자 인터페이스의 디스플레이의 대표적인 예시도이다.
도 11b 는 무선 통신 디바이스가 수신된 사용자 입력의 내용의 평가들에 기초하여 수신된 사용자 입력을 제 1 또는 제 2 애플리케이션과 연관시키기 위한 실시형태의 방법의 프로세스 흐름도이다.
도 12 는 무선 통신 디바이스가 제 1 및 제 2 애플리케이션들의 사용자 인터페이스 엘리먼트들의 로케이션들에 기초하여 수신된 사용자 입력을 제 1 또는 제 2 애플리케이션과 연관시키기 위한 실시형태의 방법의 프로세스 흐름도이다.
도 13 은 무선 통신 디바이스가 중재기에 의한 우선순위 결정들과 반대로 무선 통신 디바이스의 포어그라운드의 제어를 획득하였던 미준수 (non-compliant) 애플리케이션을 종결시키기 위한 실시형태의 방법의 프로세스 흐름도이다.
도 14 는 다양한 실시형태와 함께 이용하기 위해 적당한 스마트폰 무선 통신 디바이스의 시스템 블록도이다.
다양한 실시형태들은 첨부한 도면들을 참조하여 상세하게 설명될 수도 있다. 가능한 경우, 동일한 참조 번호들은 동일하거나 유사한 부분들을 지칭하기 위하여 도면들의 전반에 걸쳐 이용될 수도 있다. 특정 예들 및 구현들에 대해 행해진 참조들은 예시적인 목적들을 위한 것이고, 발명 또는 청구항들의 범위를 제한하도록 의도된 것은 아니다.
이 설명에서, 용어들 "통신 디바이스", "무선 디바이스", "무선 통신 디바이스", "PTT 통신 디바이스", "핸드헬드 디바이스", "이동 디바이스", 및 "핸드셋" 은 상호 교환가능하게 이용된다. 용어들 "호출" 및 "통신" 은 또한 상호 교환가능하게 이용된다. 본원에서 이용된 바와 같은 용어 "애플리케이션" 은 실행가능 및 비-실행가능 (non-executable) 소프트웨어 파일들, 원시 데이터 (raw data), 집합된 데이터 (aggregated data), 및 다른 코드 세그먼트 (code segment) 들을 망라하도록 의도된 것이다. 용어 "예시적" 은, 개시된 엘리먼트 또는 실시형태가 오직 예이며 사용자의 임의의 선호도를 표시하지 않는다는 것을 의미한다. 애플리케이션들 사이의 상호작용의 모든 방법들은, 모든 형태들의 인보크, 실행, 호출, 및 데이터 교환을 포함하기 위하여 본원에서 망라되도록 의도된 것이다. 또한, 몇몇 도면들의 전반에 걸쳐, 유사한 번호들은 유사한 엘리먼트들을 지칭하고, 설명에서 이와 다르게 특정되지 않으면, 관사 "a" 및 "the" 는 복수의 참조들을 포함한다.
그 전반에 걸쳐, 유사한 번호들이 유사한 엘리먼트들을 나타내는 도면들을 참조하면, 도 1 은 통신들이 무선 통신 디바이스들 (70, 72, 74, 76) 사이에서 발생하는 통상적인 셀룰러 통신 구성에서의 무선 네트워크를 갖는 시스템 (10) 의 하나의 실시형태의 대표적인 도면이다. 시스템 (10) 은 여기에서 또한, 푸시-투-토크 (PTT) 시스템을 지원하는 일련의 그룹 통신 컴퓨터 디바이스들 (그룹 통신 서버들) (32) 을 포함한다. 무선 네트워크는 단지 예시적이며 임의의 시스템을 포함할 수도 있고, 이것에 의하여, 원격 모듈들은 서로의 사이에서, 그리고 서로 중에서, 및/또는 무선 네트워크 캐리어들 및/또는 서버들을 제한 없이 포함하는 무선 네트워크의 컴포넌트들 사이에서, 그리고 이러한 컴포넌트들 중에서 오버-디-에어 (over-the-air) 로 통신한다. 일련의 그룹 통신 서버들 (32) 은 그룹 통신 서버 로컬 영역 네트워크 (local area network; LAN) (50) 에 접속된 것으로서 여기에서 도시되지만, 다른 컴퓨터 디바이스들은 기능성을 네트워크 상의 임의의 컴포넌트에 제공하기 위하여 LAN (50) 에 의해 액세스가능할 수도 있다. 무선 통신 디바이스들 (70, 72, 74, 76) 은 데이터 서비스 옵션을 이용하여 그룹 통신 서버 (들) (32) 로부터의 패킷 데이터 세션들을 요청할 수도 있다.
그룹 통신 서버 (들) (32) 와 같은 백-오피스 (back-office) 컴퓨터 디바이스들은, 캐리어 네트워크 (54) 상에 상주하는 것으로 여기에서 도시된 PDSN (52) 과 같은 무선 서비스 제공자들 패킷 데이터 서비스 노드 (packet data service node; PDSN) 에 접속된다. 각각의 PDSN (52) 은 패킷 제어 기능부 (packet control function; PCF) (62) 를 통해 기지국 (60) 의 기지국 제어기 (64) 와 인터페이스할 수도 있다. PCF (62) 는 전형적으로 기지국 (60) 에서 위치된다. 캐리어 네트워크 (54) 는 메시징 서비스 제어기 (messaging service controller; MSC) (58) 로 (일반적으로 데이터 패킷들의 형태로) 전송된 메시지들을 제어한다. 캐리어 네트워크 (54) 는 네트워크, 인터넷, 및/또는 POTS ("plain ordinary telephone system") 에 의해 MSC (58) 와 통신한다. 전형적으로, 캐리어 네트워크 (54) 와 MSC (58) 사이의 네트워크 또는 인터넷 접속은 데이터를 전송하고, POTS 는 음성 정보를 전송한다. MSC (58) 는 하나 이상의 기지국들 (60) 에 접속될 수도 있다. 캐리어 네트워크와 유사한 방식으로, MSC (58) 는 전형적으로, 데이터 전송을 위한 네트워크 및/또는 인터넷과, 음성 정보를 위한 POTS 의 양자에 의해, 브랜치-투-소스 (branch-to-source; BTS) (66) 에 접속된다. BTS (66) 는 궁극적으로, 단문 메시징 서비스 (short messaging service; SMS), 또는 당해 분야에서 알려진 다른 오버-디-에어 방법들에 의해, 메시지들을 무선 통신 디바이스들 (70, 72, 74, 76) (예컨대, 셀룰러 전화들) 과 같은 무선 디바이스들로 무선으로 브로드캐스팅하고, 이러한 무선 디바이스들로부터 메시지들을 무선으로 수신한다. 또한, 캐리어 경계들 및/또는 PTT 운영자 네트워크 경계들은 본원에서 설명된 바와 같은 데이터의 공유를 억제하거나 금지하지 않는다는 것에 주목해야 한다.
무선 전화 (도 2 에서의 74) 와 같은 셀룰러 전화들 및 이동 통신 디바이스들은 증가된 컴퓨팅 기능들을 갖도록 제조되고 있고, 개인용 컴퓨터들 및 핸드-헬드 PDA 들과 동등해지고 있다. 이 "스마트" 셀룰러 전화들은 소프트웨어 개발자들이 무선 통신 디바이스의 프로세서 상에서 다운로딩가능하고 실행가능한 소프트웨어 애플리케이션들을 만들도록 한다. 셀룰러 전화 (74) 와 같은 무선 통신 디바이스는 웹 페이지 (web page) 들, 애플릿 (applet) 들, 미들렛 (MIDlet) 들, 게임들 및 데이터와 같은 많은 타입들의 애플리케이션들을 다운로딩할 수도 있다. 통신 그룹을 지정하였던 무선 통신 디바이스들에서, 무선 통신 디바이스는 세트의 다른 구성원과 직접적으로 접속할 수도 있고, 음성 및 데이터 통신에 참여할 수도 있다. 그러나, 이러한 모든 직접 통신들은 그룹 통신 서버 (32) 를 통해, 또는 그룹 통신 서버 (32) 의 제어 시에 발생할 수도 있다. 디바이스들의 모든 데이터 패킷들은 그룹 통신 서버 (32) 자체를 통해 반드시 이동해야 할 필요는 없지만, 그룹 통신 서버 (32) 는 전형적으로, 통신을 궁극적으로 제어할 수 있는데, 그것은 전형적으로 인식하고 있는 유일한 캐리어 네트워크 (54) 컴포넌트일 수도 있고, 및/또는 통신 그룹의 구성원들의 아이덴티티 (identity) 를 취출 (retrieve) 할 수도 있거나, 통신 그룹 (12) 의 구성원들의 아이덴티티를 또 다른 컴퓨터 디바이스로 보낼 수도 있기 때문이다. 서버-측 LAN (50) 상에, 또는 무선 네트워크 또는 일반적으로 인터넷에 걸쳐 상주하는 컴퓨터 컴포넌트들의 수는 제한되지 않는다는 것을 인식해야 한다.
무선 통신 디바이스들 사이의 음성 통신들에 추가하여, JPEG, TIF 등으로 된 픽처 (picture) 들을 포함하기 위한 그래픽 미디어, MP3, MP4, WAV 등과 같은 오디오 파일들과 같은 다른 미디어가 전송될 수도 있다. 미디어는 또한, 멀티미디어 애플리케이션 (파워포인트 (Powerpoint), MOV 파일 등) 과 같은 스트리밍 미디어일 수도 있다. 그룹-지향된 (group-directed) 미디어는 또한, 호스팅된 게임 또는 사설 전자게시판 (private bulletin board) 과 같이, 무선 통신 네트워크 상의 또 다른 컴퓨터 디바이스 상의 스트리밍 미디어 또는 대화형 세션 (private bulletin board) 일 수도 있다. 또한, PTT 통신들에 대하여, 그룹-지향된 통신은 실질적으로 실시간, 또는 지연상태에서, 통신 그룹의 멤버들 간의 반이중 (half-duplex) 오디오 및/또는 비디오 회의일 수 있다.
도 2 는 디바이스들, 즉, 통신 그룹의 다른 구성원들의 타겟 세트로의 직접 통신을 개방하는 푸시-투-토크 (PTT) 버튼 (78) 을 갖도록 구체화된 이동 전화인 무선 통신 디바이스 (74) 의 하나의 실시형태를 예시하는 블록도이다. 무선 통신 디바이스 (74) 는 또한, 무선 통신 디바이스 (74) 의 사용자에 대한 그래픽 디스플레이 (80) 를 가지는 것으로 도시되어 있다. 무선 통신 디바이스 (74) 는, 음성 및 데이터 패킷들을 처리할 수도 있으며, 그룹-지향된 미디어를 포함하기 위하여 무선 네트워크에 걸쳐 송신된 소프트웨어 애플리케이션들을 수신하고 실행할 수도 있는 컴퓨터 플랫폼 (82) 을 포함한다. 컴퓨터 플랫폼 (82) 은 다른 컴포넌트들 중에서, 애플리케이션-특정 집적 회로 ("application-specific integrated circuit; ASIC") (84), 또는 다른 프로세서, 마이크로프로세서, 로직 회로, 프로그래밍가능 게이트 어레이, 또는 다른 데이터 프로세싱 디바이스를 포함한다. ASIC (84) 는 무선 통신 디바이스 (74) 의 제조 시에 설치되고, 보통 업그레이딩 가능하지 않다. ASIC (84) 또는 다른 프로세서는, 상주 애플리케이션 환경을 포함하는 애플리케이션 프로그래밍 인터페이스 ("API") 계층 (86) 을 실행하고, ASIC (84) 상에 로딩된 오퍼레이팅 시스템을 포함할 수도 있다. 상주 애플리케이션 환경은 무선 통신 디바이스 (74) 의 메모리 (88) 에서 임의의 상주 프로그램들과 인터페이스한다. 상주 애플리케이션 환경의 예는 무선 통신 디바이스 플랫폼들을 위하여 QUALCOMM.RTM. 에 의해 개발된 "무선을 위한 2진 실행시간 환경 (binary runtime environment for wireless)" (BREW.RTM.) 소프트웨어이다.
여기에서 도시된 바와 같이, 무선 통신 디바이스 (74) 는 그래픽 디스플레이 (80) 를 갖는 이동 전화 (74) 일 수도 있지만, 또한, 이동 디바이스 (76) 와 같이, 당해 분야에서 알려진 바와 같은 컴퓨터 플랫폼 (82), 또는 심지어 무선 통신 포털 (wireless communication portal) 을 가지는 별도의 컴퓨터 플랫폼 (82) 을 갖는 임의의 무선 통신 디바이스일 수도 있고, 이와 다르게, 네트워크 또는 인터넷으로의 유선 접속을 가질 수도 있다. 또한, 메모리 (88) 는 판독-전용 또는 랜덤-액세스 메모리 (RAM 및 ROM), EPROM, EEPROM, 플래시 카드들, 또는 컴퓨터 플랫폼들에 공통적인 임의의 메모리로 구성될 수도 있다. 컴퓨터 플랫폼 (82) 은 또한, 메모리 (88) 에서 액티비티로 이용되지 않은 소프트웨어 애플리케이션들의 저장을 위한 로컬 데이터베이스 (90) 를 포함할 수도 있다. 로컬 데이터베이스 (90) 는 전형적으로 하나 이상의 플래시 메모리 셀들로 구성되지만, 자기 매체들, EPROM, EEPROM, 광학 매체들, 테이프, 또는 소프트 또는 하드 디스크와 같이, 당해 분야에서 알려진 바와 같은 임의의 보조 또는 제 3 의 저장 디바이스일 수도 있다. 그래픽 디스플레이 (80) 는 본원에서 더욱 완전히 설명되는 바와 같이 파일 프리뷰 (file preview) 를 포함하기 위하여, 발신 그룹 호출에 대한 정보뿐만 아니라, 그룹-지향된 미디어에 대한 정보도 제시할 수도 있다.
무선 통신 디바이스 (74) 의 이 실시형태에서, 컴퓨터 플랫폼 (82) 은 또한, 무선 통신 디바이스 (74) 로부터의 직접 통신 채널을 개방할 수도 있는 직접 또는 무선 통신 인터페이스 (92) 를 포함한다. 직접 또는 무선 통신 인터페이스 (92) 는 또한, 무선 통신 디바이스 (74) 로 송신되고 무선 통신 디바이스 (74) 로부터 송신된 음성 및 데이터를 정상적으로 반송하는 무선 통신 디바이스 (74) 를 위한 표준적인 통신 인터페이스의 일부일 수도 있다. 직접 또는 무선 통신 인터페이스 (92) 는 전형적으로, 당해 분야에서 알려진 바와 같이 하드웨어로 구성된다.
개략적으로, 무선 통신 디바이스 (74) 는, 무선 통신 인터페이스 (92) 를 또한 포함하는 컴퓨터 플랫폼 (82) 상에 상주하는 하나 이상의 애플리케이션들, 디스플레이 (80), 및 사용자 인터페이스를 가지고, 이러한 사용자 인터페이스는 적어도, (도 4 에서 도시된 사용자 인터페이스 (140) 의 하나의 예와 함께) 디스플레이 (80) 상에 나타나며, 이러한 사용자 인터페이스를 통해, 무선 통신 디바이스 (74) 의 사용자는 컴퓨터 플랫폼 (82) 과 상호작용한다. 각각의 애플리케이션은 사용자 인터페이스를 가지고, 하나의 실시형태에서, 중재기 (도 3b 에서의 128) 는 컴퓨터 플랫폼 (82) 상에 상주할 수도 있고, 미리 결정된 기준들에 기초하여, 하나 이상의 UI 애플리케이션들 중의 어느 애플리케이션이 디스플레이 (80) 를 제어하는지를 결정하도록 구성될 수도 있다. 미리 결정된 기준들의 예들은: 우선순위 리스트; 사용자 인터페이스를 다시 제어하기 위하여, 최후 애플리케이션이 사용자 인터페이스를 제어하도록 하는 것 (가장 최근 이용된 알고리즘); 제어를 결정하는 것이 애플리케이션의 클래스 (class) 에 기초하도록, 클래스를 하나 이상의 애플리케이션들에 배정하는 것; 사용자 인터페이스에서 처리되고 있는 특정 타입의 데이터에 기초하여 사용자 인터페이스의 제어를 허용하는 것; 및 무선 통신 인터페이스 (92) 에서 수신되고 있는 타입의 데이터에 기초하여 제어를 허용하는 것이다. 다른 실시형태들에서, 상주 애플리케이션들은 자체적으로, 중재기 (128) 와 동일한 방식으로 미리 결정된 기준들을 이용하여, 단독으로 또는 중재기 (128) 와 함께 우선순위를 결정할 수도 있다.
도 3a 는 이벤트 통지들을, UI 애플리케이션 B (102), UI 애플리케이션 C (104), 및 UI 애플리케이션 D (106) 로서 여기에서 도시된 복수의 다른 디바이스-상주 애플리케이션들로 전송하는 무선 통신 디바이스 상주 애플리케이션 (애플리케이션 A) (100) 의 블록도이다. 이들은 동시에 인보크되므로, UI 애플리케이션들 (102, 104, 106) 중의 임의의 것은 이들이 이벤트 통지를 언제 받는지에 따라 (도 4 에서와 같이) 디스플레이 (80) 의 포어그라운드에 도달할 수도 있고, 최악의 경우에는, 디스플레이의 제어의 중재 없이, 애플리케이션들은 서로를 기각하는 것을 계속하여, UI 스래싱을 야기시킬 수도 있다. 그러나, 일단 중재기 (128) 가 도 3b 에서 도시되는 바와 같이 존재하면, 복수의 애플리케이션으로부터의 다수의 동시에, 그리고 잠재적으로 발신 요청들에 관련된 UI 의 제어는, UI 스래싱을 적어도 줄이기 위하여, 바람직하게는 방지하기 위하여 중재기 (128) 에 의해 결정될 수도 있다.
도 3b 는 도 3a 와 유사한 블록도이지만, 중재기 (128) 는 또한, UI 애플리케이션 B (122), UI 애플리케이션 C (124), 및 UI 애플리케이션 D (126) 와 함께, UI 애플리케이션 A (120) 로부터 이벤트 통지를 수신하는 것으로 구체화된다. 중재기 (128) 는 본원에서 추가로 설명되는 바와 같이 미리 결정된 기준들에 기초하여 이벤트 통지가 주어질 경우에 어느 UI 애플리케이션이 포어그라운드에 도달해야 하는지를 결정하거나, 이벤트 통지의 수신 시에 결정을 행할 수도 있다. 다음으로, 중재기 (128) 는 플래그를, 애플리케이션 C (124) 로서 여기에서 도시된, 디스플레이를 제어하기 위한 우선순위를 가지도록 결정된 UI 애플리케이션으로 전송할 수도 있고, 상주 오퍼레이팅 시스템은 중재기 플래그를 갖는 또 다른 애플리케이션이 오퍼레이팅 시스템에서 수신될 때까지, 애플리케이션 C (124) 가 디스플레이를 제어하도록 할 수도 있다. 대안적으로, 포어그라운드에 도달하는 것을 희망하는 각각의 애플리케이션은 디스플레이의 포어그라운드를 취하기 위한 허가에 대하여 중재기 (128) 에 질의할 수도 있다.
도 4 는 UI (또는 UI 애플리케이션) (140) 의 제어를 위하여 경쟁하는 복수의 상주 UI 애플리케이션들과, UI (또는 UI 애플리케이션) (140) 상의 주 디스플레이를 갖는 무선 통신 디바이스 (74) 의 디스플레이의 하나의 실시형태의 대표적인 예시도이다. 여기서, 주 UI (primary UI; 140) 는 "착신 그룹 통신" 인터페이스 (146) 이고, 다른 인터페이스들 (142 및 144) 은 UI 애플리케이션의 백그라운드 (background) 에 남아 있다. 여기에서 도시된 인터페이스들은 "윈도우형 (windowed)" 배열, 사용자 인터페이스들에서의 통상적인 그래픽 인터페이스로 되어 있다. 본원에서 설명된 UI 제어 방법론은 다른 UI 시스템들 및 디스플레이 방식들, 사용자가 컴퓨터 플랫폼 (82) 을 액세스하기 위한 제어 인터페이스들에 동일하게 적용가능하다.
하나의 실시형태에서, 중재기 (128) 는 애플리케이션들의 프로비저닝된 (provisioned) "우선순위 리스트" 를 사용할 수도 있고, 여기서, 애플리케이션 A (120) 는 클래스 ID 들의 리스트가 아마도, 네트워크 캐리어 또는 다른 엔티티에 의해 프로비저닝되도록 하기 위하여 변경된 그 코드를 가진다. 클래스 ID 들의 이 리스트는 UI (140) 의 포어그라운드에 도달하도록 허용되어야 하는 애플리케이션들의 우선순위의 순서로 프로비저닝된다. 예를 들어, 누군가는 포어그라운드에 도달하기 위하여 애플리케이션 C (124) 가 애플리케이션들 B (122) 또는 D (126) 에 비해 더 높은 우선순위를 가져야 하는 것으로 선택할 수도 있고, 애플리케이션들의 전부에 대한 이벤트의 브로드캐스트 후에, 브로드캐스트는 또한, 이벤트 통지 페이로드에서 애플리케이션 C (124) 에 대한 선택된 클래스 ID 를 열거한다. 애플리케이션들이 이벤트 통지를 수신할 때, 이들은 전형적으로, 그 클래스 ID 가 페이로드에서 전송되는 것과 일치하는지를 검사하고, 일치할 경우, 그것은 포어그라운드에 도달해야 한다. 중재기 (128) 는 이 실시형태에서 UI 제어를 단지 검증할 수도 있고, 클래스 ID 가 각각의 애플리케이션에게 분명할 수도 있으므로, 실제적으로 제어를 승인할 필요가 없다. 그러나, 각각의 상주 애플리케이션은 클래스 ID 들을 이해하도록 구성되어야 할 수도 있으므로, 이 실시형태는 추가적인 오버헤드 (overhead) 를 요구한다.
UI (140) 의 제어를 결정하기 위한 또 다른 실시형태는, 특정 이벤트 클래스 (경고, 호출, 존재 등) 의 이벤트를 받아들이기 위하여 포어그라운드에 도달하기 위한 최후 애플리케이션이 포어그라운드에 도달하기 위한 다음 애플리케이션이 되도록 하는 것과 같은 간단한 알고리즘을 이용하는 것이다. 이러한 실시형태에서, 애플리케이션 A (120) 는 이벤트를 갖는 최후의 알려진 포어그라운드 애플리케이션 클래스 ID 를 브로드캐스팅할 수도 있고, 수신 애플리케이션은 그 자신의 클래스 ID 를 제안된 최후의 알려진 포어그라운드 애플리케이션의 클래스 ID 와 비교하고 2 개가 일치할 경우에만, UI (140) 의 포어그라운드에 도달하도록 권고받는다. 그러나, 이것은 최후의 알려진 포어그라운드 애플리케이션 (프레시 스타트-업 (fresh start-up)) 이 없었을 경우, 또는 어느 애플리케이션이 최후에 제어 중이었는지 명확하지 않아서, 디폴트 우선순위 클래스가 여전히 이용되어야 할 때의 초기 스래싱과 같은 "에지 케이스 (edge case)" 문제들을 야기시킬 수도 있다.
또 다른 실시형태에서, 애플리케이션들의 바람직한 제어는 자동으로 설정된다. 애플리케이션 자체는 특정 이벤트 클래스 (경고, 호출, 존재 등) 의 이벤트를 프로세싱하기 위하여, 자신을 포어그라운드에 도달하기 위한 주 애플리케이션 (primary application) 으로서 등록할 수도 있다. 이러한 실시형태에서, 애플리케이션은 특정 이벤트 클래스에 대한 현재-등록된 애플리케이션을 위한 클래스 ID 를 취출할 수도 있고, 저장된 클래스 ID 를 그 자신의 것으로 겹쳐쓰기할 것인지 여부에 대한 판단을 행할 수도 있다. 어느 것도 저장되지 않을 경우, 애플리케이션은 그 자신의 클래스 ID 를 특정 이벤트 클래스에 대한 주 포어그라운드 애플리케이션 (primary foreground application) 으로서 설정할 수도 있다. 추가의 실시형태에서는, 애플리케이션 A (120) 에서의 MIME-타입들의 리스트의 프로비전 (provision) 과 같이, 인보크되고 있는 이벤트 및 액티비티의 타입에 기초한 프로비저닝된 리스트가 있을 수도 있다. MIME-타입들의 이 세트는 순서대로 프로비저닝될 수도 있고, 애플리케이션 A (120) 는 이벤트들을, 이벤트 통지의 페이로드 내에 포함된 최고 우선순위의 MIME-타입을 갖는 모든 애플리케이션들에 브로드캐스팅할 수도 있다. 애플리케이션들이 이 이벤트를 수신할 때, 이들은 전형적으로, 포함된 MIME-타입이 이들에게 프로비저닝되었던 것과 일치하는지를 확인하고, 이들이 일치할 경우에만 포어그라운드에 도달할 수도 있다. 본질적으로, 이 실시형태는 클래스 ID 들 대신에 MIME-타입들을 이용한다. 그러나, 이 실시형태를 구현하기 위하여, 애플리케이션들은 전형적으로 협력하고, 그 클래스 ID 가 이벤트에서 전송되는 것과 일치하지 않을 경우에 포어그라운드에 전형적으로 도달하지 않으며, 이것은 각각의 모듈에서 추가적인 프로그래밍을 요구한다.
도 5 는 복수의 인보크된 무선 통신 디바이스-상주 애플리케이션들 사이의 디스플레이 (80) 제어를 위한 우선순위를 결정하는 중재기 (128) 를 위한 방법의 하나의 실시형태의 플로우차트이다. 중재기 (128) 는 블록 (150) (또는 단계 (150)) 에 의해 도시된 이벤트의 통지를 수신하고, 그 다음으로, 판단 블록 (152) 에서 도시된 바와 같이, 하나를 초과하는 애플리케이션이 인보크되는지 여부에 대한 결정이 행해진다. 하나를 초과하는 애플리케이션이 판단 블록 (152) 에서 인보크되지 않을 경우, 종결 블록 (154) 에서 도시된 바와 같이, 중재 프로세스는 종결된다. 이와 다르게, 하나를 초과하는 애플리케이션이 판단 블록 (152) 에서 인보크될 경우, 다음으로, 판단 블록 (156) 에서 도시된 바와 같이, 애플리케이션에 대한 미리 결정된 우선순위가 있는지 여부에 대한 판단이 행해지고, 미리 결정된 우선순위가 있을 경우에는, 종결 블록 (162) 에서 도시된 바와 같이, 중재가 종결된다.
이와 다르게, 판단 블록 (156) 에서 미리 결정된 우선순위 기준들이 없을 경우, 블록 (158) (또는 단계 (158)) 에서 도시된 바와 같이, 디스플레이 (80) 를 가지기 위한 애플리케이션의 우선순위가 결정되고, 그 다음으로, 블록 (160) (또는 단계 (160)) 에서 도시된 바와 같이, 플래그가 디스플레이 (80) 를 제어하기 위한 우선순위 애플리케이션으로 전송되고, 중재는 종결 블록 (162) 에서 도시된 바와 같이 다시 종결된다. 우선순위는 위에서 기술된 바와 같은 방법론, 또는 상기 방법론들 중의 임의의 것의 조합으로 블록 (158) (또는 단계 (158)) 에서 결정될 수도 있다.
도 6 은 디스플레이 (80) 의 제어를 추구하는 애플리케이션들에서 상주하는 우선순위 데이터에 기초하여 복수의 인보크된 무선 통신 디바이스-상주 애플리케이션들 사이의 디스플레이 제어를 위한 우선순위를 결정하기 위한 방법의 하나의 실시형태의 플로우차트이다. 통지 이벤트는 미리 정의된 프로세스 블록 (170) 에 의해 도시된 바와 같이 발생하고, 그 다음으로, 판단 블록 (172) 에서 도시된 바와 같이, 하나를 초과하는 애플리케이션이 인보크되는지 여부에 대한 결정이 행해진다. 하나를 초과하는 애플리케이션이 판단 블록 (172) 에서 인보크되지 않을 경우, 중재 프로세스가 요구되지 않고, 종결 블록 (174) 에서 도시된 바와 같이, 프로세스는 종결된다. 이와 다르게, 하나를 초과하는 애플리케이션이 판단 블록 (172) 에서 인보크될 경우, 그 다음으로, 판단 블록 (176) 에서 도시된 바와 같이, 디스플레이 (80) 를 제어하는 것을 시도하는 애플리케이션들에서 존재하는 미리 결정된 우선순위 데이터가 있는지 여부에 대한 판단이 행해지고, 미리 결정된 우선순위 데이터가 존재하지 않을 경우, 종결 블록 (182) 에서 도시된 바와 같이, 중재가 종결된다. 이와 다르게, 판단 블록 (176) 에서 존재하는 미리 결정된 우선순위 기준들이 있을 경우, 블록 (178) (또는 단계 (178)) 에서 도시된 바와 같이, 디스플레이 (80) 를 가지기 위한 최고 우선순위 애플리케이션이 결정되고, 그 다음으로, 블록 (180) (또는 단계 (180)) 에서 도시된 바와 같이, 플래그가 디스플레이 (80) 를 제어하기 위한 최고 우선순위 애플리케이션으로 전송되고, 종결 블록 (182) 에서 도시된 바와 같이, 프로세스가 다시 종결된다. 대안적으로, 우선순위는 위에서 기술된 바와 같은 방법론, 또는 상기 방법론들 중의 임의의 것의 조합으로 블록 (178) (또는 단계 (178)) 에서 결정될 수도 있다.
그러므로, 무선 통신 디바이스 (74) 는 무선 통신 디바이스 (74) 의 컴퓨터 플랫폼 (82) 상의 어느 상주 애플리케이션이 그 디스플레이 (80) 를 제어하는지를 결정하는 발명의 방법을 제공하고, 사용자 인터페이스 (140) 는 적어도, 무선 통신 디바이스 (74) 의 디스플레이 (80) 상에 나타나며, 사용자 인터페이스 (140) 를 통해, 무선 통신 디바이스 (74) 의 사용자는 컴퓨터 플랫폼 (82) 과 상호작용하고, 상기 발명의 방법은 무선 통신 디바이스 (74) 의 디스플레이 (80) 상에 사용자 인터페이스 (140) 를 디스플레이하는 단계를 포함하고, 사용자 인터페이스 (140) 는 컴퓨터 플랫폼 (82) 상에 상주하는 하나 이상의 애플리케이션들에 의해 선택적으로 제어되도록 구성된다. 하나의 실시형태에서, 방법은 컴퓨터 플랫폼 (82) 상에 상주하는 중재기 (128) 에서, 디스플레이 (80) 를 제어하기 위한 상주 애플리케이션들 중의 하나 이상으로부터 요청을 수신하는 단계와, 그 다음으로, 중재기 (128) 에서, 미리 결정된 기준들에 기초하여, 하나 이상의 상주 애플리케이션들 중의 어느 애플리케이션이 디스플레이 (80) 를 제어하는지를 결정하는 단계를 포함한다.
하나의 실시형태에서, 하나 이상의 상주 애플리케이션들의 각각이 디스플레이 (80) 를 제어하기 위한 애플리케이션에 대한 우선순위를 결정하는 우선순위 데이터를 포함할 경우, 방법은, 사용자 인터페이스 (140) 의 디스플레이 후에, 도 3a 에서 도시된 바와 같이, 복수의 하나 이상의 상주 애플리케이션들을 인보크하는 단계와, 각각의 인보크된 애플리케이션 내의 우선순위 데이터에 기초하여, 하나 이상의 상주 애플리케이션들 중의 어느 애플리케이션이 디스플레이 (80) 를 제어하는지를 결정하는 단계를 포함한다. 이러한 결정은 디스플레이 (80) 를 제어하기 위한 애플리케이션에 대한 우선순위를 결정하는 클래스 식별정보 (class identification) 의 이용에 기초할 수도 있거나, 또는 대안적으로, 복수의 인보크된 애플리케이션들 중의 하나가 우선순위 데이터에 기초하여 디스플레이 (80) 의 제어를 장악하는 것에 기초할 수도 있다. 이 실시형태에서, 우선순위 데이터 랭킹 (priority data ranking) 은 바람직하게는, 스래싱을 줄이기 위하여, 또는 바람직하게는 스래싱을 방지하기 위하여, 최고 우선순위 애플리케이션에 대한 디스플레이 제어를 유지할 수도 있다.
중재기 (128) 를 갖도록 구체화될 때, 미리 결정된 기준들에 기초하여, 하나 이상의 상주 애플리케이션들 중의 어느 애플리케이션이 디스플레이 (80) 를 제어하는지를 결정하는 단계는, 디스플레이 (80) 를 제어하는 것을 시도하는 애플리케이션들에 대한 우선순위 리스트를 사용하고 있다. 대안적으로, 중재기 (128) 에서, 미리 결정된 기준들에 기초하여, 하나 이상의 상주 애플리케이션들 중의 어느 애플리케이션이 디스플레이 (80) 를 제어하는지를 결정하는 것은 디스플레이 (80) 를 다시 제어하기 위하여, 최후 애플리케이션이 디스플레이 (80) 를 제어하도록 하고 있을 수도 있다. 또한, 중재기 (120) 에서, 미리 결정된 기준들에 기초하여, 하나 이상의 상주 애플리케이션들 중의 어느 애플리케이션이 디스플레이 (80) 를 제어하는지를 결정하는 것은 클래스를 하나 이상의 애플리케이션들에 배정하고 있을 수도 있고, 제어를 결정하는 것은 애플리케이션의 클래스에 기초한다. 또한, 중재기 (128) 에서, 하나 이상의 상주 애플리케이션들 중의 어느 애플리케이션이 디스플레이 (80) 를 제어하는지를 결정하는 것은, 사용자 인터페이스 (140) 에서 처리되고 있는 데이터의 타입에 기초하여 디스플레이 (80) 의 제어를 허용하고 있을 수도 있거나, 무선 통신 인터페이스 (92) 에서 수신되고 있는 데이터의 타입에 기초할 수도 있다.
방법은 사용자 인터페이스 (140) 에서, 데이터를 무선 통신 디바이스 (74) 의 사용자에게 디스플레이하는 단계를 더 포함할 수도 있고, 사용자 인터페이스 (140) 가 디스플레이 (80) 상의 인터페이스 (140) 와 같은 디스플레이 스크린일 경우, 방법은 API 들 (142, 144, 146) 과 같은 디스플레이 (80) 에서, 그래픽 정보를 무선 통신 디바이스 (74) 의 사용자에게 디스플레이하는 단계를 포함할 수도 있다. 대안적으로, 사용자 인터페이스가 사용자가 컴퓨터 플랫폼 (82) 을 액세스하기 위한 제어 인터페이스일 경우, 방법은 디바이스 기능을 제어하기 위한 디스플레이 스크린 (80) 에서 그래픽 정보를 무선 통신 디바이스 (74) 의 사용자에게 디스플레이하는 단계를 더 포함할 수도 있다. 사용자 인터페이스 (140) 가 사용자 인터페이스 (140) 를 선택적으로 제어하도록 구성된 하나 이상의 사용자 인터페이스 애플리케이션들을 포함할 경우, 중재기 (120) 는 윈도우형 API 들 (142, 144, 146) 과 같은 하나 이상의 사용자 인터페이스 애플리케이션들에 대한 디스플레이 (80) 의 제어를 선택적으로 허용하도록 추가로 구성될 수도 있다.
위에서 설명된 도 5 의 블록 (160) 및 도 6 의 블록 (180) 을 참조하여 위에서 설명된 바와 같이, 무선 통신 디바이스는 플래그들 (또는 다른 메시지들) 을 우선순위 애플리케이션들로 전송하도록 구성될 수도 있다. 다양한 실시형태들에서, 무선 통신 디바이스는 그 애플리케이션들이 디스플레이를 제어하지 않을 수도 있음 (또는 포어그라운드에 도달하지 않을 수도 있음) 을 표시하는 메시지들, 플래그들, 또는 다른 신호들을 컴퓨터 플랫폼 상에 상주하는 애플리케이션들로 송신하도록 구성될 수도 있다. 특히, 무선 통신 디바이스는 예컨대, 중재기를 통해, 애플리케이션이 무선 통신 디바이스의 백그라운드에서 비액티비티 또는 중단된 애플리케이션으로서 동작해야 함을 표시하는 중단 메시지 (suspend message) 들을 송신할 수도 있다. 예를 들어, 도 5 의 블록 (158) 또는 도 6 의 블록 (178) 에서의 동작들을 이용하여 우선순위 애플리케이션을 결정한 후, 무선 통신 디바이스는 플래그를 우선순위 애플리케이션으로, 그리고 중단 메시지를 무선 통신 디바이스의 프로세서 상에서 실행되는 하나 걸러마다의 애플리케이션으로 송신할 수도 있다. 이러한 방법으로, 애플리케이션들은 이들이 디스플레이를 제어 (또는 포어그라운드에 도달함) 할 수도 있는 우선순위 애플리케이션인지 여부에 관계 없이, 이러한 메시지들 또는 신호들을 통해 무선 통신 디바이스에 의한 중재 동작들의 결과들을 수신할 수도 있다.
다양한 실시형태들에서, 무선 통신 디바이스는 위에서 설명된 중재 동작들을 수정하고 및/또는 지원하기 위한 동작들을 수행할 수도 있다. 특히, 무선 통신 디바이스는 이하에서 설명된 바와 같은 방법들 (700, 750, 800, 950, 1050, 1150, 1200, 및 1300) 을 수행할 수도 있다. 다양한 실시형태들에서, 이하에서 설명된 방법들의 동작들은 위에서 설명된 중재 동작들과 조합하여, 또는 그 일부로서 수행될 수도 있다. 예를 들어, 무선 통신 디바이스는 예컨대, 중재기를 통해, 도 5 의 블록들 (150 내지 160) 또는 도 6 의 블록들 (170 내지 180) 에서의 동작들을 수행한 후에, 이하에서 설명된 바와 같은 방법들 (950, 1050, 1150, 1200, 또는 1300) 의 동작들 중의 임의의 것 또는 전부를 수행할 수도 있다.
또한, 다양한 실시형태들에서, 무선 통신 디바이스는 위에서 설명된 바와 같은 중재기를 통해, 이하에서 설명된 다양한 방법들의 동작들을 수행하도록 구성될 수도 있다. 예를 들어, 무선 통신 디바이스는 무선 통신 디바이스의 프로세서 상에서 실행되는 중재기 애플리케이션 (또는 앱 (app)) 을 통해, 또는 대안적으로, 무선 통신 디바이스의 오퍼레이팅 시스템의 일부인 중재기 프로세스들, 루틴 (routine) 들, 스레드 (thread) 들, 소프트웨어, 또는 다른 명령들을 통해, 방법들 (700, 750, 800, 950, 1050, 1150, 1200, 또는 1300) 중의 임의의 것에서의 동작들의 임의의 조합을 수행할 수도 있다. 따라서, 이하에서 설명된 무선 통신 디바이스의 임의의 동작들은 이러한 중재기를 통해 실행되는 것으로 고려될 수도 있다.
도 7a 내지 도 8 은 무선 통신 디바이스가 무선 통신 디바이스의 프로세서 상에서 실행되는 애플리케이션들에 의해 제어될 수도 있는 복수의 디스플레이들을 관리하기 위한 실시형태의 방법들 (700, 750, 및 800) 을 예시한다. 다양한 실시형태들에서, 무선 통신 디바이스는 무선 통신 디바이스의 프로세서 상에서 실행되는 애플리케이션들에 대응하는 정보 (예컨대, 이미지들, 픽처들, 및 사용자 인터페이스 엘리먼트들) 를 렌더링하기 위한 복수의 디스플레이들을 포함할 수도 있거나, 이러한 복수의 디스플레이들에 결합될 수도 있거나, 또는 이와 다르게, 이러한 복수의 디스플레이들을 사용하도록 구성될 수도 있다. 예를 들어, 무선 통신 디바이스는, 클램 쉘-스타일 (clam shell-style) 이동 디바이스의 엘리먼트들 (예컨대, 하우징 플랩들, 측부들, 절반부들 등) 이 폐쇄될 때에 애플리케이션 정보를 렌더링하기 위한 소형 디스플레이와, 클램 쉘-스타일 이동 디바이스가 개방될 때의 더욱 대형의 디스플레이와 같은 복수의 스크린들을 포함하는 클램 쉘-스타일 이동 디바이스 (예컨대, 셀 전화) 일 수도 있다. 또 다른 예로서, 무선 통신 디바이스는 그 하우징의 전면 상의 제 1 터치스크린 디스플레이와, 하우징의 후면 내에 내장된 제 2 터치스크린 디스플레이를 포함할 수도 있다. 이하에서 더욱 상세하게 논의된 도 14 는 복수의 디스플레이들을 포함하는 무선 통신 디바이스의 예를 예시한다.
실시형태에서, 무선 또는 유선 접속들을 통해, 무선 통신 디바이스는 또한, 다른 디스플레이들 (예컨대, 휴대용 랩톱 컴퓨터, 데스크톱 컴퓨터, 더욱 대형의 전체 이미지를 렌더링하기 위하여 조합하여 이용된 복수의 LCD 모니터들 등), 또는 디스플레이들을 가지는 다른 무선 통신 디바이스들 (예컨대, 무선 통신 디바이스에 링크된 또 다른 스마트폰) 에 접속되거나 테더링 (tethering) 될 수도 있다. 다양한 실시형태들에서, 복수의 디스플레이들은 단일 디스플레이 (예컨대, 광고판 (billboard) 과 같은 더욱 대형의 전체 이미지를 디스플레이하기 위하여 조합하여 이용된 복수의 모니터들) 내의 상이한 섹션 (section) 들, 사분면 (quadrant) 들, 또는 픽셀 범위들을 지칭할 수도 있다. 예를 들어, 무선 통신 디바이스는 복수의 데스크톱들, 환경들, 또는 포어그라운드 애플리케이션들을 렌더링하기 위한 단일 터치스크린 디스플레이의 부지 (real-estate) 를 분할할 수도 있다.
도 7a 내지 도 8 을 참조하여 이하에서 설명된 실시형태의 방법들 (700, 750, 및 800) 은, 무선 통신 디바이스의 컴퓨팅 플랫폼 상에 상주하는 애플리케이션들이 어떻게 우선순위 정보에 기초하여 복수의 디스플레이들 중의 하나를 제어하도록 허용될 수도 있는지를 관리하기 위하여, 예컨대, 중재기를 통해, 무선 통신 디바이스에 의해 수행될 수도 있다. 예를 들어, 무선 통신 디바이스는 미리 결정된 기준들에 기초하여, 무선 통신 디바이스 상에서 실행되는 어느 다른 애플리케이션들이 디스플레이의 포어그라운드에 도달할 수도 있는지를 관리하기 위한 프로세서 상에서 실행되는 중재기 애플리케이션 (또는 앱) 을 통해 방법들 (700, 750) 을 수행할 수도 있다.
도 7a 는 무선 통신 디바이스가 복수의 디스플레이들의 포어그라운드의 제어를 배정 (또는 중재) 하기 위한 실시형태의 방법 (700) 을 예시한다. 다시 말해서, 무선 통신은 디바이스에 등록된 애플리케이션들의 우선순위들을 비교함으로써 어느 애플리케이션이 복수의 디스플레이들의 각각에 대한 포어그라운드에 도달할 수도 있는지를 결정할 수도 있다. 실시형태에서, 무선 통신 디바이스 상에서 동작하는 각각의 애플리케이션의 우선순위는 디바이스의 오퍼레이팅 시스템 또는 중재기에 등록될 수도 있다. 예를 들어, 더 높은 우선순위의 애플리케이션이 주 디스플레이의 포어그라운드의 제어를 가질 때, 무선 통신 디바이스는 더 낮은 우선순위의 애플리케이션을 보조 디바이스의 제어에 배정할 수도 있다. 또 다른 예로서, 무선 통신 디바이스는 주 디스플레이를 제어하기 위해 충분히 중요하지 않은 중간-우선순위 (medium-priority) 의 애플리케이션을 위하여 보조 디스플레이를 제어하는 낮은-우선순위 (low-priority) 의 애플리케이션을 선취 (preempt) 할 수도 있다.
블록 (701) 에서, 무선 통신 디바이스는 예컨대, 무선 통신 디바이스 상에서 실행되는 애플리케이션들의 설명 정보 (descriptive information) 를 포함하는 등록 정보를 저장함으로써 애플리케이션들을 등록할 수도 있다. 등록된 애플리케이션들은 무선 통신 디바이스의 컴퓨터 플랫폼 상에 상주하는 것으로서 고려될 수도 있다. 무선 통신 디바이스는 무선 통신 디바이스의 부트-업 (boot-up) 시에, 애플리케이션들로부터 등록 요청들을 수신하는 것에 응답하여, 또는 애플리케이션들이 설치되거나, 착수되거나, 또는 이와 다르게 활성화될 때에 (예컨대, 실행 시간에 또는 애플리케이션 활성화 시에) 동적으로, 애플리케이션들을 등록할 수도 있다. 실시형태에서, 애플리케이션들은 이벤트 통지들을 수신하는 것에 응답하여 중재기를 통해 무선 통신 디바이스에 의해 등록될 수도 있다.
무선 통신 디바이스의 컴퓨터 플랫폼 상에 상주하는 애플리케이션의 등록 시에, 다양한 등록 정보는 애플리케이션에 관련하여, 예컨대, 무선 통신 디바이스 상에서 실행되는 중재기 애플리케이션 (또는 OS 프로세스) 에 의해 액세스가능한 데이터 테이블 또는 데이터베이스에서 저장될 수도 있다. 특히, 각각의 등록된 애플리케이션은 식별정보 (예컨대, 애플리케이션 ID), 디폴트 우선순위 (예컨대, 높음 (high), 낮음 (low), 임계 (critical) 등), 애플리케이션의 네트워크 요건들 (예컨대, 인터넷 액세스, 어떤 요구된 서비스 품질 (quality of service; QoS), 필요한 브로드캐스트 또는 멀티캐스트, 필요한 글로벌 위치확인 시스템 (global positioning system; GPS) 등), 애플리케이션이 도 7b 를 참조하여 이하에서 논의된 바와 같이 동적으로 재우선순위화 (reprioritize) 될 수도 있는지 (예컨대, 중재기가 동작 조건들 등에 기초하여 높음으로부터 낮음으로 우선순위를 동적으로 변경할 수도 있음) 여부의 표시, 및 애플리케이션이 부 디스플레이 (예컨대, 보충적인 터치스크린 등) 상에서 이용될 수 있는지 여부의 표시와 연관될 수도 있다.
추가적으로, 각각의 등록된 애플리케이션은 등록된 애플리케이션이 무선 통신 디바이스의 백그라운드에서 실행될 수 있는지 여부의 표시 (즉, "백그라운드-인에이블형 (background-enabled)" 또는 "백그라운드-디스에이블형 (background-disabled)") 와 연관될 수도 있다. 비디오 호출 애플리케이션 (예컨대, QCHAT®) 이 "백그라운드-인에이블형" 인 것으로 무선 통신 디바이스 (및 중재기) 에 등록하고, 카메라 애플리케이션이 디스플레이에 대한 포어그라운드를 제어 (또는 포어그라운드에서 실행됨) 하고 있는 동안에 비디오 호출이 추후에 수신될 때, 무선 통신 디바이스는 중재기를 통해, 비디오 호출 애플리케이션이 백그라운드에서 실행하는 것을 계속하는 동안에, 카메라 애플리케이션이 포어그라운드를 제어하는 것을 계속하는 것을 허용할 수도 있다. 또 다른 예로서, 비디오 호출 애플리케이션이 백그라운드-인에이블형 표시 없이 등록될 때 (즉, "백그라운드-디스에이블형" 표시자가 등록됨), 무선 통신 디바이스는 카메라 애플리케이션을 일시정지시킬 수도 있고, 비디오 호출 애플리케이션이 카메라 애플리케이션보다 더 높은 우선순위 레벨로 등록될 때에, 비디오 호출 애플리케이션이 디스플레이의 포어그라운드의 제어를 취하는 것을 허가할 수도 있다. 실시형태에서, 무선 통신 디바이스는, 비디오 호출 애플리케이션이 백그라운드에서 실행되는 프로세스로서 호출을 행하고 있음을 표시하는 톤들과 같이, 비디오 호출 스테이터스 및/또는 플로어 제어 (floor control) 를 표시할 수도 있는 톤들, 음악, 또는 다른 사운드들을 방출하거나 렌더링하도록 구성될 수도 있다.
다양한 등록된 애플리케이션들의 등록 정보는 데이터 레코드들 내의 데이터, 비트들, 변수들, 설명 스트링 (descriptive string) 들, 또는 무선 통신 디바이스가 애플리케이션들을 평가하기 위하여 액세스할 수도 있는 임의의 다른 데이터로서 저장될 수도 있다. 실시형태에서, 애플리케이션이 백그라운드-인에이블형인지 여부의 표시와 같은 등록 정보는 애플리케이션, 무선 통신 디바이스, 및/또는 중재기와 연관된 사용자 선호도들에 기초할 수도 있다. 예를 들어, 애플리케이션이 디폴트/주 스크린 상에서 렌더링되기만 할 수도 있거나, 애플리케이션이 무선 통신 디바이스 상의 백그라운드 프로세스로서 항상 실행될 수도 있음 (또는 절대로 실행될 수 없음) 을 표시하는 사용자 선호도들은 특정 애플리케이션에 대해 설정될 수도 있다.
도 7a 로 돌아가면, 결정 블록 (702) 에서, 무선 통신 디바이스는 제 1 애플리케이션에 관련 있는 액티비티가 검출되는지 여부를 결정할 수도 있다. 예를 들어, 위에서 설명된 바와 같이, 무선 통신 디바이스는 중재기를 통해, 중재기에 등록된 애플리케이션들을 인보크할 수도 있는 통지 이벤트들 또는 다른 메시지들이 언제 수신되는지를 검출할 수도 있다. 이러한 검출된 액티비티들은 각각의 개별적인 등록된 애플리케이션에 대한 미리 정의된 이벤트들일 수도 있거나 모든 애플리케이션들에 대해 범용일 수도 있다. 제 1 애플리케이션에 관련 있을 수도 있는 검출된 액티비티들은 조우된 예외들, 등록된 애플리케이션들과 연관된 저장된 정보에 있어서의 검출된 변경들 (예컨대, 우선순위 변경), 및/또는 중재기로의 새로운 애플리케이션의 등록, 애플리케이션의 동작 스테이터스 (예컨대, 중단됨, 액티비티 등) 또는 등록 정보 (예컨대, 우선순위 클래스 등) 에 있어서의 변경, 디스플레이의 포어그라운드의 애플리케이션 요청들 제어, 애플리케이션에 의한 디스플레이 포어그라운드의 제어의 손실, 및 디스플레이의 액티비티 상태 변경 (예컨대, 주 디스플레이가 이용가능하게 됨 등) 과 같은 다양한 상태들에 응답하여 수신되는 수신된 이벤트 통지들/신호들/인터럽트들/또는 다른 메시지들을 포함할 수도 있다.
실시형태에서, 무선 통신 디바이스는 제 1 애플리케이션을 식별하는 비트들 또는 다른 표시자들, 및/또는 제 1 애플리케이션의 클래스 또는 우선순위에 기초하여 수신된 메시지가 제 1 애플리케이션에 관련 있는 것으로 결정할 수도 있다. 대안적으로, 임의의 수신된 메시지는 임의의 착수된 및/또는 액티비티 애플리케이션들 (예컨대, 무선 통신 디바이스의 백그라운드/포어그라운드에서 실행되는 애플리케이션들) 에 관련 있을 수도 있다. 다양한 실시형태들에서, 무선 통신 디바이스는 임의의 이러한 검출된 액티비티 (예컨대, 수신된 메시지) 에 대한 관련성을 결정하기 위하여 모든 등록된 애플리케이션을 평가할 수도 있다.
무선 통신 디바이스가 제 1 애플리케이션에 관련 있는 액티비티를 검출하지 않을 경우 (즉, 결정 블록 (702) = "아니오"), 무선 통신 디바이스는 블록 (701) 에서 애플리케이션들을 등록하기 위한 동작들을 계속할 수도 있다. 예를 들어, 무선 통신 디바이스는 계속적으로 또는 주기적으로 애플리케이션들을 등록할 수도 있고 통지 이벤트들에 대해 모니터링할 수도 있다. 무선 통신 디바이스가 제 1 애플리케이션에 관련 있는 액티비티를 검출할 경우 (즉, 결정 블록 (702) = "예"), 블록 (704) 에서, 무선 통신 디바이스는 디스플레이 우선순위의 순서로 제 1 애플리케이션에 대한 모든 실행가능한 디스플레이들의 리스트를 식별 (또는 순서화) 할 수도 있다. 예를 들어, 무선 통신 디바이스는 모든 터치스크린들, LCD 스크린들, 및 적당하게 기능하고 있으며 (즉, 파손되지 않은, 수리되고 있는, 등) 현재 사용 중인 무선 통신 디바이스와 연관된 다른 디스플레이 유닛들을 식별할 수도 있다. 다시 말해서, 실행가능한 디스플레이의 식별된 리스트는 제 1 애플리케이션이 포어그라운드에 도달할 수도 있는 모든 가능한 디스플레이들의 리스트일 수도 있다.
실시형태에서, 무선 통신 디바이스는 제 1 애플리케이션과 연관된 등록 정보에 기초하여 리스트를 식별할 수도 있다. 예를 들어, 제 1 애플리케이션의 등록 정보가 제 1 애플리케이션이 다수의 디스플레이들을 지원하지 않음을 표시할 경우, 무선 통신 디바이스는 디바이스의 디폴트 또는 주 디스플레이만을 포함하는 리스트를 식별할 수도 있다. 또 다른 예로서, 무선 통신 디바이스는 바람직한 디스플레이 우선순위를 구하기 위하여 제 1 애플리케이션의 등록 정보를 평가할 수도 있고, 이에 따라 리스트를 식별할 수도 있다. 또 다른 실시형태에서, 무선 통신 디바이스는 디스플레이를 이용하기 위해 요구된 전력을 평가함으로써 실행가능한 디스플레이들의 리스트를 식별할 수도 있다. 특히, 무선 통신 디바이스는 제어하기 위한 제 1 애플리케이션에 대하여, 비활성화된 보조 디스플레이가 활성화 (또는 급전) 될 수도 있는지 여부를 결정하기 위하여 디바이스의 이용가능한 배터리 전력을 평가할 수도 있다. 무선 통신 디바이스는 제 1 애플리케이션에 의한 이러한 보조 디스플레이의 전력 소비를 추정할 수도 있고, 보조 디스플레이를 활성화하는 것이 실현가능한 것인지 여부를 결정하기 위하여 추정된 소비를 문턱 값과 비교할 수도 있다.
실행가능한 디스플레이들의 리스트의 디스플레이 순서는 다양한 디스플레이들에 관련된 미리 정의된 저장된 정보 (예컨대, 디스플레이 유닛들의 우선순위 분류들을 설명하는 정보를 갖는 데이터베이스), 사용자 선호도들, 액티비티 (예컨대, 디스플레이가 얼마나 자주 이용되는지), 및 제 1 애플리케이션에 대한 유용성에 기초할 수도 있다. 예를 들어, 실행가능한 디스플레이들의 리스트는 디폴트 (또는 주) 터치스크린으로부터 보조 디스플레이들로의 순서로 되어 있을 수도 있다. 또 다른 예로서, 실행가능한 디스플레이들의 리스트는 해상도 또는 렌더 품질 (예컨대, HD, SD, 흑색-및-백색 등) 의 하향 순서 (descending order) 로 제시될 수도 있다. 또 다른 예로서, 리스트는 제 1 애플리케이션과 연관된 특정 타입의 데이터 (예컨대, 비디오, 텍스트 등) 를 최상으로 렌더링할 수 있는 순서로 디스플레이들을 순서화할 수도 있다. 다양한 실시형태들에서, 제 1 애플리케이션에 대한 식별된 리스트는 다른 등록된 애플리케이션들에 대한 식별된 리스트와는 상이할 수도 있다. 예를 들어, 무선 통신 디바이스는 제 1 애플리케이션의 등록된 정보에 기초하여 OLED 또는 LED 스크린이 제 1 애플리케이션 (예컨대, 비디오 게임) 에 대한 최고 디스플레이 우선순위를 가진다는 것을 식별할 수도 있지만, 터치스크린을 제 2 애플리케이션 (예컨대, 픽처 편집기) 에 대한 최고 디스플레이 우선순위로서 식별할 수도 있다.
블록 (706) 에서, 무선 통신 디바이스는 실행가능한 디스플레이들의 식별된 리스트로부터 다음 디스플레이를 선택할 수도 있다. 처음에는, 무선 통신 디바이스가 블록 (706) 에서의 동작들을 수행하고, 다음 디스플레이는 실행가능한 디스플레이들의 식별된 리스트에서의 제 1 디스플레이 (즉, 제 1 애플리케이션에 대한 최고 디스플레이 우선순위를 가지는 디스플레이) 일 수도 있다. 예를 들어, 무선 통신 디바이스는 제 1 애플리케이션에 대해 평가하기 위하여 디폴트 (또는 주) 디스플레이를 최초에 선택할 수도 있다. 결정 블록 (708) 에서, 무선 통신 디바이스는 선택된 디스플레이가 제 2 애플리케이션에 의해 이용 중인지 여부를 결정할 수도 있다. 선택된 디스플레이가 제 2 애플리케이션에 의해 이용 중인지 않을 경우 (즉, 결정 블록 (708) = "아니오"), 블록 (716) 에서는, 무선 통신 디바이스가 선택된 디스플레이의 포어그라운드의 제어를 제 1 애플리케이션에 배정하는 플래그 (또는 다른 신호) 를 전송할 수도 있다.
선택된 디스플레이가 제 2 애플리케이션에 의해 이용 중일 경우 (즉, 결정 블록 (708) = "예"), 결정 블록 (710) 에서, 무선 통신 디바이스는 제 2 애플리케이션이 제 1 애플리케이션보다 더 높은 우선순위를 가지는지 여부를 결정할 수도 있다. 무선 통신 디바이스는 예컨대, 더 높은 우선순위를 가지는 애플리케이션을 식별하기 위하여 우선순위 클래스 또는 다른 특성들을 비교함으로써, 제 1 및 제 2 애플리케이션들의 등록 정보를 비교할 수도 있다. 무선 통신 디바이스는 어느 애플리케이션이 더 높은 우선순위를 가지는지를 결정하기 위하여, 도 5 내지 도 6 의 블록들 (158 및/또는 178) 을 참조하여 위에서 설명된 것들과 유사한 동작들을 수행할 수도 있다.
제 2 애플리케이션이 더 높은 우선순위를 가지지 않을 경우 (즉, 결정 블록 (710) = "아니오"), 선택적인 블록 (718) 에서, 무선 통신 디바이스는 예컨대, 제 2 애플리케이션이 선택된 디스플레이의 포어그라운드의 제어로부터 제거되고 있음을 표시하는 비트를 저장함으로써, 제 2 애플리케이션의 스테이터스를 변경할 수도 있다. 실시형태에서, 스테이터스의 변경은, 제 2 애플리케이션의 스테이터스 변경을 표시하는 메시지 또는 신호 (예컨대, 중단 메시지) 를 전송하고, 이에 따라, 가능한 경우, 제 2 애플리케이션을 또 다른 디스플레이에 재배정하기 위한 방법 (700) 의 수행을 트리거링하는 무선 통신 디바이스에 의해 동반될 수도 있다. 다음으로, 무선 통신 디바이스는 블록 (716) 에서의 동작들을 계속할 수도 있다.
제 2 애플리케이션이 더 높은 우선순위를 가질 경우 (즉, 결정 블록 (710) = "예"), 결정 블록 (712) 에서, 무선 통신 디바이스는 선택하기 위한 실행가능한 디스플레이들의 식별된 리스트에서 다음 디스플레이가 있는지 여부를 결정할 수도 있다. 다시 말해서, 무선 통신 디바이스는 제 1 애플리케이션을 실행가능한 디스플레이들의 식별된 리스트에서 다음 최고 디스플레이 우선순위를 갖는 디스플레이에 배정하기 위하여, 또 다른 반복으로 블록 (706) 의 동작들을 수행할 것인지 여부를 결정할 수도 있다. 선택하기 위한 실행가능한 디스플레이들의 식별된 리스트에서 다음 디스플레이가 없을 경우 (즉, 결정 블록 (712) = "아니오"), 블록 (714) 에서, 무선 통신 디바이스는 제 1 애플리케이션을 디스플레이를 위한 대기 큐 (wait queue) 에 추가할 수도 있다. 예를 들어, 제 1 애플리케이션은 주 디스플레이, 또는 실행가능한 디스플레이들의 식별된 리스트에서의 임의의 디스플레이가 이용가능해질 때까지 중단될 수도 있다. 위에서 설명된 바와 같이, 무선 통신 디바이스는 디스플레이들이 이용가능해질 때에 메시지 또는 신호를 수신할 수도 있고, 이에 응답하여, 제 1 애플리케이션을 디스플레이에 배정하기 위하여 방법 (700) 의 동작들을 수행할 수도 있다.
실시형태에서, 무선 통신 디바이스는 애플리케이션을 순서화된 디스플레이들의 그 연관된 리스트 내의 상이한 디스플레이들에 연속적으로 배정하기 위하여 방법 (700) 을 수행할 수도 있다. 다시 말해서, 어떤 디스플레이 (예컨대, 디폴트, 주, 높은 우선순위) 가 이용가능해졌음을 표시하는 메시지 또는 신호를 수신하는 것에 응답하여, 무선 통신 디바이스는 보조 디스플레이를 제어하는 애플리케이션이 어떤 디스플레이에 재배정될 수도 있는지 여부를 결정하기 위하여 방법 (700) 에서의 동작들을 수행할 수도 있다. 예를 들어, 더 높은 우선순위의 제 2 애플리케이션이 종결되고 전방-대향 (front-facing) 디스플레이 (즉, 디폴트 또는 주 디스플레이) 의 제어를 넘겨줄 때, 무선 통신 디바이스는 무선 통신 디바이스의 하우징의 후면 상의 보조 디스플레이에 이전에 배정된 더 낮은 우선순위의 제 1 애플리케이션이 전방-대향 디스플레이에 재배정될 수도 있는지 여부를 결정할 수도 있다.
도 7b 는 무선 통신 디바이스가 복수의 디스플레이들의 포어그라운드의 제어를 배정 (또는 중재) 하기 위한 실시형태의 방법 (750) 을 예시한다. 방법 (750) 이 무선 통신 디바이스 상에 상주하며 중재기에 의해 관리되는 것으로 등록된 다양한 애플리케이션들의 우선순위들을 업데이트 (또는 재계산) 하기 위한 동작들을 포함하는 것을 제외하고는, 방법 (750) 은 위에서 설명된 방법 (700) 과 유사하다. 블록 (701) 에서, 무선 통신 디바이스는 예컨대, 무선 통신 디바이스 상에서 실행되는 애플리케이션들의 설명 정보를 저장함으로써 애플리케이션들을 등록할 수도 있다.
블록 (752) 에서, 무선 통신 디바이스는 미리 정의된 이벤트들에 응답하여 동적 우선순위 변경들에 대해 등록된 애플리케이션들의 우선순위들을 재계산 (또는 재우선순위화 (re-prioritization) 를 수행) 할 수도 있다. 위에서 설명된 바와 같이, 다양한 애플리케이션들의 등록 시에 무선 통신 디바이스에 의해 저장된 등록 정보는 애플리케이션들이 동적으로 재우선순위화될 수도 있는지 여부의 표시들을 포함할 수도 있다. 다시 말해서, 등록 정보는 애플리케이션이 예컨대, 중재기 애플리케이션 또는 OS 루틴을 통해, 무선 통신 디바이스에 의해 재우선순위화되도록 동의하였는지 여부를 표시할 수도 있다. 긴급 호출 애플리케이션들과 같은 어떤 애플리케이션들은 정적 우선순위 (static priority) 들을 가질 수도 있고, 무선 통신 디바이스에 의한 동적 재우선선위화를 허용하도록 등록되지 않을 수도 있다.
다양한 실시형태들에서, 미리 정의된 이벤트들은 무선 통신 디바이스에 의해 일반적으로 액세스가능한 데이터로 (예컨대, 중재기 애플리케이션과 연관된 메모리 내에) 저장될 수도 있거나, 또는 대안적으로, 개별적인 등록된 애플리케이션들의 등록 정보 내에 저장될 수도 있다. 미리 정의된 이벤트들은 특정 애플리케이션들에 대한 우선순위의 재계산을 트리거링할 수도 있는 상태들, 타이머들, 메시지들 (또는 수신된 메시지 타입들), 또는 다른 상황들을 포함할 수도 있다. 예를 들어, 어떤 애플리케이션에 대한 등록 정보는, 무선 통신 디바이스가 시간 주기 (예컨대, 밀리초(들), 초(들), 분(들) 등) 마다, 및/또는 어떤 수의 프로세서 클록 사이클들 (또는 신호들) 마다 한번씩 어떤 애플리케이션의 우선순위를 재계산해야 하는 것을 표시할 수도 있다. 또 다른 예로서, 무선 통신 디바이스는 애플리케이션의 등록 또는 착수를 검출하는 것에 기초하여 어떤 애플리케이션에 대한 재우선순위화 동작들을 수행할 수도 있다. 실시형태에서, 무선 통신 디바이스는 주소록 애플리케이션에 대응하는 터치스크린 상의 탭 (tap) 들 또는 텍스트 타이핑 입력들과 같은 검출된 사용자 입력에 기초하여 애플리케이션에 대한 재우선순위화 동작들을 수행할 수도 있다.
또 다른 실시형태에서, 무선 통신 디바이스는 디바이스의 동작 파라미터들에서의 변경들에 기초하여 애플리케이션에 대한 재우선순위화 동작들을 수행할 수도 있다. 예를 들어, 애플리케이션은 광역 네트워크 (wide area network; WAN) 에 대한 접속을 상실하는 것, WAN 에 대한 접속을 획득하는 것, 셀룰러 네트워크 서비스 액티비티 변경들을 검출하는 것, 및/또는 어떤 액세스 포인트에 접속하는 것과 같이, 무선 통신 디바이스가 네트워크 접속성에서의 변경을 검출하는 것에 응답하여 재우선순위화될 수도 있다. 또 다른 예로서, 애플리케이션은 무선 통신 디바이스가 단거리 무선 신호 (예컨대, 블루투스 (Bluetooth) 등) 를 수신하는 것, 및/또는 이용가능한 전력 (예컨대, 전원에 접속된, 미리 정의된 문턱 미만의 이용가능한 배터리 수명 등) 에서의 변경을 검출하는 것에 응답하여 재우선순위화될 수도 있다. 또 다른 실시형태에서, 무선 통신 디바이스는 등록된 애플리케이션들에서의 스테이터스 변경들 (예컨대, 중단됨, 활성화됨, 디스플레이의 제어로부터 제거됨 등) 을 검출하는 것에 응답하여 애플리케이션들의 우선순위들을 재계산할 수도 있다. 예를 들어, 무선 통신 디바이스는 애플리케이션이 아이들 스크린 (idle screen) 을 가질 때, 전형적으로 높은 우선순위의 비디오 호출 애플리케이션의 우선순위를 낮출 수도 있다.
실시형태를 예시하기 위한 예로서, 무선 통신 디바이스는 동적 재우선순위화를 위해 등록된 2 개의 애플리케이션들을 그 프로세서 상에서 실행할 수도 있다: 네트워크 접속을 요구하며 높은 우선순위로 초기에 등록될 수도 있는 비디오 호출 애플리케이션, 및 네트워크 접속을 요구하지 않으며 낮은 우선순위로 초기에 등록될 수도 있는 카메라 애플리케이션. 비디오 호출 애플리케이션이 착수될 때, 무선 통신 디바이스는 중재기를 통해, 이용가능한 셀룰러 네트워크 접속이 없다는 것 (즉 커버리지 없음) 을 검출할 수도 있고, 이에 따라, 비디오 호출 애플리케이션은 일시적으로 동작불가능할 수도 있다. 이러한 상태에서, 무선 통신 디바이스는 중재기를 통해, 카메라가 무선 통신 디바이스의 디스플레이의 포어그라운드의 제어를 상실할 수도 있는 상황을 회피하기 위하여, 비디오 호출 애플리케이션보다 더 높은 우선순위를 갖도록 카메라 애플리케이션을 동적으로 재우선순위화할 수도 있다.
실시형태를 예시하기 위한 또 다른 예로서, 무선 통신 디바이스는 동적 재우선순위화를 위해 등록된 2 개의 애플리케이션들을 그 프로세서 상에서 실행할 수도 있다: 높은 우선순위로 초기에 등록될 수도 있는 비디오 호출 애플리케이션; 및 낮은 우선순위로 초기에 등록될 수도 있는 주소록 애플리케이션. 무선 통신 디바이스는 주소록 애플리케이션이 디스플레이에 대한 포어그라운드를 제어하고 있을 때에 사용자 입력들을 검출할 수도 있고, 그 결과, 비디오 호출 애플리케이션이 착수되거나 착신 호출을 수신하더라도 입력을 차단 (interrupt) 하는 것을 회피하기 위하여 주소록 애플리케이션의 우선순위를 증가시킬 수도 있다.
애플리케이션들에 대한 재계산 (또는 재우선순위화) 동작들은 다양한 가중화 방식들, 규칙 세트들, 밸런싱 인자 (balancing factor) 들, 모델들, 수학식들, 및 각각의 애플리케이션에 대한 새로운 우선순위 값들을 결정하기 위한 다른 고려사항들을 이용할 수도 있다. 또한, 하나의 애플리케이션의 재우선순위화는 무선 통신 디바이스가 또 다른 애플리케이션의 우선순위를 재계산하는 것을 트리거링할 수도 있다. 예를 들어, 제 1 애플리케이션이 최고 우선순위를 가지는 것으로서 재계산하는 것에 응답하여, 무선 통신 디바이스는 (중재기를 통해) 이전에 최고 우선순위를 가졌던 제 2 애플리케이션의 우선순위를 재계산할 수도 있다.
도 7b 로 돌아가면, 결정 블록 (702) 에서, 무선 통신 디바이스는 제 1 애플리케이션에 관련 있는 액티비티가 검출되는지 여부를 결정할 수도 있다. 특히, 무선 통신 디바이스는 우선순위에 있어서의 변경이 등록된 애플리케이션들에 대해 발생하였는지 여부를 결정할 수도 있다. 예를 들어, 제 1 애플리케이션이 디스플레이를 위한 대기 큐에 있을 경우, 무선 통신 디바이스는 제 1 애플리케이션보다 더 높은 우선순위를 가지는 임의의 애플리케이션들이 재우선순위화되었는지 여부를 결정할 수도 있다. 또 다른 예로서, 제 1 애플리케이션이 디스플레이를 위한 대기 큐에 있을 경우, 또는 제 1 애플리케이션이 현재 그 바람직한 디스플레이의 제어 중인 것이 아닐 경우, 무선 통신 디바이스는 그 등록 정보에 기초하여, 디바이스의 디스플레이들 중의 임의의 것, 특히, 제 1 애플리케이션에 대해 바람직한 디스플레이가 이용가능해진 것인지 여부를 결정할 수도 있다.
무선 통신 디바이스가 제 1 애플리케이션에 관련 있는 액티비티를 검출하지 않을 경우 (즉, 결정 블록 (702) = "아니오"), 무선 통신 디바이스는 블록 (701) 에서 애플리케이션들을 등록하기 위한 동작들을 계속할 수도 있다. 무선 통신 디바이스가 제 1 애플리케이션에 관련 있는 액티비티를 검출할 경우 (즉, 결정 블록 (702) = "예"), 블록 (704) 에서, 무선 통신 디바이스는 디스플레이 우선순위의 순서로 제 1 애플리케이션에 대한 모든 실행가능한 디스플레이들의 리스트를 식별할 수도 있다. 블록 (706) 에서, 무선 통신 디바이스는 모든 실행가능한 디스플레이들의 식별된 리스트로부터 다음 디스플레이를 선택할 수도 있다. 결정 블록 (708) 에서, 무선 통신 디바이스는 선택된 디스플레이가 제 2 애플리케이션에 의해 이용 중인지 여부를 결정할 수도 있다. 선택된 디스플레이가 제 2 애플리케이션에 의해 이용 중인지 않을 경우 (즉, 결정 블록 (708) = "아니오"), 블록 (716) 에서는, 무선 통신 디바이스가 선택된 디스플레이의 포어그라운드의 제어를 제 1 애플리케이션에 배정하는 플래그를 전송할 수도 있다. 선택된 디스플레이가 제 2 애플리케이션에 의해 이용 중일 경우 (즉, 결정 블록 (708) = "예"), 결정 블록 (710) 에서, 무선 통신 디바이스는 제 2 애플리케이션이 제 1 애플리케이션보다 더 높은 우선순위를 가지는지 여부를 결정할 수도 있다. 제 2 애플리케이션이 더 높은 우선순위를 가지지 않을 경우 (즉, 결정 블록 (710) = "아니오"), 선택적인 블록 (718) 에서, 무선 통신 디바이스는 선택된 애플리케이션의 스테이터스를 변경할 수도 있고, 그 다음으로, 블록 (716) 에서의 동작들을 계속할 수도 있다. 제 2 애플리케이션이 더 높은 우선순위를 가질 경우 (즉, 결정 블록 (710) = "예"), 결정 블록 (712) 에서, 무선 통신 디바이스는 선택하기 위한 모든 실행가능한 디스플레이들의 리스트에서 다음 디스플레이가 있는지 여부를 결정할 수도 있다. 선택하기 위한 모든 실행가능한 디스플레이들의 리스트에서 다음 디스플레이가 없을 경우 (즉, 결정 블록 (712) = "아니오"), 블록 (714) 에서, 무선 통신 디바이스는 제 1 애플리케이션을 디스플레이를 위한 대기 큐에 추가할 수도 있다.
도 8 은 무선 통신 디바이스가 다수의 디스플레이들의 우선순위들을 재계산하기 위한 실시형태의 방법 (800) 을 예시한다. 도 7b 를 참조하여 위에서 설명된 등록된 애플리케이션들에 대한 우선순위들의 재계산과 유사하게, 무선 통신 디바이스는 등록된 애플리케이션들에 의해 제어될 수도 있는 디바이스의 다양한 디스플레이들의 우선순위 정보를 업데이트하도록 구성될 수도 있다. 예를 들어, 아이가 만화를 시청하기 위하여 디바이스의 좌측 상의 디폴트 (또는 최고 우선순위) 스크린을 이용하고 있고 아빠가 작업을 하기 위하여 디바이스의 우측 상의 보조 스크린을 이용하고 있음을 표시하는 카메라 데이터를 이용한 얼굴 인식 데이터에 기초하여, 무선 통신 디바이스는 (중재기를 통해) 우측 상의 보조 스크린을 새로운 디폴트 (또는 최고 우선순위) 디스플레이인 것으로 재우선순위화할 수도 있다. 또 다른 예로서, 디폴트 스크린이 파손되거나 오작동하고 있음을 표시하는 저장된 정보에 기초하여, 무선 통신 디바이스는 이전의 디폴트가 수리될 때까지, 보조 스크린을 디폴트 스크린인 것으로 재우선순위화할 수도 있다. 방법 (800) 을 수행하면, 무선 통신 디바이스는 맥락 (context) 및/또는 이용에 기초하여 더 많은 적절한 디스플레이들을 제어할 것을 애플리케이션들에 지시할 수도 있다.
블록 (802) 에서, 무선 통신 디바이스는 디바이스의 모든 디스플레이들에 대한 스테이터스 정보를 저장할 수도 있다. 예를 들어, 무선 통신 디바이스는 데이터베이스 또는 시스템 변수들 내에, 동작 요건들 (예컨대, 전력 소비 파라미터들, 렌더링될 수도 있는 데이터의 타입, 최상으로 렌더링될 수도 있는 데이터의 타입 등), 디스플레이 우선순위 또는 랭크 (예컨대, 디폴트, 보조 등), 차원들 (또는 시청가능한 영역), 및 무선 통신 디바이스에 접속되거나, 또는 이와 다르게 무선 통신 디바이스에 의해 제어되는 복수의 디스플레이들의 각각에 관련된 동작 조건들 또는 기능성 표시들 (예컨대, 파손됨, 오작동, 공칭 (nominal) 등) 을 표시하는 표시자들 또는 다른 설명 정보를 저장할 수도 있다. 실시형태에서, 스테이터스 정보는 예컨대, 사용자 선호도 또는 랭크의 상향 순서 (ascending order) 로 순서화됨으로써, 디스플레이 우선순위에 의해 순서화될 수도 있다. 다양한 실시형태들에서, 무선 통신 디바이스는 등록된 애플리케이션들의 각각에 대하여 복수의 디스플레이들의 각각에 대한 스테이터스 정보를 저장할 수도 있다. 예를 들어, 무선 통신 디바이스는 무선 통신 디바이스의 컴퓨터 플랫폼 상에 상주하는 복수의 애플리케이션들의 각각에 관련된 디스플레이들의 각각에 대한 개별적인 랭크된 리스트들을 저장할 수도 있다.
블록 (804) 에서, 무선 통신 디바이스는 현재의 조건들에 대한 정보를 위하여 디바이스의 센서들을 폴링할 수도 있다. 무선 통신 디바이스는 카메라들, 마이크로폰들, 서미스터 (thermistor) 들, 가속도계들, 자이로스코프들, 및 터치-센싱 표면들과 같은 다양한 센서들을 포함할 수도 있다. 무선 통신 디바이스는 디바이스의 디스플레이들의 실행가능성과, 디바이스의 사용자가 어떻게 디바이스와 상호작용하는지를 평가하기 위하여 이용될 수도 있는 환경들 또는 사용 상황들을 표시하는 센서 데이터를 수집할 수도 있다. 예를 들어, 무선 통신 디바이스는 디스플레이들을 우선순위화함에 있어서 유용한 상황 정보를 식별하기 위하여 가속도계 센서 데이터를 평가할 수도 있다. 센서 데이터를 이용하면, 무선 통신 디바이스는 서미스터 센서 데이터에 기초한 주변 온도, 카메라 데이터에 기초한 주변 밝기, 가속도계/자이로스코프 센서 데이터에 기초한 현재의 디바이스 이동 또는 모션, 자이로스코프 센서 데이터에 기초한 디바이스 경사, GPS 데이터에 기초한 디바이스 고도, 터치스크린 입력들에 기초한 사용자 입력들, 및 카메라 데이터 (예컨대, 현재의 사용자의 얼굴의 레코딩된 화상 데이터) 또는 마이크로폰 데이터 (예컨대, 현재의 사용자의 음성의 레코딩된 오디오 데이터) 에 기초한 현재의 사용자의 아이덴티티와 같이, 디스플레이들을 이용하는 것에 관련 있는 다양한 상태들을 평가할 수도 있다.
블록 (806) 에서, 무선 통신 디바이스는 저장된 스테이터스 정보 및/또는 폴링된 센서 데이터에 기초하여 디스플레이들의 실행가능성을 평가할 수도 있다. 예를 들어, 어떤 LCD 스크린에 대한 저장된 스테이터스 정보에 기초하여, 무선 통신 디바이스는 그 스크린이 전력-부족인지 (또는 상당한 양의 배터리 전력을 요구하는지), 높은 온도에서 동작하고 있는지, 어떤 해상도 기능들 (예컨대, 표준 선명도 (standard definition; SD), 고선명도 (high definitioin; HD) 등) 을 가지는지, 터치-감지식 기능성들을 가지는지, 및/또는 현재 적당하게 기능하고 있는지 (예컨대, 파손, 등) 여부를 평가할 수도 있다. 무선 통신 디바이스는 다양한 디스플레이들의 저장된 스테이터스 정보를 하루 중의 시간과 같은 현재의 조건들과 비교할 수도 있다. 또한, 무선 통신 디바이스는 예컨대, 사용자가 디스플레이 상에서 렌더링된 애플리케이션들을 얼마나 양호하게 볼 수도 있는지를 식별하기 위하여, 디스플레이의 발광 출력 기능성들을 표시하는 저장된 정보를 주변 밝기와 비교함으로써, 다양한 디스플레이들의 저장된 스테이터스 정보를 센서 데이터와 비교할 수도 있다. 예를 들어, 무선 통신 디바이스는, 사용자가 보행/주행/착석 중이면서 특정 애플리케이션들을 렌더링할 때에 스크린이 얼마나 유용할 수도 있는지를 식별하기 위하여, 가속도계들로부터의 현재의 모션 데이터를 스크린의 시청가능한 영역과 비교할 수도 있다.
블록 (808) 에서, 무선 통신 디바이스는 폴링된 센서 데이터에 기초하여 디스플레이들과의 사용자 상호작용들을 평가할 수도 있다. 예를 들어, 터치-감지식 스크린 상에서의 검출된 터치 입력들을 평가함으로써, 무선 통신 디바이스는 다양한 스크린들에 관련된 사용자의 액티비티를 추정할 수도 있다. 무선 통신 디바이스는 검출된 사용자 입력들에 기초하여 현재의 가장-이용된 또는 가장 인기있는 디스플레이를 결정할 수도 있다. 무선 통신 디바이스는 또한, 사용자가 더욱 자주 쳐다 보고 있는 특정 스크린들을 식별하기 위하여 카메라 데이터를 이용하여 아이 트래킹 (eye tracking) 및/또는 헤드 트래킹 (head tracking) 을 수행할 수도 있다. 예를 들어, 무선 통신 디바이스는 아이 트래킹에 기초하여 사용자가 복수의 디스플레이들 중의 임의의 것을 쳐다 보고 있는지 여부, 헤드 트래킹에 기초하여 사용자가 복수의 디스플레이들 중의 임의의 것을 쳐다 보고 있는지 여부, 및/또는 사용자가 복수의 디스플레이들 중의 임의의 것을 터치하고 있는지 여부를 표시하는 사용자 상호작용 정보를 결정할 수도 있다. 실시형태에서, 무선 통신 디바이스는 디바이스가 어떻게 그 현재의 이용을 결정하기 위한 순서로 유지되고 있는지를 식별하기 위하여 자이로스코프 센서 데이터를 평가할 수도 있다. 예를 들어, 센서 데이터가 디바이스가 상향으로 유지되고 있음을 표시할 경우, 무선 통신 디바이스는 사용자가 디바이스의 후방 상의 스크린과 반대로 전방-대향 스크린을 쳐다 보고 있을 가능성을 평가할 수도 있다. 다양한 실시형태들에서, 디바이스와의 사용자 상호작용들은 시간의 주기 동안에 해독될 수도 있고, 이에 따라, 무선 통신 디바이스는 그 시간 동안에 디바이스에서 수집되거나 레코딩되고, 저장된 센서 데이터를 사용할 수도 있다.
블록 (810) 에서, 무선 통신 디바이스는 디스플레이들의 평가된 실행가능성 및/또는 디스플레이들과의 평가된 사용자 상호작용과 같은 평가들에 기초하여 디스플레이들의 우선순위를 재계산할 수도 있다. 예를 들어, 시간의 주기 동안의 어떤 디스플레이와의 증가된 사용자 상호작용들의 평가에 기초하여, 무선 통신 디바이스는 어떤 디스플레이의 우선순위를 증가시킬 수도 있다 (예컨대, 어떤 디스플레이가 디폴트 또는 우선순위 디스플레이를 행하도록 함). 디스플레이들에 대한 재계산 (또는 재우선순위화) 동작들은 다양한 가중화 방식들, 규칙 세트들, 밸런싱 인자들, 모델들, 수학식들, 및 각각의 디스플레이에 대한 새로운 우선순위 값들을 결정하기 위한 다른 고려사항들을 이용할 수도 있다. 예를 들어, 불규칙한 모션 센서 데이터에 기초하여, 무선 통신 디바이스는 대형 스크린 상에 렌더링된 애플리케이션들이 사용자가 조깅 중일 때에 보기가 더욱 용이하도록, 대형 스크린을 디폴트 디스플레이인 것으로 재우선순위화할 수도 있다. 또 다른 예로서, 무선 통신 디바이스는 디바이스의 배터리 상에 남아 있는 전하가 주어질 경우에, 디바이스가 지속할 수 있는 것보다 스크린이 더 많은 전력을 요구하는 것을 표시하는 스테이터스 정보에 기초하여, 복수의 디스플레이들 중에서 최저 우선순위를 가지도록 디폴트 스크린을 재우선순위화할 수도 있다.
실시형태에서, 복수의 디스플레이들에서의 디스플레이의 하나 이상의 우선순위는 디스플레이 우선순위의 변경에 응답하여 업데이트될 수도 있거나, 또는 이와 다르게 변경될 수도 있다. 예를 들어, 제 1 디스플레이를 디폴트 (또는 가장 중요한) 디스플레이로서 재우선순위화하는 것에 응답하여, 무선 통신 디바이스는 디폴트 디스플레이였던 복수의 제 2 디스플레이를 반드시 감소 (또는 재우선순위화) 시킬 수도 있다. 블록 (812) 에서, 무선 통신 디바이스는 예컨대, 데이터베이스 내의 디스플레이들과 연관된 데이터 레코드들, 시스템 변수들, 또는 중재기에 의해 액세스가능할 수도 있는 다른 데이터를 업데이트함으로써, 디스플레이들의 재계산된 우선순위들을 저장할 수도 있다. 선택적인 블록 (814) 에서, 무선 통신 디바이스는 미리 정의된 수의 초, 분, 등과 같은 주기를 대기할 수도 있고, 그 다음으로, 블록 (804) 에서 시작하는 동작들을 반복할 수도 있다.
실시형태에서, 방법 (800) 은 도 7a 내지 도 7b 를 참조하여 위에서 설명된 블록 (704) 에서의 동작들 동안에 무선 통신 디바이스에 의해 수행될 수도 있다. 예를 들어, 무선 통신 디바이스는 위에서 설명된 평가들뿐만 아니라, 특정 애플리케이션과 연관된 등록 정보 (예컨대, 애플리케이션에 대하여 렌더링되어야 할 데이터의 타입 등) 에 기초하여 특정 등록된 애플리케이션에 대한 디바이스의 디스플레이들을 재우선순위화하도록 구성될 수도 있다. 다시 말해서, 각각의 등록된 애플리케이션은 재우선순위화될 수도 있는 무선 통신 디바이스의 모든 디스플레이들에 대한 디스플레이 우선순위 리스트와 연관될 수도 있다.
도 9a 내지 도 12 는 무선 통신 디바이스가 디스플레이를 제어하는 복수의 애플리케이션들과 일치하는 사용자 입력들을 명확하게 하기 위한 실시형태들을 예시한다. 다양한 실시형태들의 장점들 없이, 계승자 애플리케이션 (successor application) 들은, 무선 통신 디바이스가 계승자 애플리케이션들이 디스플레이의 포어그라운드에 대한 제어를 획득하는 것을 허용할 때에 선행자 애플리케이션 (predecessor application) 동작들을 차단할 수도 있다. 특히, 무선 통신 디바이스가 제 1 애플리케이션과 연관된 사용자 입력들 (예컨대, 타이핑된 텍스트, 스피치 커맨드들, 시각적 제스처들 등) 을 수신하고 있고 제 2 애플리케이션이 디스플레이의 제어를 획득하기 위하여 "팝업 (pop up)" 할 때, 사용자 입력들은 다양한 실시형태들이 액티비티가 아닐 경우에 사용자의 의도에 대항하여 제 2 애플리케이션에 적용될 수 있다. 예를 들어, 이메일 클라이언트 (email client) 에서 텍스트 입력을 수신하는 동안, 무선 통신 디바이스는 텍스트 입력 초점 (focus) 을 비디오 호출 애플리케이션으로 이동시키는 예상되지 않은 텍스트를 수신하는 것에 응답하여, 비디오 호출 애플리케이션이 포어그라운드에 도달하는 것을 허용할 수도 있다. 또 다른 예로서, 무선 통신 디바이스는 비디오 애플리케이션을 착수시킬 수도 있고, 그 다음으로, 비디오 애플리케이션이 로딩하는 동안에 포어그라운드의 제어를 이메일 클라이언트에 부여할 수도 있지만; 그러나, 무선 통신 디바이스가 이메일 클라이언트에 대한 텍스트 입력의 단어를 수신하는 도중에, 비디오 애플리케이션은 예기치 않게 팝업할 수도 있다. 또 다른 예로서, 비디오 호출 애플리케이션을 위한 음성-투-텍스트 (또는 음성 커맨드) 입력은 스케줄링된 이벤트의 발생에 기초하여 디스플레이 상에 팝업하는 달력 애플리케이션에 무의식적으로 적용될 수도 있다. 사용자들은 애플리케이션들이 언제 팝업할 수도 있는지와, 언제 디스플레이의 제어를 획득할 수도 있는지를 알지 못할 수도 있으므로, (예컨대, 0.5 초 (half-second) 이내 등) 디스플레이의 제어를 획득하는 새로운 애플리케이션에 대해 시간에 있어서 매우 근접하게 수신된 사용자 입력들이 선행자 애플리케이션에 적용되어야 하는 것으로 가정하기 위한 양호한 이유가 있을 수도 있다.
도 9a 는 디바이스가 제 1 애플리케이션에 대해 의도된 사용자 입력을 수신할 때에 포어그라운드에 도달하는 제 2 애플리케이션에 대한 제 2 사용자 인터페이스 (906) 로 제 1 애플리케이션에 대한 제 1 사용자 인터페이스 (902) 를 렌더링하는 무선 통신 디바이스의 디스플레이 (904) 를 예시한다. 위에서 설명된 바와 같이, 제 2 애플리케이션은 무선 통신 디바이스가 착신 이벤트 또는 시간조절된-이벤트 (timed-event) 를 수신하는 것에 응답하여, 또는 프로세스가 방금 완료되고 있을 때 (백그라운드에서 로딩되는 애플리케이션이 최종적으로 착수함) 포어그라운드에 도달할 수도 있다 (즉, 디스플레이의 제어를 획득함).
예시적인 예시로서, 무선 통신 디바이스의 사용자는 텍스트 입력 "Hello world" 를 제 1 애플리케이션의 제 1 사용자 인터페이스 (902) 내로 기입하도록 의도할 수도 있다. 제 1 사용자 인터페이스 (902) 는 터치패드 또는 소프트 키보드를 통해 무선 통신 디바이스 내로 타이핑된 입력과 같은 제 1 입력 텍스트 "Hello wo" 와 연관되는 것으로 도시되어 있다. 제 1 애플리케이션은 제 1 입력 텍스트가 수신 (또는 타이핑 입력) 되었을 때에 무선 통신 디바이스의 포어그라운드를 제어하고 있었으므로, 제 1 사용자 인터페이스 (902) 는 제 1 입력 텍스트와 연관될 수도 있다. 제 2 사용자 인터페이스 (906) 는 제 2 입력 텍스트 "rld" 와 연관되는 것으로 도시되어 있고, 또한, (커서 엘리먼트 (908) 에 의해 도 9a 에서 도시된) 무선 통신 디바이스에 대한 입력의 초점을 가지는 것으로 도시되어 있다. 제 2 애플리케이션은 제 2 입력 텍스트가 수신 (또는 타이핑 입력) 되었을 때에 무선 통신 디바이스의 포어그라운드를 제어하고 있었으므로, 제 2 사용자 인터페이스 (906) 는 제 2 입력 텍스트와 연관될 수도 있다. 다시 말해서, 무선 통신 디바이스가 제 1 입력 텍스트 "Hello wo" 및 제 2 입력 텍스트 "rld" 를 수신하는 것 사이에서, 제 2 애플리케이션은 무선 통신 디바이스의 포어그라운드와, 제 1 애플리케이션으로부터 변경된 초점에 도달하였다.
도 9b 는 무선 통신 디바이스가 타이밍 정보에 기초하여 수신된 사용자 입력들을 제 1 또는 제 2 애플리케이션과 연관시키기 위한 실시형태의 방법 (950) 을 예시한다. 예를 들어, 무선 통신 디바이스는 중재기를 통해, 다양한 시간 입력들이 수신되었고 애플리케이션 초점이 시프트되었음을 평가함으로써, 수신된 사용자 입력들에 대한 의도된 타겟 애플리케이션을 추론하기 위한 동작들을 수행할 수도 있다. 다양한 실시형태들에서, 방법 (950) 은 도 5 내지 도 6 을 참조하여 위에서 설명된 방법들의 일부로서 무선 통신 디바이스에 의해 수행될 수도 있다. 예를 들어, 무선 통신 디바이스는 중재기를 통해, 도 5 의 블록 (160) 또는 도 6 의 블록 (180) 에서의 동작들을 수행한 후에 방법 (950) 을 수행할 수도 있다.
블록 (952) 에서, 무선 통신 디바이스는 제 1 애플리케이션으로부터 제 2 애플리케이션으로의 포어그라운드 (또는 디스플레이) 의 제어에 있어서의 변경을 검출할 수도 있다. 예를 들어, 제 2 애플리케이션은 중재기가 도 5 의 블록 (160) 또는 도 6 의 블록 (180) 에서의 동작들로 플래그를 전송하였던 비디오 호출 애플리케이션일 수도 있다. 무선 통신 디바이스는 또한, 제 2 애플리케이션이 포어그라운드의 제어를 획득하였던 하루 중의 0.5 초와 같은, 제어에 있어서의 변경과 연관된 시간을 식별하고 저장할 수도 있다. 다양한 실시형태들에서, 무선 통신 디바이스는 오퍼레이팅 시스템 테이블, 시스템 변수, 또는 현재의 제어 애플리케이션뿐만 아니라, 제어 애플리케이션에 의해 제어가 획득되었던 시간도 표시하는 다른 저장된 정보를 평가함으로써, 변경을 검출할 수도 있다. 실시형태에서, 제어에 있어서의 변경은 제 2 애플리케이션이 포어그라운드의 제어를 획득하는 것에 응답하여 생성된 인터럽트 또는 다른 신호에 기초하여 검출될 수도 있다. 실시형태에서, 제어에 있어서의 변경은 초점 표시자에 있어서의 변경 (예컨대, 초점은 사용자 입력들을 삽입하기 위한 목적으로 하나의 사용자 인터페이스로부터 또 다른 것으로 이동될 수도 있음) 을 평가함으로써 검출될 수도 있다.
블록 (953) 에서, 무선 통신 디바이스는 제어에 있어서의 변경 전에 발생하는 제 1 입력과, 제어에 있어서의 변경 후에 발생하는 제 2 입력을 식별할 수도 있다. 무선 통신 디바이스는 어떤 시간 주기 동안에 디바이스에 의해 수신된 사용자 입력 값들 또는 작동 (action) 들을 저장하는 메모리에서의 일시적인 저장 로케이션과 같은 입력 버퍼를 평가할 수도 있고, 버퍼링된 입력들과 연관된 수신 정보의 시간에 기초하여 제 1 및 제 2 입력들을 식별할 수도 있다. 예를 들어, 수신된 사용자 입력들은 수신의 시간들, 및/또는 사용자 입력들의 수신 시에 포어그라운드를 제어하는 (즉, 초점을 가지는) 애플리케이션과 연관되어 저장될 수도 있다. 대안적으로, 무선 통신은 상이한 애플리케이션들에 대하여 다양한 버퍼들, 어레이들, 또는 다른 데이터 구조들을 이용하도록 구성될 수도 있다. 예를 들어, 무선 통신 디바이스는 제 1 입력을, 포어그라운드를 제어하기 위한 이전의 애플리케이션과 연관된 제 1 버퍼 내에 저장된 데이터로서 식별할 수도 있고, 제 2 입력을, 포어그라운드를 제어하기 위한 현재의 애플리케이션과 연관된 제 2 버퍼 내에 저장된 데이터로서 식별할 수도 있다. 실시형태에서, 제 1 입력은 제어에 있어서의 변경 이전에 수신되었던 사용자 입력의 세그먼트 (예컨대, 가장 최근에 수신된 세그먼트) 뿐일 수도 있다. 예를 들어, 제 1 입력은 제어에 있어서의 변경 이전이지만, 구두법 마크 (punctuation mark), 공간 기호, 리턴 캐리지 (return carriage), 또는 텍스트의 스트림 내의 다른 논리적 분할부 이후에 수신된 텍스트 입력으로서 식별될 수도 있다. 실시형태에서, 무선 통신 디바이스는 제 1 및 제 2 입력들을 수신하는 시간을 식별하기 위하여, 마우스 클릭, 터치, 또는 키보드 이벤트들과 같은 검출된 입력 이벤트들을 사용할 수도 있다. 다양한 실시형태들에서, 사용자 입력들은 터치 입력들 (예컨대, 누름 (press) 들, 스와이프 (swipe) 들, 탭 (tap) 들 등), 텍스트 입력들 (예컨대, 타이핑된 단어들 등), 발성된 (spoken) 또는 구어 (verbal) 입력들 (예컨대, 음성 커맨드들 등), 및/또는 시각적 입력들 (예컨대, 제스처들 등) 일 수도 있다.
제 2 애플리케이션이 사용자 기입된 입력들 (예컨대, 텍스트, 음성 등) 후의 어떤 시간에 포어그라운드의 제어를 획득할 때, 제 2 애플리케이션은 진행 중인 사용자 입력을 중단하고 있는 것으로 고려되지 않을 수도 있다. 이에 따라, 결정 블록 (954) 에서, 무선 통신 디바이스는 제 1 입력이 제어에 있어서 변경의 제 1 시간 문턱 내에 수신되었는지 여부를 결정할 수도 있다. 다시 말해서, 제 1 입력을 수신하는 것과, 제어에 있어서의 검출된 변경 사이의 시간이 제 1 시간 문턱을 초과할 때, 제 2 입력은 제 1 입력의 계속일 가능성이 아닐 수도 있다 (즉, 사용자가 제 2 입력이 제 2 애플리케이션과 연관되도록 의도하였던 것으로 추론될 수도 있음). 제 1 시간 문턱은 0.5 초(들)와 같은 미리 정의된 값일 수도 있고, 및/또는 사용자 선호도들에 기초할 수도 있다. 실시형태에서, 무선 통신 디바이스는 미리 정의된 제 1 시간 문턱 값을, 제어에 있어서의 변경의 시간을 갖는 식별된 제 1 입력과 연관된 수신의 시간에 있어서의 차이를 나타내는 계산된 값을 비교할 수도 있다. 제 1 입력이 제어에 있어서의 변경의 제 1 시간 문턱의 외부에서 수신되었을 경우 (즉, 결정 블록 (954) = "아니오"), 블록 (960) 에서, 무선 통신 디바이스는 제 2 입력을 제 2 애플리케이션과 연관시킬 수도 있다. 예를 들어, 제 1 입력이 제 2 애플리케이션이 포어그라운드의 제어를 획득하기 이전의 수 초 (예컨대, 30 초 등) 에 수신되었을 때, 무선 통신 디바이스는 제 2 입력이 제 2 애플리케이션에 대해 의도된 것으로 해독할 수도 있다.
제 1 입력이 제어에 있어서의 변경의 제 1 시간 문턱 내에 수신되었을 경우 (즉, 결정 블록 (954) = "예"), 결정 블록 (956) 에서, 무선 통신 디바이스는 제 2 입력이 제어에 있어서의 변경의 제 2 시간 문턱 내에서 발생하였는지 여부를 결정할 수도 있다. 다시 말해서, 제어의 검출된 변경과, 제 2 입력을 수신하는 것과의 사이의 시간이 제 2 시간 문턱을 초과할 때, 제 2 입력은 제 1 입력의 계속이 아닌 것으로 추정될 수도 있다 (즉, 사용자가 제 2 입력이 제 2 애플리케이션과 연관되도록 의도하였던 것으로 추론될 수도 있음). 무선 통신 디바이스가 미리 정의된 제 2 문턱 값과 비교하기 위한 시간 윈도우 (time window) 를 계산하기 위하여 제 1 을 수신하는 시간 대신에 제 2 입력을 수신하는 시간을 이용할 수도 있다는 것을 제외하고는, 결정 블록 (956) 에서의 동작들이 결정 블록 (954) 을 참조하여 위에서 설명된 것들과 유사할 수도 있다. 다양한 실시형태들에서, 제 1 시간 문턱 및 제 2 시간 문턱은 동일한 값일 수도 있다.
제 2 입력이 제 2 시간 문턱의 외부에서 수신되었을 경우 (즉, 결정 블록 (956) = "아니오"), 블록 (960) 에서, 무선 통신 디바이스는 제 2 입력을 제 2 애플리케이션과 연관시킬 수도 있다. 그러나, 제 2 입력이 제 2 시간 문턱 내에 수신되었을 경우 (즉, 결정 블록 (956) = "예"), 블록 (958) 에서, 무선 통신 디바이스는 제 2 입력을 제 1 애플리케이션과 연관시킬 수도 있다. 다시 말해서, 무선 통신은 제 1 애플리케이션에 대한 사용자 입력이 포어그라운드의 제어를 취하는 제 2 애플리케이션에 의해 차단된 것으로 결정할 수도 있으므로, 제 2 입력은 제 1 애플리케이션과 연관될 수도 있다. 선택적인 블록 (962) 에서, 무선 통신 디바이스는 포어그라운드의 제어를 제 1 애플리케이션으로 반환할 수도 있다. 예를 들어, 중재기를 통해, 무선 통신 디바이스는 사용자 입력이 차단되었다는 결정에 기초하여, 포어그라운드를 제어하기 위한 우선순위를 가지는 것을 표시하는 플래그를 제 1 애플리케이션으로 전송할 수도 있다.
다양한 실시형태들에서, 결정 블록들 (954 내지 956) 에서의 동작들을 수행하는 대신에, 무선 통신 디바이스는 미리 정의된 문턱 값을 갖는 제 1 및 제 2 입력들을 수신하는 것 사이의 시간을 간단히 비교하도록 구성될 수도 있다. 예를 들어, 일단 무선 통신 디바이스가 제 1 입력이 제어에 있어서의 변경 전에 수신되고 제 2 입력이 제어에 있어서의 변경 후에 수신된 것으로 결정하면, 무선 통신 디바이스는 제 2 입력이 제 2 애플리케이션과 연관될 수도 있는지 여부를 결정하기 위하여, 2 개의 수신들 사이의 측정된 시간을 비교하기만 할 필요가 있을 수도 있다.
다양한 실시형태들에서, 무선 통신 디바이스는 수신된 사용자 입력들 (예컨대, 음성, 텍스트, 제스처들 등) 이 제 1 또는 제 2 애플리케이션에 대해 의도되는지 여부를 결정하기 위한 다양한 인자들, 규칙 세트들, 밸런싱 테스트들, 가중화 방식들, 및 다른 로직을 사용할 수도 있다. 예를 들어, 위에서 설명된 바와 같이 시간 측정들을 평가하는 것에 추가하여, 무선 통신 디바이스는 또한, 사용자가 수신된 사용자 입력들 (예컨대, 타이핑된 텍스트의 스트림) 에 대응하는 디바이스의 포어그라운드의 초점을 변경하도록 의도하였는지 여부를 결정하기 위하여 조작 불능 (no-op) 터치 입력들 및 검출된 터치 입력들의 로케이션을 평가할 수도 있다. 예시로서, 무선 통신 디바이스는 제 2 입력에 관련된 초점 변경이 의도적이었는지 여부를 결정하기 위하여, 터치 입력이 제 2 애플리케이션 텍스트 박스에 일치하는 것으로 검출되었는지 여부를 식별할 수도 있다.
제 1 및 제 2 애플리케이션에 대해 의도된 사용자 입력들을 명확하게 하기 위한 또 다른 기법은 추가적인 사용자 입력 (또는 선택 입력) 을 요청하거나 초대하는 프롬프트 다이얼로그 박스 (prompt dialog box) 를 생성하는 것을 포함할 수도 있다. 도 10a 는 제 1 애플리케이션에 대한 제 1 사용자 인터페이스 (902), 포어그라운드에 도달하는 제 2 애플리케이션에 대한 제 2 사용자 인터페이스 (1003), 및 입력을 명확하게 하기 위한 선택 입력을 초대하는 프롬프트 다이얼로그 박스 (1002) 를 렌더링하는 무선 통신 디바이스의 실시형태의 디스플레이 (904) 를 예시한다.
예로서, 무선 통신 디바이스의 사용자는 텍스트 입력 "Hello world" 를 제 1 애플리케이션의 제 1 사용자 인터페이스 (902) 내로 기입하도록 의도할 수도 있다. 제 1 사용자 인터페이스 (902) 는 터치패드 또는 소프트 키보드를 통해 무선 통신 디바이스 내로 타이핑된 입력과 같은 제 1 입력 텍스트 "Hello wo" 와 연관되는 것으로 도시되어 있다. 제 1 애플리케이션은 제 1 입력 텍스트가 수신 (또는 타이핑 입력) 되었을 때에 무선 통신 디바이스의 포어그라운드를 제어하고 있었으므로, 제 1 사용자 인터페이스 (902) 는 제 1 입력 텍스트와 연관될 수도 있다.
제 2 사용자 인터페이스 (1003) 는 임의의 연관된 입력을 가지지 않는 것으로 도 10a 에서 도시되어 있다. 그러나, 프롬프트 다이얼로그 박스 (1002) 는 제 2 입력 텍스트 "rld" 뿐만 아니라, 제 2 입력 텍스트와 연관되어야 하는 애플리케이션을 택할 것을 사용자에게 촉구하는 화살표 UI 엘리먼트들 (1004, 1005) 도 포함할 수도 있다. 특히, 제 1 화살표 UI 엘리먼트 (1004) 는 선택될 때에 제 2 입력 텍스트를 제 1 애플리케이션과 연관시키도록 구성될 수도 있고, 제 2 화살표 UI 엘리먼트 (1005) 는 선택될 때에 제 2 입력 텍스트를 제 2 애플리케이션과 연관시키도록 구성될 수도 있다.
도 10b 는 무선 통신 디바이스가 타이밍 정보 및 사용자로부터의 선택 입력들에 기초하여 수신된 사용자 입력을 제 1 또는 제 2 애플리케이션과 연관시키기 위한 실시형태의 방법 (1050) 을 예시한다. 방법 (1050) 이 사용자가 응답할 수도 있는 프롬프트들을 이용함으로써 사용자 입력들을 명확하기 위한 동작들을 포함할 수도 있다는 것을 제외하고는, 방법 (1050) 은 위에서 설명된 방법 (950) 과 유사하다. 예를 들어, 무선 통신 디바이스는 중재기를 통해, 다양한 타이밍 측정들을 평가함으로써 사용자 입력들에 대한 의도된 타겟 애플리케이션을 추론하기 위한 동작들을 수행할 수도 있고, 사용자들로부터의 선택 입력들을 초대하거나 요청하는 프롬프트들 (예컨대, 팝업 다이얼로그 박스들, 톤들, 시각자료들 등) 을 추가로 렌더링할 수도 있다. 다양한 실시형태들에서, 방법 (1050) 은 도 5 내지 도 6 을 참조하여 위에서 설명된 방법들의 일부로서 무선 통신 디바이스에 의해 수행될 수도 있다. 예를 들어, 무선 통신 디바이스는 중재기를 통해, 도 5 의 블록 (160) 또는 도 6 의 블록 (180) 에서의 동작들을 수행한 후에 방법 (1050) 을 수행할 수도 있다.
블록 (952) 에서, 무선 통신 디바이스는 제 1 애플리케이션으로부터 제 2 애플리케이션으로의 포어그라운드의 제어에 있어서의 변경을 검출할 수도 있다. 블록 (953) 에서, 무선 통신 디바이스는 제어에 있어서의 변경 전에 발생하는 제 1 입력과, 제어에 있어서의 변경 후에 발생하는 제 2 입력을 식별할 수도 있다. 결정 블록 (954) 에서, 무선 통신 디바이스는 제 1 입력이 제어에 있어서 변경의 제 1 시간 문턱 내에 수신되었는지 여부를 결정할 수도 있다. 제 1 입력이 제어에 있어서의 변경의 제 1 시간 문턱의 외부에서 수신되었을 경우 (즉, 결정 블록 (954) = "아니오"), 블록 (960) 에서, 무선 통신 디바이스는 제 2 입력을 제 2 애플리케이션과 연관시킬 수도 있다. 제 1 입력이 제어에 있어서의 변경의 제 1 시간 문턱 내에 수신되었을 경우 (즉, 결정 블록 (954) = "예"), 결정 블록 (956) 에서, 무선 통신 디바이스는 제 2 입력이 제어에 있어서의 변경의 제 2 시간 문턱 내에서 발생하였는지 여부를 결정할 수도 있다. 제 2 입력이 제 2 시간 문턱의 외부에서 수신되었을 경우 (즉, 결정 블록 (956) = "아니오"), 블록 (960) 에서, 무선 통신 디바이스는 제 2 입력을 제 2 애플리케이션과 연관시킬 수도 있다.
그러나, 제 2 입력이 제 2 시간 문턱 내에 수신되었을 경우 (즉, 결정 블록 (956) = "예"), 블록 (1052) 에서, 무선 통신 디바이스는 제 2 입력을 연관시키기 위한 후속 사용자 선택 입력들을 요청하는 프롬프트 정보를 렌더링할 수도 있다. 예를 들어, 무선 통신 디바이스는 추가의 사용자 입력들이 제 2 입력에 대한 의도된 애플리케이션을 결정하기 위하여 필요하다는 것을 표시하는 팝업 다이얼로그 박스, 사운드 (예컨대, 음악 샘플, 톤, 처프 (chirp), 자동화된 가청 메시지 등), 및/또는 시각자료 (들) (예컨대, 디스플레이된 텍스트 메시지, 렌더링된 기호 등) 를 렌더링할 수도 있다. 렌더링된 프롬프트 정보는 도 9b 를 참조하여 위에서 설명된 바와 같은, 순수하게 시간-기반 결정에 대한 세분화로 고려될 수도 있다. 다시 말해서, 프롬프트 정보는, 무선 통신 디바이스가 제 2 입력은 제 2 애플리케이션이 포어그라운드의 제어를 획득한 후에 제 2 시간 윈도우 내에 수신되었으며 제 1 입력은 제어의 변경이 발생하기 전에 제 1 시간 윈도우 내에 수신된 것으로 결정할 때에 생성되기만 할 수도 있다. 이러한 방법으로, 프롬프트 정보는, 사용자의 의도가 특히 모호한 상황들에서 렌더링되기만 할 수도 있다 (즉, 제 2 입력의 수신은 제 1 입력의 제어 또는 수신에 있어서의 변경과 시간에 있어서 매우 근접함). 실시형태에서, 무선 통신 디바이스가 입력들을 명확하게 하기 위하여 프롬프트 정보를 렌더링하도록 구성될 때, 제 1 및 제 2 시간 문턱들은 사용자 선호도에 기초하여 더 큰 (또는 더 작은) 시간 윈도우들을 나타낼 수도 있다.
실시형태에서, 무선 통신 디바이스는, 제어에 있어서의 변경을 표시할 수도 있으며 그/그녀가 디바이스를 쳐다 보지 않을 때에도 사용자에 의해 청취될 수도 있는 가청 프롬프트 정보를 렌더링할 수도 있다. 예를 들어, 사용자가 스피치-투-텍스트 또는 음성 커맨드 모드를 통해, 무선 통신 디바이스 상에서 실행되는 제 1 애플리케이션 (예컨대, 노트패드 애플리케이션) 내로 입력을 기입하고 있을 때, 사용자는 무선 통신 디바이스의 디스플레이를 쳐다 보고 있지 않을 수도 있고, 이에 따라, 제 2 애플리케이션 (예컨대, 시간조절된 달력 팝업) 이 언제 포어그라운드의 제어를 획득하는지를 볼 수 없을 수도 있다. 따라서, 사용자에게 통지하기 위하여, 무선 통신 디바이스는 제어의 변경 (또는 초점의 변경) 을 표시하는 특수한 톤, 처프, 음악, 사운드, 또는 메시지 (예컨대, "제 2 애플리케이션으로의 전환") 를 방출할 수도 있다. 실시형태에서, 음성 입력들 (예컨대, 스피치-투-텍스트 입력, 음성 커맨드 모드 동안의 음성 데이터, 전화 호출에 대한 음성 데이터 등) 을 수신할 때, 무선 통신 디바이스는 포어그라운드를 현재 제어하는 애플리케이션을 표시하는 백그라운드 사운드들을 주기적으로 렌더링할 수도 있다. 예를 들어, 무선 통신 디바이스는 제 1 애플리케이션이 포어그라운드에 있는 동안에 제 1 고유 백그라운드 잡음 또는 톤을 방출할 수도 있고, 제 2 애플리케이션이 포어그라운드에 있는 동안에 제 2 고유 백그라운드 잡음 또는 톤을 방출할 수도 있다.
결정 블록 (1054) 에서, 무선 통신 디바이스는 제 2 입력이 제 1 앱과 연관되는 것을 표시하는 선택 입력 (또는 사용자 선택 입력) 이 수신되는지 여부를 결정할 수도 있다. 예를 들어, 무선 통신 디바이스는, 제 2 입력 (예컨대, 텍스트 "rld") 을 제 1 입력과 연관시키는 것에 대응하는, 팝업 다이얼로그 박스 상의 화살표 UI 엘리먼트에 대응하는 터치 입력 또는 다른 버튼 누름을 검출하는지 여부를 결정할 수도 있다. 또 다른 예로서, 무선 통신 디바이스는, 제 2 입력이 제 1 애플리케이션과 연관되는 것을 표시하는 음성 커맨드 (예컨대, "다시 전환", "제 1 애플리케이션을 계속함!", "제 1 로 복귀" 등) 를 검출하는지 여부를 결정할 수도 있다. 또 다른 예로서, 무선 통신 디바이스는 제 2 입력이 제 1 애플리케이션과 연관되는 것을 표시하는 미리 정의된 시각적 제스처 커맨드 (예컨대, 사용자가 자신의 손을 어떤 측으로 스와이핑하는 것을 나타내는 카메라에 의해 캡처된 화상, 사용자가 어떤 손 신호를 행하는 것을 나타내는 화상, 사용자가 찌푸리는 것/웃는 것을 나타내는 화상 등) 를 검출하는지 여부를 결정할 수도 있다. 다양한 실시형태들에서, 무선 통신 디바이스는 이미지 프로세싱, 얼굴 인식, 자연 언어 프로세싱, 및/또는 다른 스피치 분석을 이용하여 수신된 선택 입력들을 프로세싱하도록 구성될 수도 있다. 무선 통신 디바이스는 선택 입력이 제 2 입력이 제 2 (또는 제 1) 애플리케이션과 연관되는 것을 표시하는지 여부를 결정하기 위하여, 수신된 선택 입력들 (예컨대, 발성된 단어들, 온-스크린 제스처들 등) 을 저장된 라이브러리들 또는 알려진 패턴들, 단어들, 이미지들, 및 기호들과 비교하도록 추가로 구성될 수도 있다.
실시형태에서, 무선 통신 디바이스는 제어에 있어서의 변경들을 디스에이블하는 특수한 음성 커맨드들 또는 온-스크린 제스처들과 같은 어떤 선택 입력들을 수신하도록 구성될 수도 있다. 다시 말해서, 무선 통신 디바이스는, 제 1 애플리케이션이 무선 통신 디바이스 (및 중재기) 에게 미리 무슨 일이 있어도 현재의 초점 및 연관된 입력들이 차단되지 않아야 함을 통지하는 포어그라운드에 있는 동안에는, 음성 커맨드, 발성된 어구, 또는 신체적 제스처 (예컨대, 손 신호, 스와이프 등) 를 수신하거나 레코딩할 수도 있다. 예를 들어, 포어그라운드에서의 제 1 애플리케이션 비디오 호출의 실행 동안, 무선 통신은 비디오 호출이 완료되었을 때까지 초점이 변경되지 않아야 함을 표시하는 음성 커맨드 (예컨대, "내가 행할 때까지 호출을 계속해!") 레코딩할 수도 있다.
제 2 입력이 제 1 애플리케이션과 연관되는 것을 표시하는 선택 입력이 수신되지 않을 경우 (즉, 결정 블록 (1054) = "아니오"), 블록 (960) 에서, 무선 통신 디바이스는 제 2 입력을 제 2 애플리케이션과 연관시킬 수도 있다. 그러나, 제 2 입력이 제 1 애플리케이션과 연관되는 것을 표시하는 선택 입력이 수신될 경우 (즉, 결정 블록 (1054) = "예"), 블록 (958) 에서, 무선 통신 디바이스는 제 2 입력을 제 1 애플리케이션과 연관시킬 수도 있다.
도 11a 는 제 1 애플리케이션에 대한 제 1 사용자 인터페이스 (1102), 포어그라운드에 도달하는 제 2 애플리케이션에 대한 제 2 사용자 인터페이스 (1106), 및 초점이 제 2 사용자 인터페이스 (1106) 상에 있는 것으로 도시하는 커서 엘리먼트 (908) 를 렌더링하는 무선 통신 디바이스의 디스플레이 (904) 를 예시한다. 도 9a 에서 위에 예시된 예와 달리, 2 개의 인터페이스들 (1102, 1106) 에서의 텍스트 입력은 단어 또는 어구의 중간에서 분리되지 않는다. 그 대신에, 텍스트의 의미 또는 내용에 기초하여, 제 1 입력 텍스트 "Hold on…" 는 사용자가 제 1 사용자 인터페이스 (1102) (예컨대, 제 1 비디오 호출 애플리케이션) 와 상호작용하는 것을 일시적으로 저장하도록 의도하는 것을 표시할 수도 있고, 제 2 입력 텍스트 "Are you there?" 는 사용자가 제 2 사용자 인터페이스 (1106) (예컨대, 제 2 비디오 호출 애플리케이션) 과 상호작용하는 것을 시작하도록 의도하는 것을 표시할 수도 있다. 그러나, 제 1 입력 텍스트 및 제 2 입력 텍스트를 수신하는 것 사이의 시간이 미리 정의된 문턱보다 더 짧을 경우 (예컨대, 사용자가 친구들에게 정신없이 텍스팅할 때의 윈도우들 사이에서 신속하게 토글 (toggle) 하거나 전환함 등), 무선 통신 디바이스는 제 2 입력 텍스트를 제 2 사용자 인터페이스 (1106) 와 적당하게 연관시킬 수 없을 수도 있다. 이하에서 설명된 실시형태의 방법 (1150) 은 포어그라운드 제어에 있어서의 변경이 발생할 때에 수신된 입력들을 적당하게 연관시키기 위하여 무선 통신 디바이스가 수행할 수도 있는 추가적인 평가들을 예시한다.
도 11b 는 무선 통신 디바이스가 수신된 사용자 입력의 내용의 평가들에 기초하여 수신된 사용자 입력들을 제 1 또는 제 2 애플리케이션과 연관시키기 위한 실시형태의 방법 (1150) 을 예시한다. 방법 (1150) 이 초점 전환 또는 포어그라운드의 제어에 있어서의 변경에 관련하여 수신된 사용자 입력들의 의미 및/또는 맥락을 평가함으로써 사용자 입력들을 명확하기 위한 동작들을 포함할 수도 있다는 것을 제외하고는, 방법 (1150) 은 위에서 설명된 방법들 (950 및 1050) 과 유사하다. 예를 들어, 텍스트 사용자 입력들이 그들의 수신 시간에만 기초하여 제 1 또는 제 2 애플리케이션과 명확하게 연관될 수 없을 때 (즉, 텍스트 사용자 입력들이 무선 통신 디바이스 내로 타이핑되었을 때), 무선 통신 디바이스는 텍스트 사용자 입력들이 이들을 다양한 애플리케이션들에 연관시키기 위한 맥락 단서들을 포함하는지 여부를 결정하기 위하여 텍스트 사용자 입력들의 의미를 평가할 수도 있다. 또 다른 예로서, 무선 통신 디바이스는 사용자 의도된 입력들이 제 2 애플리케이션과 연관되어야 할 것인지 여부를 결정하기 위하여, 제 2 애플리케이션의 착수의 시간을 그것이 실제적으로 팝업하는 (즉, 포어그라운드의 제어 또는 초점을 획득함) 시간과 비교할 수도 있다. 다양한 실시형태들에서, 방법 (1150) 은 도 5 내지 도 6 을 참조하여 위에서 설명된 방법들의 일부로서 무선 통신 디바이스에 의해 수행될 수도 있다. 예를 들어, 무선 통신 디바이스는 중재기를 통해, 도 5 의 블록 (160) 또는 도 6 의 블록 (180) 에서의 동작들을 수행한 후에 방법 (1150) 을 수행할 수도 있다.
블록 (952) 에서, 무선 통신 디바이스는 제 1 애플리케이션으로부터 제 2 애플리케이션으로의 포어그라운드의 제어에 있어서의 변경을 검출할 수도 있다. 블록 (953) 에서, 무선 통신 디바이스는 제어에 있어서의 변경 전에 발생하는 제 1 입력과, 제어에 있어서의 변경 후에 발생하는 제 2 입력을 식별할 수도 있다. 결정 블록 (954) 에서, 무선 통신 디바이스는 제 1 입력이 제어에 있어서 변경의 제 1 시간 문턱 내에 수신되었는지 여부를 결정할 수도 있다. 제 1 입력이 제어에 있어서의 변경의 제 1 시간 문턱의 외부에서 수신되었을 경우 (즉, 결정 블록 (954) = "아니오"), 블록 (960) 에서, 무선 통신 디바이스는 제 2 입력을 제 2 애플리케이션과 연관시킬 수도 있다. 제 1 입력이 제어에 있어서의 변경의 제 1 시간 문턱 내에 수신되었을 경우 (즉, 결정 블록 (954) = "예"), 결정 블록 (956) 에서, 무선 통신 디바이스는 제 2 입력이 제어에 있어서의 변경의 제 2 시간 문턱 내에서 발생하였는지 여부를 결정할 수도 있다. 제 2 입력이 제 2 시간 문턱의 외부에서 수신되었을 경우 (즉, 결정 블록 (956) = "아니오"), 블록 (960) 에서, 무선 통신 디바이스는 제 2 입력을 제 2 애플리케이션과 연관시킬 수도 있다.
그러나, 제 2 입력이 제 2 시간 문턱 내에 수신되었을 경우 (즉, 결정 블록 (956) = "예"), 블록 (1152) 에서, 무선 통신 디바이스는 제 1 및 제 2 입력들의 내용을 평가할 수도 있다. 평가되어야 할 내용은 제 1 및 제 2 입력들의 문법, 철자, 구두법, 포맷, 맥락, 및 해독된 의미를 포함할 수도 있다. 무선 통신 디바이스는 입력들의 내용을 해독하고 제 1 및 제 2 입력들이 연결되는지 여부를 결정하기 위하여, 자연 언어 프로세싱, 스피치 인식, 및/또는 패턴 일치 루틴들을 수행할 수도 있다. 예를 들어, 무선 통신 디바이스는 제 2 입력 (예컨대, "rld") 이 제 1 입력 (예컨대, "Hello Wo") 의 계속인 것으로 결정하기 위하여 입력들을 평가할 수도 있다. 또 다른 예로서, 무선 통신 디바이스는, 제 1 입력이 최종적인 또는 결론적인 진술 또는 단어 (예컨대, "hold on") 를 표시하는 발성된 입력이고, 제 2 입력이 별도의 통신 (예컨대, "Hi, are you there?") 을 표시하는 상이한 발성된 입력인 것으로 결정할 수도 있다. 평가들에 기초하여, 무선 통신 디바이스는 제 1 및 제 2 입력들이 함께 의미가 통하거나, 또는 이와 다르게, 제 1 애플리케이션과 함께 이용하기 위해 적절한 것인지 여부를 해독할 수도 있다.
다양한 실시형태들에서, 입력들의 내용 (예컨대, 입력들의 문법, 어법, 구두법, 포맷, 철자, 포맷팅, 및 맥락 또는 해독된 의미) 은, 제 1 입력 및/또는 제 2 입력이 제 1 및/또는 제 2 애플리케이션과 관련되는지 여부를 결정하기 위하여 무선 통신 디바이스에 의해 평가될 수도 있다. 무선 통신은 부분적인 단어들 및 어구들, 및/또는 입력들이 애플리케이션-특정 내용 또는 포맷팅을 포함하는지 여부 (예컨대, 제 2 입력이 제 2 애플리케이션의 명칭 또는 제 2 애플리케이션과 연관되기만 하는 연락처를 포함할 수도 있는 것 등) 를 식별하기 위하여 입력들을 평가할 수도 있다. 예를 들어, 무선 통신 디바이스는 제 2 입력이 제 1 애플리케이션 (예컨대, 대본 편집기 앱) 이 아니라 제 2 애플리케이션 (예컨대, 업무 이메일 클라이언트) 과 함께 이용하기 위하여 그 명칭이 저장되는 업무 파트너를 언제 명명하는지를 검출할 수도 있다. 또 다른 예로서, 무선 통신 디바이스는, 제 2 입력이 업무 이메일 클라이언트에서가 아니라 SMS 메시징 애플리케이션에서 사용자에 의해 이용되기만 할 수도 있는 속어 (예컨대, "lol") 또는 다른 비공식적인 축약들 (예컨대, 문장들의 초반부에 대문자들이 없음 등) 을 언제 포함하는지를 검출할 수도 있다.
실시형태에서, 무선 통신 디바이스는 제 2 애플리케이션 내에서 이용되어야 할 데이터의 포맷 또는 예상된 타입에 관련하여 제 2 입력의 내용을 추가로 해독할 수도 있다. 예를 들어, 무선 통신은 발성된 단어의 제 2 입력 (예컨대, "hello") 이 제 2 애플리케이션에 대한 입력 엘리먼트를 위해 적절하거나 올바른 것인지 (예컨대, 청구 주소에 관련된 웹 형태 텍스트 필드 내로 기입된 "hello" 가 의미가 통하는가?) 를 평가할 수도 있다. 또 다른 예로서, 제 2 입력이 도시의 명칭 (예컨대, San Diego) 일 경우, 무선 통신 디바이스는 제 2 입력이 제 2 애플리케이션에서 초점을 가지는 텍스트 박스를 위해 적절한 것으로 결정할 수도 있다.
블록 (1154) 에서, 무선 통신 디바이스는 예컨대, 제 2 애플리케이션의 착수 시간과 제어에 있어서의 변경 사이의 경과된 시간을 구함으로써, 제 2 애플리케이션의 착수의 착수와, 제어에 있어서의 변경 (또는 초점에서의 전환) 의 시간 사이의 시간을 평가할 수도 있다. 무선 통신 디바이스는 제 2 애플리케이션의 착수의 순서, 제 1 및/또는 제 2 입력들의 수신, 및 제어에 있어서의 변경을 해독할 수도 있다. 예를 들어, 무선 통신 디바이스는, 타이핑된 텍스트가 수신되었을 때, 그리고 타이핑된 텍스트가 브라우저에 대해 의도되었던 것인지 여부를 해독하기 위하여 브라우저가 실제적으로 팝업하였을 때, 브라우저 앱의 착수의 시간을 평가할 수도 있다. 실시형태에서, 무선 통신 디바이스는, 제 2 애플리케이션이 착수되었을 때와, 제 2 애플리케이션이 포어그라운드의 제어를 취할 때 사이의 시간이 더 클수록, 제 2 입력이 제 2 애플리케이션과 연관될 가능성이 적은 것으로 결정할 수도 있다. 다시 말해서, 제 2 애플리케이션이 착수 시간 (예컨대, 사용자가 엑시큐터블 (executable) 을 클릭한 시간 등) 으로부터 로딩하기에 긴 시간이 걸릴 때, 사용자가 제 2 애플리케이션을 대기하면서 멀티-태스킹을 행하므로, 무선 통신 디바이스는 제 1 애플리케이션과 연관된 입력들을 수신할 수도 있다. 예를 들어, 신속하게 제 1 애플리케이션 (예컨대, 노트패드) 내로 타이핑하는 사용자는 타이핑하면서 제 2 애플리케이션 (예컨대, 브라우저 앱) 을 착수할 수도 있고, 포어그라운드를 완전히 로딩하고 제어하기 위하여 제 2 애플리케이션을 대기하면서 제 2 애플리케이션에 의한 타이핑을 계속할 수도 있다. 또 다른 예로서, 제 2 애플리케이션이 몇 분 (예컨대, 10 분 등) 전에 착수되었을 경우, 무선 통신 디바이스는 제 2 입력 텍스트를 제 1 애플리케이션과 연관될 가능성이 있는 것으로 평가할 수도 있다. 그러나, 제 2 애플리케이션이 불과 몇 초 전에 착수되었을 경우, 무선 통신 디바이스는 제 2 입력 텍스트를 제 2 애플리케이션과 연관될 가능성이 있는 것으로 평가할 수도 있다.
다양한 실시형태들에서, 무선 통신 디바이스는 제 2 애플리케이션을 착수하기 위한 사용자의 작동들의 최신성 (recentness) 및/또는 순서를 평가할 수도 있다. 특히, 무선 통신 디바이스는 소프트 키보드 또는 버튼들 상의 수신된 사용자 입력들, 사용자가 제 2 애플리케이션의 착수를 능동적으로 개시하였는지 (예컨대, 그것이 자동-스케줄링되었는지 또는 사용자 입력의 결과였는지) 여부, 제 2 애플리케이션의 착수와 제어에 있어서의 변경 사이의 사용자 작동들 또는 입력들, 제 2 애플리케이션 상의 새로운 스크린과 대응하는 사용자 입력 (예컨대, 버튼 누름) 을 수신하는 것과, 제 2 애플리케이션의 착수 시간 사이의 시간, 및 제 1 애플리케이션의 이전의 스크린에서의 최후 엔트리 (entry) 와 추후의 버튼 누름 사이의 시간을 평가할 수도 있다. 비-제한적인 예시로서, 제 2 애플리케이션을 착수하기 위한 검출된 사용자 입력, 제 2 애플리케이션이 착수된 후에 포어그라운드의 제어를 획득하기 위해 전형적으로 상당한 시간이 걸리는 것을 표시하는 이력 정보, 제 1 애플리케이션 (예컨대, 전화 앱) 을 착수하기 위한 또 다른 검출된 사용자 입력, 타이핑된 텍스트 입력들 (예컨대, 전화 번호) 을 수신하는 것, 및 제 2 애플리케이션으로의 제어의 궁극적인 변경에 기초하여, 무선 통신 디바이스는 버튼 누름들이 모두 완전히 타이트 (tight) 한 것으로 결정할 수도 있고, 사용자가 제 1 애플리케이션과의 호출을 시작하도록 의도할 가능성이 있는 것으로 결론내릴 수도 있다.
실시형태에서, 무선 통신 디바이스는 또한, 무선 통신 디바이스 컴퓨터 플랫폼 상에 상주하는 다양한 애플리케이션들에 대한 평균 착수 또는 로드 시간들을 설명하는 데이터와 같은 저장된 이력 정보 (예컨대, 휴리스틱 (heuristics)) 를 평가할 수도 있다. 이전의 경험들을 평가하는 것에 기초하여, 무선 통신 디바이스는, 사용자가 제 2 애플리케이션이 언제 팝업할 것인지를 개략적으로 알 수도 있고, 그러므로, 자신의 입력을 이에 따라 시간조절하였을 가능성을 결정할 수도 있다. 예를 들어, 무선 통신 디바이스는, 사용자가 제 2 입력 텍스트 데이터가 웹 브라우저 애플리케이션과 연관될 것을 예상하였을 수도 있는지 여부를 결정하기 위하여, 웹 브라우저 애플리케이션에 대한 포어그라운드를 제어하기 위한 착수로부터의 현재의 시간을, 웹 브라우저 애플리케이션에 대한 이력의 평균 로드 시간들과 비교할 수도 있다.
결정 블록 (1156) 에서, 무선 통신 디바이스는 예컨대, 블록들 (1152 내지 1154) 에서의 동작들을 참조하여 위에서 설명된 평가들로부터의 결론들을 이용함으로써, 평가들 (예컨대, 평가된 내용 및/또는 평가된 착수 시간) 에 기초하여, 사용자가 포어그라운드의 초점을 전환하도록 의도하였는지 여부를 결정할 수도 있다. 다시 말해서, 무선 통신 디바이스는, 사용자가 제 2 입력을 제 2 애플리케이션에 제공하도록 의도하였는지 여부를 추론하기 위하여, 입력들의 해독들 및/또는 제 2 애플리케이션의 착수 시간을 이용할 수도 있다. 무선 통신 디바이스는 다양한 규칙 세트들, 밸런싱 시스템들, 가중화 방식들, 및 결정을 행하기 위한 의사결정 수학식들을 사용할 수도 있다. 예를 들어, 제 1 입력 (예컨대, "hold on..." 의 타이핑된 텍스트) 이 제 2 입력 (예컨대, "are you there?" 의 타이핑된 텍스트) 에 관련되지 않는 것을 표시하는 제 1 및 제 2 입력들의 언어 분석의 평가에 기초하여, 무선 통신 디바이스는 사용자가 초점을 전환하도록 의도하였던 것으로 결정할 수도 있다. 또 다른 예로서, 무선 통신 디바이스가 제 1 및 제 2 입력들의 언어의 의도된 의미를 명확하게 결정할 수 없을 때 (예컨대, 수신된 입력들이 외견상 랜덤 문자들이고, 철자 오기이고, 알려지지 않은 약칭을 이용하는 것 등), 무선 통신 디바이스는 제 2 애플리케이션을 착수하는 것과, 포어그라운드의 제어를 획득한 시간 사이의 시간의 평가를 더 많이 강조할 수도 있다.
평가들에 기초하여, 사용자가 입력 윈도우들을 전환하도록 의도하였던 것으로 결정되지 않을 경우 (즉, 결정 블록 (1156) = "아니오"), 블록 (960) 에서, 무선 통신 디바이스는 제 2 입력을 제 2 애플리케이션과 연관시킬 수도 있다. 그러나, 평가들에 기초하여, 사용자가 입력 윈도우들을 전환하도록 의도하였던 것으로 결정될 경우 (즉, 결정 블록 (1156) = "예"), 블록 (958) 에서, 무선 통신 디바이스는 제 2 입력을 제 1 애플리케이션과 연관시킬 수도 있다.
다양한 실시형태들에서, 무선 통신 디바이스는 제 2 입력이 연관되어야 하는 애플리케이션을 결정하기 위하여, 타이밍 정보의 다양한 평가들 (즉, 결정 블록들 (954 내지 956) 및 블록 (1154) 에서의 동작들) 과 조합하여 또는 이러한 평가들 대신에, 제 1 및 제 2 입력들의 내용을 평가할 수도 있다. 예를 들어, 무선 통신 디바이스는, 제 1 및 제 2 입력들을 수신하는 것 사이의 시간에 관계 없이, 제 2 입력이 제 1 애플리케이션과 연관되는지 여부를 결정하기 위하여 제 1 및 제 2 타이핑된 입력들의 문법 및/또는 단어 의미만을 평가할 수도 있다. 또 다른 예로서, 무선 통신 디바이스는 착수 및 제어에 있어서의 변경 사이의 시간의 평가를, 제 2 입력과 연관된 애플리케이션을 식별함에 있어서 복수의 인자들 중의 하나로서 이용할 수도 있다. 또 다른 예로서, 제 1 입력이 제 1 시간 문턱 내에 있지 않은 것으로 결정되고, 및/또는 제 2 입력이 제 2 시간 문턱 내에 있지 않은 것으로 결정되더라도, 무선 통신은 사용자가 제 2 입력이 제 2 애플리케이션에 적용되도록 의도하였는지 여부를 결정하기 위하여, 제 1 및 제 2 입력들의 내용을 평가하도록 구성될 수도 있다.
도 12 는 무선 통신 디바이스가 제 1 및 제 2 애플리케이션들의 사용자 인터페이스 엘리먼트들의 로케이션들에 기초하여 수신된 사용자 입력을 제 1 또는 제 2 애플리케이션과 연관시키기 위한 실시형태의 방법 (1200) 을 예시한다. 애플리케이션들은 사용자 인터페이스 엘리먼트들 (예컨대, 소프트 버튼들 등) 을 위한 표준적인 레이아웃들을 이용할 수도 있다. 예를 들어, 제 1 애플리케이션은 제 1 사용자 인터페이스 윈도우의 상부 우측 부분에 '검색' 버튼을 가질 수도 있고, 제 2 애플리케이션은 제 2 사용자 인터페이스 윈도우의 상부 우측 부분에 '삭제' 버튼을 가질 수도 있다. 사용자가 이러한 사용자 인터페이스 엘리먼트들과 상호작용하고 있는 동안에 초점이 예기치 않게 전환될 때, 의도되지 않은 작동들이 실행될 수도 있다. 예를 들어, 사용자가 제 1 애플리케이션 상의 '검색' 버튼을 누르기 바로 전에, 제 2 애플리케이션은 포어그라운드를 제어하기 위하여 윈도우를 팝업할 수도 있고, 사용자는 무선 통신 디바이스의 터치스크린 상의 '검색' 버튼 과 동일한 장소에 위치되는 '삭제' 버튼을 우연히 누를 수도 있다. 방법 (1200) 은, 제 2 애플리케이션에서 의도되지 않은 UI 작동들을 회피하기 위하여, 무선 통신 디바이스가 제 1 및 제 2 애플리케이션들의 사용자 엘리먼트들이 일치하게 공동위치될 때에 사용자의 의도를 결정하기 위한 동작들을 포함할 수도 있다. 다양한 실시형태들에서, 방법 (1200) 은 도 5 내지 도 6 을 참조하여 위에서 설명된 방법들의 일부로서 무선 통신 디바이스에 의해 수행될 수도 있다. 예를 들어, 무선 통신 디바이스는 중재기를 통해, 도 5 의 블록 (160) 또는 도 6 의 블록 (180) 에서의 동작들을 수행한 후에 방법 (1200) 을 수행할 수도 있다.
블록 (952) 에서, 무선 통신 디바이스는 제 1 애플리케이션으로부터 제 2 애플리케이션으로의 포어그라운드 윈도우의 제어에 있어서의 변경을 검출할 수도 있다. 블록 (1202) 에서, 무선 통신 디바이스는 사용자 인터페이스 상의 터치 입력과 같이, 제어에 있어서의 변경 후에 발생하는 제 2 입력을 식별할 수도 있다. 선택적인 블록 (1203) 에서, 무선 통신 디바이스는 제어에 있어서의 변경 전에 발생하는 제 1 입력을 식별할 수도 있다. 블록들 (1202 내지 1203) 에서의 동작들은 블록 (953) 을 참조하여 위에서 설명된 것과 유사할 수도 있지만, 그러나, 사용자는 무선 통신 디바이스에 의해 연관될 필요가 있는 단일 입력 (즉, 제 2 입력) 을 제공하기만 할 수도 있으므로, 제 1 입력을 식별하기 위한 동작들은 임의적일 수도 있다.
선택적인 결정 블록 (954) 에서, 무선 통신 디바이스는 제 1 입력이 제어에 있어서 변경의 제 1 시간 문턱 내에 수신되었는지 여부를 결정할 수도 있다. 제 1 입력이 제어에 있어서의 변경의 제 1 시간 문턱의 외부에서 수신되었을 경우 (즉, 선택적인 결정 블록 (954) = "아니오"), 블록 (960) 에서, 무선 통신 디바이스는 제 2 입력을 제 2 애플리케이션과 연관시킬 수도 있다. 제 1 입력이 제어에 있어서의 변경의 제 1 시간 문턱 내에 수신되었을 경우 (즉, 선택적인 결정 블록 (954) = "예"), 무선 통신 디바이스는 결정 블록 (956) 에서, 제 2 입력이 제어에 있어서의 변경의 제 2 시간 문턱 내에서 발생하였는지 여부를 결정할 수도 있다. 예를 들어, 무선 통신 디바이스는 사용자 인터페이스 엘리먼트 누름이 제 2 애플리케이션으로의 제어의 변경으로부터 어떤 수의 밀리초, 초 등의 내에 검출되었는지 여부를 결정할 수도 있다. 또 다른 예로서, 무선 통신 디바이스는 삭제된 UI 버튼 이벤트의 시간 (또는 타임스탬프 (timestamp) 을, 제 2 애플리케이션이 포어그라운드의 제어를 획득하였던 시간과 비교할 수도 있다. 제 2 입력이 제 2 시간 문턱의 외부에서 수신되었을 경우 (즉, 결정 블록 (956) = "아니오"), 무선 통신 디바이스는 블록 (960) 에서, 제 2 입력을 제 2 애플리케이션과 연관시킬 수도 있다. 예를 들어, UI 엘리먼트 누름 이벤트는 제 2 애플리케이션이 포어그라운드의 제어를 획득한 후의 수 초에 검출되었으므로, 무선 통신 디바이스는 누름이 제 2 애플리케이션에 대해 의도되었던 것으로 결정할 수도 있다.
그러나, 제 2 입력이 제 2 시간 문턱 내에 수신되었을 경우 (즉, 결정 블록 (956) = "예"), 블록 (1204) 에서, 무선 통신 디바이스는 제 2 입력 (예컨대, 검출된 UI 터치 입력) 과 일치하는 제 2 애플리케이션의 사용자 인터페이스 (UI) 엘리먼트를 식별할 수도 있다. 예를 들어, 무선 통신 디바이스는 제 2 입력 (예컨대, 어떤 x-축 및 y-축 좌표들을 가지는 검출된 UI 입력) 과 연관된 스크린 좌표들을, 제 2 애플리케이션에 대해 렌더링된 다양한 UI 엘리먼트들에 대응하는 디스플레이의 영역들과 비교할 수도 있다. 다시 말해서, 무선 통신 디바이스는, 사용자가 제 2 입력으로 클릭하였거나, 눌렀거나, 또는 이와 다르게 관여하였던 소프트 버튼, 텍스트 필드, 또는 다른 렌더링된 엘리먼트를 식별할 수도 있다. 실시형태에서, 무선 통신 디바이스는 UI 엘리먼트를 식별하기 위하여 래스터 (raster) 정보 또는 다른 그래픽 데이터를 평가할 수도 있다.
결정 블록 (1206) 에서, 무선 통신 디바이스는 제 2 애플리케이션의 식별된 UI 엘리먼트가 제 1 애플리케이션의 UI 엘리먼트와 일치하는지 여부를 결정할 수도 있다. 예를 들어, 무선 통신 디바이스는 식별된 UI 엘리먼트의 스크린 좌표들을, 제 1 애플리케이션을 갖는 포어그라운드에 이전에 없었던 모든 UI 엘리먼트들과 비교할 수도 있다. 무선 통신 디바이스는 제 1 애플리케이션의 임의의 유사하게 배치된 UI 엘리먼트들 (즉, 식별된 제 2 애플리케이션 UI 엘리먼트는 일치시키기 위한 제 1 애플리케이션 UI 엘리먼트의 정확하게 상부에 배치될 필요가 없을 수도 있음) 을 결정하기 위하여 문턱을 사용할 수도 있다. 식별된 UI 엘리먼트가 제 1 애플리케이션의 UI 엘리먼트와 일치하지 않을 경우 (즉, 결정 블록 (1206) = "아니오"), 무선 통신 디바이스는 블록 (960) 에서, 제 2 입력을 제 2 애플리케이션과 연관시킬 수도 있다. 다시 말해서, 제 2 입력 (예컨대, UI 터치 입력) 은 제 2 애플리케이션이 포어그라운드의 제어를 획득하는 어떤 시간 내에 수신되었지만, 제 1 애플리케이션에 대한 유사하게 배치된 UI 엘리먼트들이 없었으므로, 무선 통신 디바이스는 사용자가 제 2 애플리케이션과 상호작용하도록 의도하였을 가능성이 있는 것으로 추론할 수도 있다.
그러나, 식별된 UI 엘리먼트가 제 1 애플리케이션의 UI 엘리먼트와 일치할 경우 (즉, 결정 블록 (1206) = "예"), 블록 (958) 에서, 무선 통신 디바이스는 제 2 입력을 제 1 애플리케이션과 연관시킬 수도 있다. 다시 말해서, 제 2 입력 (예컨대, UI 터치 입력) 은 제 2 애플리케이션이 포어그라운드의 제어를 획득하는 어떤 시간 내에 수신되었고, 제 1 및 제 2 애플리케이션들은 유사하게 배치된 UI 엘리먼트들을 가졌으므로, 무선 통신 디바이스는 사용자가 제 1 애플리케이션과 상호작용하도록 의도하였을 가능성이 있는 것으로 추론할 수도 있다. 다양한 실시형태들에서, 무선 통신 디바이스는 제 2 입력이 제 2 또는 제 1 애플리케이션에 대해 의도되었는지 여부를 결정하기 위하여, 제 2 애플리케이션의 착수로부터의 시간과 같은 다양한 다른 인자들을 사용할 수도 있다.
위에서 설명된 바와 같이, 다양한 실시형태들에서는, 주 애플리케이션이 포어그라운드 (또는 디스플레이) 를 제어하는 동안, 다수의 애플리케이션들이 백그라운드 프로세스들 (또는 중단된 애플리케이션들) 로서 무선 통신 디바이스의 프로세서 상에서 동시에 실행되고 있을 수도 있다. 예를 들어, 제 1 애플리케이션이 포어그라운드를 제어하므로, 제 2 애플리케이션은 무선 통신 디바이스의 백그라운드에서 중단 (또는 중단된 모드에서 실행되도록 구성됨) 될 수도 있다. 중단된 애플리케이션들은 액티비티가 아닐 수도 있지만 (예컨대, 포어그라운드를 제어하지 않음), 임의의 중단된 애플리케이션은 예컨대, 위에서 설명된 바와 같이 중재기로부터 플래그를 수신하는 것에 응답하여, 액티비티로 될 수도 있고 포어그라운드에 도달할 수도 있다. 예를 들어, 수신된 SMS 메시지에 대응하는 통지 이벤트를 오퍼레이팅 시스템으로부터 수신하는 것에 응답하여, 중재기 (또는 중재기 앱) 는 포어그라운드를 제어할 것을 제 1 애플리케이션에 통지할 수도 있고 (즉, 제 1 애플리케이션은 포어그라운드에서 액티비티로 있도록 명령받음), 제 2 애플리케이션이 포어그라운드에 도달하는 것을 금지할 수도 있다 (즉, 제 2 애플리케이션은 백그라운드에서 비액티비티로 있도록 명령받음).
그러나, 비액티비티 애플리케이션들은 중재기의 작동들에 관계 없이, 포어그라운드에 도달하는 것을 여전히 시도할 수도 있다. 예를 들어, 제 2 애플리케이션이 포어그라운드에 도달하는 것을 허용하는 중재기로부터 플래그를 수신하지 않았던 제 2 애플리케이션은 포어그라운드의 제어를 획득하기 위한 동작들을 여전히 수행할 수도 있다. 이러한 미준수 (non-compliant) (또는 "불량") 애플리케이션들은 중재기가 아니라 애플리케이션들에 의해 이용가능한 데이터 또는 선호도들에 기초하여 중재기의 우선순위 결정들을 기각하는 것을 시도할 수도 있다. 예를 들어, 미준수 애플리케이션은, 애플리케이션이 하루 중의 무작위의 시간에 포어그라운드의 제어를 전형적으로 획득하는 것을 표시하는 로컬, 은닉된, 또는 미등록된 구성 정보를 저장할 수도 있다. 이러한 경우, 무선 통신 디바이스는 미준수 애플리케이션들을 종결시킬 수도 있다. 다양한 실시형태들에서, 이러한 종결들은, 무선 통신 디바이스의 오퍼레이팅 시스템의 일부일 수도 있거나, 또는 이와 다르게, 중재기가 다른 애플리케이션들을 직접적으로 제어하는 것을 가능하게 할 수도 있는 관리상 특권들을 가질 수도 있는 중재기를 통해, 무선 통신 디바이스에 의해 수행될 수도 있다.
도 13 은 무선 통신 디바이스가 중재기에 의한 우선순위 결정들과 반대로 무선 통신 디바이스의 포어그라운드의 제어를 획득하였던 미준수 애플리케이션을 종결시키기 위한 실시형태의 방법 (1300) 을 예시한다. 다시 말해서, 통지 이벤트를 수신하는 것에 응답하여 중재 동작들을 수행한 후, 무선 통신 디바이스는 중재를 따르지 않는 동작들을 추후에 수행하는 임의의 애플리케이션을 셧-다운 (shut-down), 중단, 또는 이와 다르게 종결시킬 수도 있다. 예를 들어, 무선 통신 디바이스가 (중재기를 통해) 제 1 애플리케이션이 포어그라운드를 제어하고 수신된 사용자 입력 (예컨대, "Hello Wo") 을 프로세싱하는 것을 허가한 후에, 제 2 애플리케이션이 포어그라운드에 도달할 때, 무선 통신 디바이스는 제 2 애플리케이션을 종결할 수도 있고, 임의의 추후에 수신된 사용자 입력 (예컨대, "rld") 을 제 1 애플리케이션에 적용할 수도 있다. 다양한 실시형태들에서, 방법 (1300) 은 도 5 내지 도 6 을 참조하여 위에서 설명된 방법들의 일부로서 무선 통신 디바이스에 의해 수행될 수도 있다. 예를 들어, 무선 통신 디바이스는 중재기를 통해, 도 5 의 블록 (160) 또는 도 6 의 블록 (180) 에서의 동작들을 수행한 후에 방법 (1300) 을 수행할 수도 있다.
결정 블록 (1302) 에서, 무선 통신 디바이스는 예컨대, 중재기로부터 우선순위 플래그를 수신하지 않고도 포어그라운드에 도달함으로써, 미준수 애플리케이션이 포어그라운드를 제어하도록 작동하였는지 여부를 결정할 수도 있다. 실시형태에서, 무선 통신 디바이스는 위에서 설명된 바와 같이, 포어그라운드를 현재 제어하는 애플리케이션의 아이덴티티를, 중재 동작들을 통해 결정된 우선순위 애플리케이션의 아이덴티티와 주기적으로 비교함으로써 이 결정을 행할 수도 있다. 또 다른 실시형태에서, 무선 통신 디바이스는 제어에 있어서의 변경 또는 다른 스테이터스 변경을 검출하거나 예상되지 않은 이벤트 통지 (예컨대, 초점에 있어서의 전환을 표시하는 신호 등) 를 수신하는 것에 응답하여, 포어그라운드를 현재 제어하는 애플리케이션의 아이덴티티를, 중재를 통해 결정된 우선순위 애플리케이션의 아이덴티티를 비교함으로써 이 결정을 행할 수도 있다. 미준수 애플리케이션이 포어그라운드를 제어하도록 작동한 것으로 결정되지 않을 경우 (즉, 결정 블록 (1302) = "아니오"), 무선 통신 디바이스는 다른 이벤트 통지들에 대해 모니터링하고 다른 이벤트 통지들을 프로세싱하기 위한 동작들을 계속할 수도 있다.
그러나, 미준수 애플리케이션이 포어그라운드를 제어하도록 작동한 것으로 결정될 경우 (즉, 결정 블록 (1302) = "예"), 블록 (1304) 에서, 무선 통신 디바이스는 예컨대, 종결 신호 또는 중단 메시지를 미준수 애플리케이션으로 전송함으로써, 미준수 애플리케이션을 종결 (또는 셧-다운) 할 수도 있다. 실시형태에서, 무선 통신 디바이스는 중재기를 통해, 미준수 애플리케이션을 종결시켜서, 그것을 셧-다운시킬 뿐만 아니라, 미준수 애플리케이션이 다시 실행되는 것을 금지할 수도 있다. 예를 들어, 미준수 애플리케이션의 종결 후의 주기 (예컨대, 밀리초, 초 등) 동안, 무선 통신 디바이스는 중재기를 통해, 포어그라운드를 착수 및/또는 제어하기 위한 미준수 애플리케이션에 의한 추후의 시도들에 대하여 모니터링할 수도 있고, 블록 (1304) 에서의 동작들을 반복할 수도 있다. 선택적인 블록 (1306) 에서, 무선 통신 디바이스는 플래그를, 도 5 또는 도 6 을 참조하여 위에서 설명된 동작들을 통해 결정된 우선순위 애플리케이션과 같이, 우선순위를 가지는 애플리케이션으로 재전송할 수도 있다.
미준수 애플리케이션은 예컨대, 중재기를 통해, 무선 통신 디바이스에 의해 전송된 중단 메시지들을 기각하도록 구성될 수도 있다. 예를 들어, 중재기 앱에 의해 이용가능하지 않은 정보에 기초하여, 미준수 애플리케이션은 포어그라운드의 제어를 유지하기 위하여, 수신된 중단 메시지 또는 종결 신호를 무시할 수도 있다. 이 경우는, 무선 통신 디바이스가 소프트웨어 (예컨대, 구형의 루틴들, 앱, 또는 소프트웨어) 를 업그레이드하지 않았을 때에 발생할 수도 있다.
도 14 는 다양한 실시형태와 함께 이용하기 위해 적당한 스마트폰 무선 통신 디바이스 (1400) 의 시스템 블록도이다. 스마트폰 무선 통신 디바이스 (1400) 는 내부 메모리 (1402) 및 스피커 (1454) 에 결합된 프로세서 (1401) 를 포함할 수도 있다. 내부 메모리 (1402) 는 휘발성 또는 비휘발성 메모리일 수도 있고, 또한, 보안 및/또는 암호화된 메모리, 또는 비보안 및/또는 비암호화된 메모리, 또는 그 임의의 조합일 수도 있다. 프로세서 (1401) 는 또한, 저항-감지 터치 스크린 (resistive-sensing touch screen), 용량-감지 터치 스크린 (capacitive-sensing touch screen), 적외선 감지 터치 스크린 (infrared sensing touch screen) 등과 같은 제 1 디스플레이 (1403) 에 결합될 수도 있다. 실시형태에서, 스마트폰 무선 통신 디바이스 (1400) 의 제 1 디스플레이 (1403) 는 터치 스크린 기능을 가질 필요가 없다. 실시형태에서, 스마트폰 무선 통신 디바이스 (1400) 는 또한, 또 다른 터치 스크린 또는 LED 스크린과 같이, 프로세서 (1401) 에 결합된 제 2 디스플레이 (1460) 를 포함할 수도 있다. 다양한 실시형태들에서, 제 2 디스플레이 (1460) 는 예컨대, 스마트폰 무선 통신 디바이스가 힌지 기구 (hinge mechanism) 를 사용하고 "클램 쉘" 과 같이 폐쇄되도록 구성될 때, 비액티비티에 대해 은닉되거나 폐쇄되도록 구성될 수도 있다. 대안적으로, 제 2 디스플레이 (1460) 는 스마트폰 무선 통신 디바이스 (1400) 의 케이스 또는 하우징에 부착되거나 그 내부에 내장된 디스플레이 유닛일 수도 있다. 예를 들어, 제 2 디스플레이 (1460) 는 무선 통신 디바이스 (1400) 의 하우징의 후방 상의 제 2 스크린일 수도 있다. 다른 실시형태들에서, 제 2 디스플레이 (1460) 는 유선 또는 무선 접속들 (도시되지 않음) 을 통해 스마트폰 무선 통신 디바이스 (1400) 에 테더링될 수도 있다.
스마트폰 무선 통신 디바이스 (1400) 는 WiFi 로컬 영역 네트워크 또는 광역 네트워크 상에서 통신하기 위한 것과 같이, 전자기 방사 (또는 무선 신호들) 를 전송하고 수신하기 위한 하나 이상의 라디오 신호 트랜시버들 (1405) (예컨대, 피넛 (Peanut), 블루투스 (Bluetooth), 지그비 (Zigbee), WiFi, RF 라디오 등) 및 안테나들 (1404) 을 가질 수도 있다. 트랜시버들 (1118) 및 안테나들 (1108) 은 프로세서 (1401) 에 결합될 수도 있고, 다양한 무선 송신 프로토콜 스택 (wireless transmission protocol stack) 들 / 인터페이스들을 구현하기 위하여 상기 언급된 회로부와 함께 이용될 수도 있다. 실시형태에서, 스마트폰 무선 통신 디바이스 (1400) 는, 셀룰러 네트워크를 통한 통신을 가능하게 하는 셀룰러 네트워크 무선 모뎀 칩 (1415) 을 포함할 수도 있다. 스마트폰 무선 통신 디바이스 (1400) 는 또한 전형적으로, 사용자 입력들을 수신하기 위한 메뉴 선택 버튼들 또는 록커 스위치 (rocker switch) 들 (1408) 을 포함할 수도 있다. 추가적으로, 스마트폰 무선 통신 디바이스 (1400) 는 서미스터 (1462), 가속도계 (1410), 자이로스코프 (1411), 마이크로폰 (1412), 및 카메라 (1413) 와 같이, 프로세서 (1401) 에 결합된 다양한 센서들을 포함할 수도 있다. 추가적으로, 스마트폰 무선 통신 디바이스 (1400) 는 프로세서 (1401) 에 결합된 GPS 수신기 칩 (1414) 을 포함할 수도 있다.
프로세서들 (84 및 1401) 은, 위에서 설명된 다양한 실시형태들의 기능들을 포함하는 다양한 기능들을 수행하기 위하여 소프트웨어 명령들 (애플리케이션들) 에 의해 구성될 수도 있는 임의의 프로그래밍가능 마이크로프로세서, 마이크포컴퓨터 또는 다중 프로세서 칩 또는 칩들일 수도 있다. 다양한 디바이스들에서는, 무선 통신 기능들에 전용인 하나의 프로세서 및 다른 애플리케이션들을 실행하는 것에 전용인 하나의 프로세서와 같은, 다중 프로세서들이 제공될 수도 있다. 전형적으로, 소프트웨어 애플리케이션들은, 이들이 액세스되고 프로세서들 (84 및 1401) 로 로딩되기 전에 내부 메모리 (88 및 1402) 에서 저장될 수도 있다. 프로세서들 (84 및 1401) 은 애플리케이션 소프트웨어 명령들을 저장하기 위해 충분한 내부 메모리를 포함할 수도 있다. 다수의 디바이스들에서, 내부 메모리는 플래시 메모리와 같은 휘발성 또는 비휘발성 메모리, 또는 양자의 혼합일 수도 있다. 이 설명의 목적들을 위하여, 메모리에 대한 일반적인 참조는, 내부 메모리, 또는 다양한 디바이스들 내로 플러깅된 (plugged) 분리가능 메모리와, 프로세서들 (84 및 1401) 내의 메모리를 포함하는, 프로세서들 (84 및 1401) 에 의해 액세스가능한 메모리를 지칭한다.
상기한 방법 설명들 및 프로세스 흐름도들은 예시적인 예들에 불과한 것으로서 제공되고, 다양한 실시형태들의 단계들이 제시된 순서로 수행되어야 하는 것을 요구하거나 암시하도록 의도된 것이 아니다. 당해 분야의 당업자에 의해 인식될 수도 있는 바와 같이, 상기한 실시형태들에서의 단계들의 순서는 임의의 순서로 수행될 수도 있다. "그 후", "다음으로", "다음" 등과 같은 단어들은 단계들의 순서를 제한하도록 의도된 것이 아니고; 이 단어들은 방법들의 설명을 통해 독자를 안내하기 위하여 간단하게 이용된다. 또한, 예를 들어, 관사들 "a", "an", 또는 "the" 를 이용하는 단수인 청구항 구성요소들에 대한 임의의 참조는 구성요소를 단수로 제한하는 것으로 해석되지 않아야 한다.
본원에서 개시된 실시형태들과 관련하여 설명된 다양한 예시적인 논리적 블록들, 모듈들, 회로들, 및 알고리즘 단계들은 전자 하드웨어, 프로세서-실행가능 명령들, 컴퓨터 소프트웨어, 또는 양자의 조합들로서 구현될 수도 있다. 하드웨어 및 소프트웨어의 이 교환가능성을 명확하게 예시하기 위하여, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들은 일반적으로 그 기능성의 측면에서 위에서 설명되었다. 이러한 기능성이 하드웨어 또는 소프트웨어로 구현되는지 여부는 특정 애플리케이션과, 전체 시스템에 부과된 설계 제약들에 종속된다. 숙련된 기술자들은 각각의 특정 애플리케이션을 위한 다양한 방법들로 설명된 기능성을 구현할 수도 있지만, 이러한 구현 판단들은 본 발명의 범위로부터의 이탈을 야기시키는 것으로 해독되지 않아야 한다.
본원에서 개시된 실시형태들과 관련하여 설명된 다양한 예시적인 로직들, 논리적 블록들, 모듈들, 및 회로들을 구현하기 위하여 이용된 하드웨어는 범용 프로세서, 디지털 신호 프로세서 (digital signal processor; DSP), 애플리케이션 특정 집적 회로 (application specific integrated circuit; ASIC), 필드 프로그래밍가능 게이트 어레이 (field programmable gate array; FPGA) 또는 다른 프로그래밍가능 로직 디바이스, 개별 게이트 또는 트랜지스터 로직, 개별 하드웨어 컴포넌트들, 또는 본원에서 설명된 기능들을 수행하도록 설계된 그 임의의 조합으로 구현되거나 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안적으로, 프로세서는 임의의 기존의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신 (state machine) 일 수도 있다. 프로세서는 또한, 컴퓨팅 디바이스들의 조합, 예컨대, DSP 및 마이크로프로세서, 복수의 마이크로프로세서들, DSP 코어와 함께 하나 이상의 마이크로프로세서들, 또는 임의의 다른 이러한 구성의 조합으로서 구현될 수도 있다. 대안적으로, 일부의 단계들 또는 방법들은 주어진 기능에 특정한 회로부에 의해 수행될 수도 있다.
방법들이 이동 통신 디바이스 및 다른 컴퓨터 플랫폼들에서 실행가능한 것을 고려하면, 방법들은 이에 따라, 비-일시적인 컴퓨터 판독가능 매체 (또는 비-일시적인 프로세서-판독가능 저장 매체) 에서 상주하는 프로그램에 의해 수행될 수도 있고, 여기서, 프로그램은 컴퓨터 플랫폼을 가지는 이동 디바이스 또는 다른 컴퓨터 디바이스가 방법들의 단계들을 수행할 것을 명령한다. 비-일시적인 컴퓨터 판독가능 매체는 서버의 메모리일 수도 있거나, 연결 데이터베이스 내에 있을 수도 있다. 또한, 비-일시적인 컴퓨터 판독가능 매체는, 자기 디스크 또는 테이프, 광학 디스크, 하드 디스크, 플래시 메모리, 또는 당해 분야에서 알려진 바와 같은 다른 저장 매체들과 같이, 무선 통신 디바이스 컴퓨터 플랫폼 상으로 로딩가능한 보조 저장 매체들 내에 있을 수도 있다.
하나 이상의 예시적인 실시형태들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 그 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현될 경우, 기능들은 비-일시적인 컴퓨터-판독가능 매체 (또는 비-일시적인 프로세서-판독가능 저장 매체) 상에서 하나 이상의 명령들 (예컨대, 프로세서-실행가능 명령들 또는 프로세서-실행가능 소프트웨어 명령들) 또는 코드로서 저장될 수도 있다. 저장 매체들은 컴퓨터에 의해 액세스될 수도 있는 임의의 이용가능한 매체들일 수도 있다. 제한이 아닌 예로서, 이러한 비-일시적인 컴퓨터-판독가능 매체들은 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 저장, 자기 디스크 저장, 또는 다른 자기 저장 디바이스들, 또는 명령들 또는 데이터 구조들의 형태로 희망하는 프로그램 코드를 저장하기 위해 이용될 수도 있으며 컴퓨터에 의해 액세스될 수도 있는 임의의 다른 저장 매체를 포함할 수도 있다. 본원에서 이용된 바와 같은 디스크 (disk) 및 디스크 (disc) 는 컴팩트 디스크 (compact disc; CD), 레이저 디스크 (laser disc), 광학 디스크 (optical disc), 디지털 다기능 디스크 (digital versatile disc; DVD), 플로피 디스크 (floppy disk) 및 블루레이 디스크 (blu-ray disc) 를 포함하고, 여기서, 디스크 (disk) 들은 통상 데이터를 자기적으로 재생하는 반면, 디스크 (disc) 들은 데이터를 레이저들로 광학적으로 재생한다. 상기의 조합들은 또한, 비-일시적인 컴퓨터-판독가능 매체들의 범위 내에 포함되어야 한다.
발명은 그 바람직한 실시형태를 참조하여 특히 도시되고 설명되었지만, 다음의 청구항들에서 기재된 바와 같은 본 발명의 범위로부터 이탈하지 않으면서, 형태 및 세부사항에 있어서의 다양한 변경들이 행해질 수도 있다는 것은 당해 분야의 당업자들에 의해 이해될 수도 있다. 이에 따라, 본 발명은 본원에서 도시된 실시형태들에 제한되도록 의도된 것이 아니라, 다음의 청구항들 및 본원에서 개시된 원리들 및 신규한 특징들과 부합하는 가장 넓은 범위를 따르도록 하기 위한 것이다. 또한, 발명의 요소들은 단수 형태로 설명되거나 청구될 수도 있지만, 단수에 대한 제한이 명시적으로 기재되어 있지 않을 경우에는 복수가 고려된다.

Claims (36)

  1. 사용자 의도에 따라 사용자 입력 데이터를 무선 통신 디바이스 상에 상주하는 복수의 애플리케이션들과 연관시키는 방법으로서,
    중재기를 통해, 하나를 초과하는 애플리케이션을 동시에 인보크하는 통지 이벤트를 수신하는 것에 응답하여, 미리 결정된 기준들에 기초하여 상기 무선 통신 디바이스의 디스플레이를 제어하는 상기 복수의 애플리케이션들 중의 제 1 애플리케이션을 결정하는 단계;
    상기 중재기를 통해, 상기 제 1 애플리케이션이 상기 디스플레이를 제어하는 것으로 결정하는 것에 응답하여, 상기 복수의 애플리케이션들에서의 상기 제 1 애플리케이션으로부터 상기 복수의 애플리케이션들에서의 제 2 애플리케이션으로의 상기 디스플레이의 제어에 있어서의 변경을 검출하는 단계;
    상기 디스플레이의 상기 제어에 있어서의 상기 검출된 변경 전에 수신된 제 1 입력과, 상기 디스플레이의 상기 제어에 있어서의 상기 검출된 변경 후에 수신된 제 2 입력을 식별하는 단계;
    상기 제 1 입력이 상기 디스플레이의 상기 제어에 있어서의 상기 검출된 변경의 제 1 시간 문턱 내에 수신되었는지 여부를 결정하는 단계;
    상기 제 2 입력이 상기 디스플레이의 상기 제어에 있어서의 상기 검출된 변경의 제 2 시간 문턱 내에 수신되었는지 여부를 결정하는 단계; 및
    상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되지 않았거나 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신되지 않은 것으로 결정하는 것에 응답하여, 상기 제 2 입력을 상기 제 2 애플리케이션과 연관시키는 단계를 포함하는, 사용자 의도에 따라 사용자 입력 데이터를 복수의 애플리케이션들과 연관시키는 방법.
  2. 제 1 항에 있어서,
    상기 제 1 입력 및 상기 제 2 입력은 양자 모두, 터치 입력들, 텍스트 입력들, 발성된 입력들, 또는 시각적 입력들 중의 하나인, 사용자 의도에 따라 사용자 입력 데이터를 복수의 애플리케이션들과 연관시키는 방법.
  3. 제 1 항에 있어서,
    상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제 2 입력을 상기 제 1 애플리케이션과 연관시키는 단계를 더 포함하는, 사용자 의도에 따라 사용자 입력 데이터를 복수의 애플리케이션들과 연관시키는 방법.
  4. 제 1 항에 있어서,
    상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제 2 입력을 상기 제 1 애플리케이션 및 상기 제 2 애플리케이션 중의 하나와 연관시키기 위한 사용자 선택 입력을 요청하는 프롬프트 (prompt) 를 렌더링하는 단계;
    사용자 인터페이스를 통해 상기 사용자 선택 입력을 수신하는 단계; 및
    상기 수신된 사용자 선택 입력에 기초하여 상기 제 2 입력을 상기 제 1 애플리케이션 및 상기 제 2 애플리케이션 중의 하나와 연관시키는 단계를 더 포함하는, 사용자 의도에 따라 사용자 입력 데이터를 복수의 애플리케이션들과 연관시키는 방법.
  5. 제 4 항에 있어서,
    상기 제 1 입력은 구어 입력 (verbal input) 이고;
    상기 프롬프트는 제 2 사운드이고; 그리고
    상기 방법은, 상기 디스플레이의 상기 제어에 있어서의 상기 변경을 검출하기 이전에 제 1 사운드를 렌더링하는 단계를 더 포함하는, 사용자 의도에 따라 사용자 입력 데이터를 복수의 애플리케이션들과 연관시키는 방법.
  6. 제 1 항에 있어서,
    상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제 1 입력 및 상기 제 2 입력의 내용을 평가하는 단계;
    상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제어에 있어서의 상기 검출된 변경에 관련하여 상기 제 2 애플리케이션의 착수 시간을 평가하는 단계; 및
    상기 평가된 내용 및 상기 평가된 착수 시간 중의 적어도 하나에 기초하여 상기 제 2 입력을 상기 제 1 애플리케이션 또는 상기 제 2 애플리케이션과 연관시키는 단계를 더 포함하는, 사용자 의도에 따라 사용자 입력 데이터를 복수의 애플리케이션들과 연관시키는 방법.
  7. 제 6 항에 있어서,
    상기 내용은 문법, 철자, 구두법, 포맷, 맥락, 및 해독된 의미 중의 적어도 하나인, 사용자 의도에 따라 사용자 입력 데이터를 복수의 애플리케이션들과 연관시키는 방법.
  8. 제 1 항에 있어서,
    상기 제 2 입력은 터치 입력이고, 상기 방법은,
    상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제 2 입력에 대응하는 상기 제 2 애플리케이션의 제 2 사용자 인터페이스 엘리먼트를 식별하는 단계;
    상기 제 2 애플리케이션의 상기 식별된 제 2 사용자 인터페이스 엘리먼트가 상기 제 1 애플리케이션의 제 1 사용자 인터페이스 엘리먼트와 일치하는지 여부를 결정하는 단계; 및
    상기 식별된 제 2 사용자 인터페이스 엘리먼트가 상기 제 1 사용자 인터페이스 엘리먼트와 일치하는 것으로 결정하는 것에 응답하여, 상기 제 2 입력을 상기 제 1 애플리케이션과 연관시키는 단계를 더 포함하는, 사용자 의도에 따라 사용자 입력 데이터를 복수의 애플리케이션들과 연관시키는 방법.
  9. 무선 통신 디바이스 상에 상주하는 복수의 애플리케이션들을 제어하는 방법으로서,
    중재기를 통해, 하나를 초과하는 애플리케이션을 동시에 인보크하는 통지 이벤트를 수신하는 것에 응답하여, 미리 결정된 기준들에 기초하여 상기 무선 통신 디바이스의 디스플레이를 제어하는 상기 복수의 애플리케이션들 중의 제 1 애플리케이션을 결정하는 단계;
    상기 복수의 애플리케이션들 중의 제 2 애플리케이션이, 상기 복수의 애플리케이션들 중의 상기 제 1 애플리케이션이 상기 디스플레이를 제어한다는 상기 중재기를 통한 상기 결정을 따르지 않았는지 여부를 결정하는 단계; 및
    상기 복수의 애플리케이션들 중의 상기 제 2 애플리케이션이 따르지 않은 것으로 결정하는 것에 응답하여, 상기 제 2 애플리케이션을 종결시키는 단계를 포함하는, 무선 통신 디바이스 상에 상주하는 복수의 애플리케이션들을 제어하는 방법.
  10. 무선 통신 디바이스로서,
    중재기를 통해, 하나를 초과하는 애플리케이션을 동시에 인보크하는 통지 이벤트를 수신하는 것에 응답하여, 미리 결정된 기준들에 기초하여 상기 무선 통신 디바이스의 디스플레이를 제어하는 복수의 애플리케이션들 중의 제 1 애플리케이션을 결정하기 위한 수단;
    상기 중재기를 통해, 상기 제 1 애플리케이션이 상기 디스플레이를 제어하는 것으로 결정하는 것에 응답하여, 상기 복수의 애플리케이션들에서의 상기 제 1 애플리케이션으로부터 상기 복수의 애플리케이션들에서의 제 2 애플리케이션으로의 상기 디스플레이의 제어에 있어서의 변경을 검출하기 위한 수단;
    상기 디스플레이의 상기 제어에 있어서의 상기 검출된 변경 전에 수신된 제 1 입력과, 상기 디스플레이의 상기 제어에 있어서의 상기 검출된 변경 후에 수신된 제 2 입력을 식별하기 위한 수단;
    상기 제 1 입력이 상기 디스플레이의 상기 제어에 있어서의 상기 검출된 변경의 제 1 시간 문턱 내에 수신되었는지 여부를 결정하기 위한 수단;
    상기 제 2 입력이 상기 디스플레이의 상기 제어에 있어서의 상기 검출된 변경의 제 2 시간 문턱 내에 수신되었는지 여부를 결정하기 위한 수단; 및
    상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되지 않았거나 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신되지 않은 것으로 결정하는 것에 응답하여, 상기 제 2 입력을 상기 제 2 애플리케이션과 연관시키기 위한 수단을 포함하는, 무선 통신 디바이스.
  11. 제 10 항에 있어서,
    상기 제 1 입력 및 상기 제 2 입력은 양자 모두, 터치 입력들, 텍스트 입력들, 발성된 입력들, 또는 시각적 입력들 중의 하나인, 무선 통신 디바이스.
  12. 제 10 항에 있어서,
    상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제 2 입력을 상기 제 1 애플리케이션과 연관시키기 위한 수단을 더 포함하는, 무선 통신 디바이스.
  13. 제 10 항에 있어서,
    상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제 2 입력을 상기 제 1 애플리케이션 및 상기 제 2 애플리케이션 중의 하나와 연관시키기 위한 사용자 선택 입력을 요청하는 프롬프트를 렌더링하기 위한 수단;
    사용자 인터페이스를 통해 상기 사용자 선택 입력을 수신하기 위한 수단; 및
    상기 수신된 사용자 선택 입력에 기초하여 상기 제 2 입력을 상기 제 1 애플리케이션 및 상기 제 2 애플리케이션 중의 하나와 연관시키기 위한 수단을 더 포함하는, 무선 통신 디바이스.
  14. 제 13 항에 있어서,
    상기 제 1 입력은 구어 입력이고;
    상기 프롬프트는 제 2 사운드이고; 그리고
    상기 무선 통신 디바이스는, 상기 디스플레이의 상기 제어에 있어서의 상기 변경을 검출하기 이전에 제 1 사운드를 렌더링하기 위한 수단을 더 포함하는, 무선 통신 디바이스.
  15. 제 10 항에 있어서,
    상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제 1 입력 및 상기 제 2 입력의 내용을 평가하기 위한 수단;
    상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제어에 있어서의 상기 검출된 변경에 관련하여 상기 제 2 애플리케이션의 착수 시간을 평가하기 위한 수단; 및
    상기 평가된 내용 및 상기 평가된 착수 시간 중의 적어도 하나에 기초하여 상기 제 2 입력을 상기 제 1 애플리케이션 또는 상기 제 2 애플리케이션과 연관시키기 위한 수단을 더 포함하는, 무선 통신 디바이스.
  16. 제 15 항에 있어서,
    상기 내용은 문법, 철자, 구두법, 포맷, 맥락, 및 해독된 의미 중의 적어도 하나인, 무선 통신 디바이스.
  17. 제 10 항에 있어서,
    상기 제 2 입력은 터치 입력이고, 상기 통신 디바이스는,
    상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제 2 입력에 대응하는 상기 제 2 애플리케이션의 제 2 사용자 인터페이스 엘리먼트를 식별하기 위한 수단;
    상기 제 2 애플리케이션의 상기 식별된 제 2 사용자 인터페이스 엘리먼트가 상기 제 1 애플리케이션의 제 1 사용자 인터페이스 엘리먼트와 일치하는지 여부를 결정하기 위한 수단; 및
    상기 식별된 제 2 사용자 인터페이스 엘리먼트가 상기 제 1 사용자 인터페이스 엘리먼트와 일치하는 것으로 결정하는 것에 응답하여, 상기 제 2 입력을 상기 제 1 애플리케이션과 연관시키기 위한 수단을 더 포함하는, 무선 통신 디바이스.
  18. 무선 통신 디바이스로서,
    중재기를 통해, 하나를 초과하는 애플리케이션을 동시에 인보크하는 통지 이벤트를 수신하는 것에 응답하여, 미리 결정된 기준들에 기초하여 상기 무선 통신 디바이스의 디스플레이를 제어하는 복수의 애플리케이션들 중의 제 1 애플리케이션을 결정하기 위한 수단;
    상기 복수의 애플리케이션들 중의 제 2 애플리케이션이, 상기 복수의 애플리케이션들 중의 상기 제 1 애플리케이션이 상기 디스플레이를 제어한다는 상기 중재기를 통한 상기 결정을 따르지 않았는지 여부를 결정하기 위한 수단; 및
    상기 복수의 애플리케이션들 중의 상기 제 2 애플리케이션이 따르지 않은 것으로 결정하는 것에 응답하여, 상기 제 2 애플리케이션을 종결시키기 위한 수단을 포함하는, 무선 통신 디바이스.
  19. 무선 통신 디바이스로서,
    메모리; 및
    상기 메모리에 결합된 프로세서를 포함하고, 상기 프로세서는 동작들을 수행하기 위한 프로세서-실행가능 명령들로 구성되고, 상기 프로세서-실행가능 명령들은,
    중재기를 통해, 하나를 초과하는 애플리케이션을 동시에 인보크하는 통지 이벤트를 수신하는 것에 응답하여, 미리 결정된 기준들에 기초하여 상기 무선 통신 디바이스의 디스플레이를 제어하는 복수의 애플리케이션들 중의 제 1 애플리케이션을 결정하는 것;
    상기 중재기를 통해, 상기 제 1 애플리케이션이 상기 디스플레이를 제어하는 것으로 결정하는 것에 응답하여, 상기 복수의 애플리케이션들에서의 상기 제 1 애플리케이션으로부터 상기 복수의 애플리케이션들에서의 제 2 애플리케이션으로의 상기 디스플레이의 제어에 있어서의 변경을 검출하는 것;
    상기 디스플레이의 상기 제어에 있어서의 상기 검출된 변경 전에 수신된 제 1 입력과, 상기 디스플레이의 상기 제어에 있어서의 상기 검출된 변경 후에 수신된 제 2 입력을 식별하는 것;
    상기 제 1 입력이 상기 디스플레이의 상기 제어에 있어서의 상기 검출된 변경의 제 1 시간 문턱 내에 수신되었는지 여부를 결정하는 것;
    상기 제 2 입력이 상기 디스플레이의 상기 제어에 있어서의 상기 검출된 변경의 제 2 시간 문턱 내에 수신되었는지 여부를 결정하는 것; 및
    상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되지 않았거나 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신되지 않은 것으로 결정하는 것에 응답하여, 상기 제 2 입력을 상기 제 2 애플리케이션과 연관시키는 것을 포함하는, 무선 통신 디바이스.
  20. 제 19 항에 있어서,
    상기 제 1 입력 및 상기 제 2 입력은 양자 모두, 터치 입력들, 텍스트 입력들, 발성된 입력들, 또는 시각적 입력들 중의 하나인, 무선 통신 디바이스.
  21. 제 19 항에 있어서,
    상기 프로세서는, 상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제 2 입력을 상기 제 1 애플리케이션과 연관시키는 것을 더 포함하는 프로세서-실행가능 명령들로 구성되는, 무선 통신 디바이스.
  22. 제 19 항에 있어서,
    상기 프로세서는,
    상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제 2 입력을 상기 제 1 애플리케이션 및 상기 제 2 애플리케이션 중의 하나와 연관시키기 위한 사용자 선택 입력을 요청하는 프롬프트를 렌더링하는 것;
    사용자 인터페이스를 통해 상기 사용자 선택 입력을 수신하는 것; 및
    상기 수신된 사용자 선택 입력에 기초하여 상기 제 2 입력을 상기 제 1 애플리케이션 및 상기 제 2 애플리케이션 중의 하나와 연관시키는 것을 더 포함하는 프로세서-실행가능 명령들로 구성되는, 무선 통신 디바이스.
  23. 제 22 항에 있어서,
    상기 제 1 입력은 구어 입력이고;
    상기 프롬프트는 제 2 사운드이고; 그리고
    상기 프로세서는, 상기 디스플레이의 상기 제어에 있어서의 상기 변경을 검출하기 이전에 제 1 사운드를 렌더링하는 것을 더 포함하는 프로세서-실행가능 명령들로 구성되는, 무선 통신 디바이스.
  24. 제 19 항에 있어서,
    상기 프로세서는,
    상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제 1 입력 및 상기 제 2 입력의 내용을 평가하는 것;
    상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제어에 있어서의 상기 검출된 변경에 관련하여 상기 제 2 애플리케이션의 착수 시간을 평가하는 것; 및
    상기 평가된 내용 및 상기 평가된 착수 시간 중의 적어도 하나에 기초하여 상기 제 2 입력을 상기 제 1 애플리케이션 또는 상기 제 2 애플리케이션과 연관시키는 것을 더 포함하는 프로세서-실행가능 명령들로 구성되는, 무선 통신 디바이스.
  25. 제 24 항에 있어서,
    상기 내용은 문법, 철자, 구두법, 포맷, 맥락, 및 해독된 의미 중의 적어도 하나인, 무선 통신 디바이스.
  26. 제 19 항에 있어서,
    상기 제 2 입력은 터치 입력이고, 상기 프로세서는,
    상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제 2 입력에 대응하는 상기 제 2 애플리케이션의 제 2 사용자 인터페이스 엘리먼트를 식별하는 것;
    상기 제 2 애플리케이션의 상기 식별된 제 2 사용자 인터페이스 엘리먼트가 상기 제 1 애플리케이션의 제 1 사용자 인터페이스 엘리먼트와 일치하는지 여부를 결정하는 것; 및
    상기 식별된 제 2 사용자 인터페이스 엘리먼트가 상기 제 1 사용자 인터페이스 엘리먼트와 일치하는 것으로 결정하는 것에 응답하여, 상기 제 2 입력을 상기 제 1 애플리케이션과 연관시키는 것을 더 포함하는 프로세서-실행가능 명령들로 구성되는, 무선 통신 디바이스.
  27. 무선 통신 디바이스로서,
    메모리; 및
    상기 메모리에 결합된 프로세서를 포함하고,
    상기 프로세서는 프로세서-실행가능 명령들에 의해,
    중재기를 통해, 하나를 초과하는 애플리케이션을 동시에 인보크하는 통지 이벤트를 수신하는 것에 응답하여, 미리 결정된 기준들에 기초하여 상기 무선 통신 디바이스의 디스플레이를 제어하는 복수의 애플리케이션들 중의 제 1 애플리케이션을 결정하는 것;
    상기 복수의 애플리케이션들 중의 제 2 애플리케이션이, 상기 복수의 애플리케이션들 중의 상기 제 1 애플리케이션이 상기 디스플레이를 제어한다는 상기 중재기를 통한 상기 결정을 따르지 않았는지 여부를 결정하는 것; 및
    상기 복수의 애플리케이션들 중의 상기 제 2 애플리케이션이 따르지 않은 것으로 결정하는 것에 응답하여, 상기 제 2 애플리케이션을 종결시키는 것을 포함하는 동작들을 수행하도록 구성되는, 무선 통신 디바이스.
  28. 프로세서-실행가능 소프트웨어 명령들이 저장된 비-일시적인 프로세서-판독가능 저장 매체로서,
    상기 프로세서-실행가능 소프트웨어 명령들은 프로세서로 하여금,
    중재기를 통해, 하나를 초과하는 애플리케이션을 동시에 인보크하는 통지 이벤트를 수신하는 것에 응답하여, 미리 결정된 기준들에 기초하여 무선 통신 디바이스의 디스플레이를 제어하는 복수의 애플리케이션들 중의 제 1 애플리케이션을 결정하는 것;
    상기 중재기를 통해, 상기 제 1 애플리케이션이 상기 디스플레이를 제어하는 것으로 결정하는 것에 응답하여, 상기 복수의 애플리케이션들에서의 상기 제 1 애플리케이션으로부터 상기 복수의 애플리케이션들에서의 제 2 애플리케이션으로의 상기 디스플레이의 제어에 있어서의 변경을 검출하는 것;
    상기 디스플레이의 상기 제어에 있어서의 상기 검출된 변경 전에 수신된 제 1 입력과, 상기 디스플레이의 상기 제어에 있어서의 상기 검출된 변경 후에 수신된 제 2 입력을 식별하는 것;
    상기 제 1 입력이 상기 디스플레이의 상기 제어에 있어서의 상기 검출된 변경의 제 1 시간 문턱 내에 수신되었는지 여부를 결정하는 것;
    상기 제 2 입력이 상기 디스플레이의 상기 제어에 있어서의 상기 검출된 변경의 제 2 시간 문턱 내에 수신되었는지 여부를 결정하는 것; 및
    상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되지 않았거나 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신되지 않은 것으로 결정하는 것에 응답하여, 상기 제 2 입력을 상기 제 2 애플리케이션과 연관시키는 것을 포함하는 동작들을 수행하게 하도록 구성되는, 비-일시적인 프로세서-판독가능 저장 매체.
  29. 제 28 항에 있어서,
    상기 제 1 입력 및 상기 제 2 입력은 양자 모두, 터치 입력들, 텍스트 입력들, 발성된 입력들, 또는 시각적 입력들 중의 하나인, 비-일시적인 프로세서-판독가능 저장 매체.
  30. 제 28 항에 있어서,
    상기 저장된 프로세서-실행가능 소프트웨어 명령들은 상기 프로세서로 하여금, 상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제 2 입력을 상기 제 1 애플리케이션과 연관시키는 것을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비-일시적인 프로세서-판독가능 저장 매체.
  31. 제 28 항에 있어서,
    상기 저장된 프로세서-실행가능 소프트웨어 명령들은 상기 프로세서로 하여금,
    상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제 2 입력을 상기 제 1 애플리케이션 및 상기 제 2 애플리케이션 중의 하나와 연관시키기 위한 사용자 선택 입력을 요청하는 프롬프트를 렌더링하는 것;
    사용자 인터페이스를 통해 상기 사용자 선택 입력을 수신하는 것; 및
    상기 수신된 사용자 선택 입력에 기초하여 상기 제 2 입력을 상기 제 1 애플리케이션 및 상기 제 2 애플리케이션 중의 하나와 연관시키는 것을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비-일시적인 프로세서-판독가능 저장 매체.
  32. 제 31 항에 있어서,
    상기 제 1 입력은 구어 입력이고;
    상기 프롬프트는 제 2 사운드이고; 그리고
    상기 저장된 프로세서-실행가능 소프트웨어 명령들은 상기 프로세서로 하여금, 상기 디스플레이의 상기 제어에 있어서의 상기 변경을 검출하기 이전에 제 1 사운드를 렌더링하는 것을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비-일시적인 프로세서-판독가능 저장 매체.
  33. 제 28 항에 있어서,
    상기 저장된 프로세서-실행가능 소프트웨어 명령들은 상기 프로세서로 하여금,
    상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제 1 입력 및 상기 제 2 입력의 내용을 평가하는 것;
    상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제어에 있어서의 상기 검출된 변경에 관련하여 상기 제 2 애플리케이션의 착수 시간을 평가하는 것; 및
    상기 평가된 내용 및 상기 평가된 착수 시간 중의 적어도 하나에 기초하여 상기 제 2 입력을 상기 제 1 애플리케이션 또는 상기 제 2 애플리케이션과 연관시키는 것을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비-일시적인 프로세서-판독가능 저장 매체.
  34. 제 33 항에 있어서,
    상기 내용은 문법, 철자, 구두법, 포맷, 맥락, 및 해독된 의미 중의 적어도 하나인, 비-일시적인 프로세서-판독가능 저장 매체.
  35. 제 28 항에 있어서,
    상기 제 2 입력은 터치 입력이고, 상기 저장된 프로세서-실행가능 소프트웨어 명령들은 상기 프로세서로 하여금,
    상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제 2 입력에 대응하는 상기 제 2 애플리케이션의 제 2 사용자 인터페이스 엘리먼트를 식별하는 것;
    상기 제 2 애플리케이션의 상기 식별된 제 2 사용자 인터페이스 엘리먼트가 상기 제 1 애플리케이션의 제 1 사용자 인터페이스 엘리먼트와 일치하는지 여부를 결정하는 것; 및
    상기 식별된 제 2 사용자 인터페이스 엘리먼트가 상기 제 1 사용자 인터페이스 엘리먼트와 일치하는 것으로 결정하는 것에 응답하여, 상기 제 2 입력을 상기 제 1 애플리케이션과 연관시키는 것을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비-일시적인 프로세서-판독가능 저장 매체.
  36. 프로세서-실행가능 소프트웨어 명령들이 저장된 비-일시적인 프로세서-판독가능 저장 매체로서,
    상기 프로세서-실행가능 소프트웨어 명령들은 프로세서로 하여금,
    중재기를 통해, 하나를 초과하는 애플리케이션을 동시에 인보크하는 통지 이벤트를 수신하는 것에 응답하여, 미리 결정된 기준들에 기초하여 무선 통신 디바이스의 디스플레이를 제어하는 복수의 애플리케이션들 중의 제 1 애플리케이션을 결정하는 것;
    상기 복수의 애플리케이션들 중의 제 2 애플리케이션이, 상기 복수의 애플리케이션들 중의 상기 제 1 애플리케이션이 상기 디스플레이를 제어한다는 상기 중재기를 통한 상기 결정을 따르지 않았는지 여부를 결정하는 것; 및
    상기 복수의 애플리케이션들 중의 상기 제 2 애플리케이션이 따르지 않은 것으로 결정하는 것에 응답하여, 상기 제 2 애플리케이션을 종결시키는 것을 포함하는 동작들을 수행하게 하도록 구성되는, 비-일시적인 프로세서-판독가능 저장 매체.
KR1020177001579A 2013-09-13 2014-09-15 사용자 인터페이스의 포어그라운드 액세스의 결정론적 제어를 가지는 무선 통신 디바이스 KR20170010447A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/026,159 US9367214B2 (en) 2008-06-05 2013-09-13 Wireless communication device having deterministic control of foreground access of the user interface
US14/026,159 2013-09-13
PCT/US2014/055567 WO2015039000A1 (en) 2013-09-13 2014-09-15 Wireless communication device having deterministic control of foreground access of the user interface

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020167007714A Division KR20160055163A (ko) 2013-09-13 2014-09-15 사용자 인터페이스의 포어그라운드 액세스의 결정론적 제어를 가지는 무선 통신 디바이스

Publications (1)

Publication Number Publication Date
KR20170010447A true KR20170010447A (ko) 2017-01-31

Family

ID=51660605

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020177001579A KR20170010447A (ko) 2013-09-13 2014-09-15 사용자 인터페이스의 포어그라운드 액세스의 결정론적 제어를 가지는 무선 통신 디바이스
KR1020167007714A KR20160055163A (ko) 2013-09-13 2014-09-15 사용자 인터페이스의 포어그라운드 액세스의 결정론적 제어를 가지는 무선 통신 디바이스

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020167007714A KR20160055163A (ko) 2013-09-13 2014-09-15 사용자 인터페이스의 포어그라운드 액세스의 결정론적 제어를 가지는 무선 통신 디바이스

Country Status (5)

Country Link
EP (1) EP3044666A1 (ko)
JP (1) JP2016539432A (ko)
KR (2) KR20170010447A (ko)
CN (1) CN105531671A (ko)
WO (1) WO2015039000A1 (ko)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105204743A (zh) 2015-09-28 2015-12-30 百度在线网络技术(北京)有限公司 用于语音和视频通讯的交互控制方法及装置
KR102060995B1 (ko) * 2016-06-12 2019-12-31 애플 인크. 제어가능한 외부 디바이스들을 관리하기 위한 사용자 인터페이스
CN108099818B (zh) * 2016-11-25 2020-12-25 比亚迪股份有限公司 车辆配置信息的自学习方法和自学习***以及车辆
KR102405752B1 (ko) * 2017-08-23 2022-06-08 삼성전자주식회사 어플리케이션 프로그램의 권한을 제어하는 방법 및 전자 장치
JP7271921B2 (ja) * 2018-11-29 2023-05-12 株式会社リコー 情報処理端末、プログラム、リソース予約システム、制御方法
CN109739300B (zh) * 2018-12-25 2020-10-30 维沃移动通信有限公司 一种天线控制方法及终端
CN112262370A (zh) * 2019-05-06 2021-01-22 谷歌有限责任公司 响应于语音命令在应用上渲染视觉组件
US11861417B2 (en) 2019-10-09 2024-01-02 Nippon Telegraph And Telephone Corporation Operation support system, operation support method, and operation support program
CN111611040A (zh) * 2020-05-19 2020-09-01 延锋伟世通电子科技(上海)有限公司 一种低配置车载***的显示控制方法、***、介质及终端
CN112380014A (zh) * 2020-11-17 2021-02-19 莫雪华 基于大数据的***资源分配***及方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59114631A (ja) * 1982-12-22 1984-07-02 Hitachi Ltd 端末制御装置
US4794386A (en) * 1986-04-11 1988-12-27 Profit Technology, Inc. Data integrator for video display including windows
US6941160B2 (en) * 2000-11-30 2005-09-06 Sanyo Electric Co., Ltd. Dual display portable telephone device and allocation means for display process thereof
JP2003005735A (ja) * 2001-06-22 2003-01-08 Sanyo Electric Co Ltd 携帯機器
JP3653467B2 (ja) * 2000-11-30 2005-05-25 三洋電機株式会社 携帯型電話機
JP2004005213A (ja) * 2002-05-31 2004-01-08 Toshiba Corp 情報処理装置
EP1387593A3 (en) * 2002-07-31 2005-06-15 Matsushita Electric Industrial Co., Ltd. Information processing terminal and information processing method
US9207717B2 (en) * 2010-10-01 2015-12-08 Z124 Dragging an application to a screen using the application manager
US8555201B2 (en) * 2008-06-05 2013-10-08 Qualcomm Incorporated Wireless communication device having deterministic control of foreground access of the user interface
JP5137781B2 (ja) * 2008-10-30 2013-02-06 株式会社エヌ・ティ・ティ・ドコモ 移動機及びアプリケーションの切替方法
US8856691B2 (en) * 2009-05-29 2014-10-07 Microsoft Corporation Gesture tool
US20110239142A1 (en) * 2010-03-25 2011-09-29 Nokia Corporation Method and apparatus for providing content over multiple displays
US10019216B2 (en) * 2010-04-07 2018-07-10 Lenovo Innovations Limited (Hong Kong) Information processing terminal and control method thereof
CN102662514B (zh) * 2012-03-30 2017-03-29 中兴通讯股份有限公司 一种控制触摸屏的方法和移动终端

Also Published As

Publication number Publication date
EP3044666A1 (en) 2016-07-20
JP2016539432A (ja) 2016-12-15
CN105531671A (zh) 2016-04-27
KR20160055163A (ko) 2016-05-17
WO2015039000A1 (en) 2015-03-19

Similar Documents

Publication Publication Date Title
US9367214B2 (en) Wireless communication device having deterministic control of foreground access of the user interface
KR20170010447A (ko) 사용자 인터페이스의 포어그라운드 액세스의 결정론적 제어를 가지는 무선 통신 디바이스
US11388285B2 (en) Devices and methods of providing response message in the devices
TWI602071B (zh) 訊息傳遞之方法、非暫時性電腦可讀儲存媒體及電子裝置
US20190268418A1 (en) Device and method of controlling the device
US8819277B2 (en) System and method for delivering alerts
KR20210134675A (ko) 사용자 시연을 통하여 명령들을 학습하고 실행 가능하게 하기 위한 방법 및 시스템
US11652857B2 (en) Computerized system and method for video conferencing priority and allocation using mobile edge computing
US9436478B2 (en) Method for setting a value of options of operational environment in a user device and user device adapted thereto
US20140007115A1 (en) Multi-modal behavior awareness for human natural command control
US9588983B2 (en) Data classification for adaptive synchronization
WO2022057393A1 (zh) 事件处理方法、装置、存储介质、移动终端及电脑
US20150161253A1 (en) Contextual display apparatus and methods
US20170013118A1 (en) Electronic device and notification method thereof
CN116339672A (zh) 一种音频播放方法及相关装置
WO2023024894A1 (zh) 一种多设备同步播放方法及装置
US20110161971A1 (en) Method and Data Processing Device for Processing Requests
CN117806782A (zh) 线程调度方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
A107 Divisional application of patent
WITN Withdrawal due to no request for examination