KR20170010447A - Wireless communication device having deterministic control of foreground access of the user interface - Google Patents
Wireless communication device having deterministic control of foreground access of the user interface Download PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G06F9/4443—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
- H04M1/72409—User 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/72415—User 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—
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M2250/00—Details of telephonic subscriber devices
- H04M2250/12—Details of telephonic subscriber devices including a sensor for measuring a physical value, e.g. temperature or motion
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M2250/00—Details of telephonic subscriber devices
- H04M2250/22—Details 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
컴퓨터 플랫폼 상에 상주하는 하나 이상의 애플리케이션들, 무선 통신 인터페이스, 디스플레이, 및 적어도 디스플레이 상에 나타나는 사용자 인터페이스를 가지는 무선 통신 디바이스. 컴퓨터 플랫폼 상에 상주하는 하나 이상의 애플리케이션들 및/또는 중재기는, 사용자 인터페이스들이 디스플레이의 제어를 위하여 경쟁할 때, 미리 결정된 기준들에 기초하여, 컴퓨터 플랫폼 상에 상주하는 하나 이상의 애플리케이션들 중의 어느 사용자 인터페이스가 디스플레이를 제어하는지를 결정할 수도 있다. 또 다른 실시형태에서, 어느 애플리케이션이 디스플레이를 제어한다는 결정에 따르지 않는 애플리케이션은 종결될 수도 있다. 방법은, 어느 애플리케이션이 무선 통신 디바이스의 복수의 디스플레이들 중의 디스플레이를 제어할 수도 있는지를 결정하도록 수행될 수도 있다. 방법은, 디스플레이의 제어의 변경이 있을 때에 사용자 입력 데이터를 애플리케이션들과 연관시키도록 수행될 수도 있다.A wireless communication device having one or more applications resident on a computer platform, a wireless communication interface, a display, and at least a user interface appearing on the display. One or more applications and / or arbiters residing on the computer platform may be configured to determine which user interface of one or more applications resident on the computer platform based on predetermined criteria when the user interfaces compete for control of the display Lt; / RTI > controls the display. In yet another embodiment, an application that does not comply with a decision that an application controls the display may be terminated. The method may be performed to determine which application may control the display of the plurality of displays of the wireless communication device. The method may be performed to associate user input data with applications when there is a change in control of the display.
Description
관련 출원들Related Applications
본 출원은 2008 년 6 월 5 일자로 출원된 "WIRELESS COMMUNICATION DEVICE HAVING DETERMINISTIC CONTROL OF FOREGROUND ACCESS OF THE USER INTERFACE (사용자 인터페이스의 포어그라운드 액세스의 결정론적 제어를 가지는 무선 통신 디바이스)" 라는 명칭의 미국 가출원 제 12/134,129 호의 일부계속 출원이고, 그 전체 내용들은 참조에 의해 본원에 편입된다.[0001] This application claims the benefit of U.S. Provisional Patent Application entitled " WIRELESS COMMUNICATION DEVICE HAVING DETERMINISTIC CONTROL OF FORGOING ACCESS OF THE USER INTERFACE " filed June 5, 2008, entitled " Wireless Communication Device with Deterministic Control of Foreground Access in a User Interface. &Quot; 12 / 134,129, the entire contents of which are incorporated herein by reference.
1. 발명의 분야1. Field of the Invention
본 발명은 휴대용 무선 통신 디바이스들에 관한 것이다. 더욱 구체적으로, 본 발명은, 상주 애플리케이션 (resident application) 들의 어느 사용자 인터페이스가 디바이스의 디스플레이를 제어하는지를 결정론적으로 제어할 수 있는 무선 통신 디바이스에 관한 것이다.The present invention relates to portable wireless communication devices. More specifically, the present invention relates to a wireless communication device capable of deterministically controlling which user interface of resident applications controls the display of the device.
2. 관련 기술의 설명2. Description of Related Technology
최신 무선 통신 네트워크들에서, 무선 통신 디바이스들의 다수는, 컴퓨터 플랫폼 상에서 개별적으로 또는 병렬로 실행될 수 있는 오퍼레이팅 시스템 (operating system) 들 및 소프트웨어 애플리케이션들을 갖는 상주 컴퓨터 플랫폼들을 가진다. 소프트웨어 애플리케이션들은, 무선 통신 디바이스의 상주 디스플레이 (resident display) 상에서 종종 디스플레이되는, 무선 통신 디바이스를 위한 상주 사용자 인터페이스 (resident user interface) 의 제어를 위하여 경쟁할 수 있고, 몇몇 문제들은 사용자 인터페이스의 제어를 장악하는 것을 시도하는 실행 중인 애플리케이션들의 충돌로부터 기인할 수 있다.In modern wireless communication networks, many of the wireless communication devices have resident computer platforms with operating systems and software applications that can be executed individually or in parallel on a computer platform. Software applications may compete for control of a resident user interface for a wireless communication device, which is often displayed on a resident display of a wireless communication device, and some problems may take control of the user interface From the collision of running applications trying to do so.
예를 들어, 이벤트들을 다른 상주 애플리케이션들로 전송하기 위한 통지 메커니즘을 갖는 오퍼레이팅 시스템에서, 오퍼레이팅 시스템은 전형적으로, 착신 통신들의 수신, 다양한 애플리케이션들의 실행, 및 상주 하드웨어 컴포넌트들의 스테이터스 (status) 와 같은 이벤트들을 다수의 소프트웨어 애플리케이션들로 브로드캐스팅하기 위하여 통지들을 이용할 수도 있다. 상주 소프트웨어 애플리케이션들은 통상적인 오퍼레이팅 시스템 애플리케이션-프로그래밍 인터페이스 ("application-programming interface; API") 를 이용하여 통지들에 대하여 등록할 수 있다. 또한, 상주 소프트웨어 애플리케이션은 "통지" 클래스를 구현할 수도 있고, 통지들을 의도된 바와 같이 다른 소프트웨어 애플리케이션들로 전송할 수도 있다. 일단 애플리케이션이 이벤트를 수신하면, 상주 소프트웨어 애플리케이션은 전형적으로 자유롭게, 작동하고 API 상의 포어그라운드 (foreground) 에 도달한다.For example, in an operating system having a notification mechanism for sending events to other resident applications, the operating system typically provides an event, such as reception of incoming communications, execution of various applications, and status of resident hardware components, Lt; RTI ID = 0.0 > software applications. ≪ / RTI > Resident software applications may register for notifications using a conventional operating system application-programming interface (API). In addition, the resident software application may implement the "notification" class and may send notifications to other software applications as intended. Once the application receives the event, the resident software application typically runs freely and reaches the foreground on the API.
특정 이벤트를 처리할 수 있는 다수의 애플리케이션들이 있고, 그 애플리케이션들이 모두 UI 의 포어그라운드에 도달하는 것을 원할 경우에는, 하나의 문제가 발생한다. 이것은, 각각의 애플리케이션이 포어그라운드에 도달하는 것을 시도하는 스래싱 (thrashing) 및 바람직하지 않은 사용자 거동을 야기시킬 수 있고, 이에 따라, 오퍼레이팅 시스템은 임의의 하나의 애플리케이션이 UI 에서 맨 위에 머무르지 않게 할 수도 있다. 이 문제에 대한 하나의 종래 기술의 해결책은 브로드캐스팅된 이벤트 모델의 결과로서, 포어그라운드 스래싱을 간단하게 허용하는 것이었다. 그러나, 애플리케이션들은 이들이 UI 상에서 장악하고 디스플레이하는 임의의 특정된 순서를 가지므로, UI 스래싱을 간단하게 허용하는 것은 바람직하지 않으며, 높은 우선순위의 애플리케이션들은 제어를 위하여 낮은 우선순위의 애플리케이션들과 경합하게 된다.If there are multiple applications that can handle a particular event, and all of those applications want to reach the foreground of the UI, then one problem arises. This may lead to thrashing and undesirable user behavior, where each application tries to reach the foreground, so that the operating system will not allow any one application to stay on top of the UI You may. One prior art solution to this problem was to simply allow foreground thrashing as a result of the broadcasted event model. However, it is not desirable for applications to simply allow UI thrashing because they have any specific order in which they take control and display on the UI, and high priority applications are not content with low priority applications .
그러므로, 다수의 애플리케이션들이 동시에 인보크되고 UI 의 제어를 위하여 경쟁할 경우에, 복수의 상주 애플리케이션들 중의 어느 것이 UI 의 제어를 가질 수도 있는지를 제어하기 위하여 무선 통신 디바이스를 위한 시스템 및 방법을 제공하는 것이 유리할 것이다. 이러한 시스템 및 방법은 제어를 결정함에 있어서 상당한 디바이스 자원들을 사용하지 않으면서, 어느 애플리케이션이 UI 를 가질 수도 있는지를 우선순위화할 수 있어야 한다. 이에 따라, 본 발명은 주로, UI 의 상주 애플리케이션 제어를 결정하는 무선 통신 디바이스의 이러한 시스템 및 방법에 대한 것이다.Therefore, it would be desirable to provide a system and method for a wireless communication device to control which of a plurality of resident applications may have control of the UI when multiple applications are simultaneously invoked and competing for control of the UI Would be advantageous. Such systems and methods should be able to prioritize which applications may have a UI, without using significant device resources in determining control. Accordingly, the present invention is primarily directed to such systems and methods of wireless communication devices that determine resident application control of the UI.
간단히 설명하면, 로컬 컴퓨터 플랫폼 상에 상주하는 하나 이상의 애플리케이션들을 가지며, 적어도 무선 통신 인터페이스 및 디스플레이를 포함하는 무선 통신 디바이스가 본원에서 제공된다. 각각의 애플리케이션은 사용자와 상호작용하기 위하여 이용하는 사용자 인터페이스를 가진다. 컴퓨터 플랫폼 상에 상주하는 중재기 애플리케이션 (arbiter application) 은, 우선순위화 방식, 가장 최근에 이용된 알고리즘과 같은 미리 결정된 기준들에 기초하여, 다수의 애플리케이션들을 인보크하는 이벤트의 성질에 기초하여, 어느 애플리케이션이 그 사용자 인터페이스를 포어그라운드에 가져갈 수도 있는지를 제어한다.Briefly described, a wireless communication device having one or more applications residing on a local computer platform and including at least a wireless communication interface and a display is provided herein. Each application has a user interface that it uses to interact with the user. An arbiter application residing on a computer platform may be configured to perform a plurality of applications based on the nature of the event being invoked, based on predetermined criteria, such as prioritization schemes, most recently used algorithms, Control which application can take its user interface to the foreground.
하나의 실시형태에서, 무선 통신 디바이스의 컴퓨터 플랫폼 상의 상주 애플리케이션들의 어느 사용자 인터페이스가 디스플레이를 제어하는지를 결정하는 방법으로서, 상기 사용자 인터페이스는 적어도, 무선 통신 디바이스의 디스플레이 상에 나타나며, 상기 사용자 인터페이스를 통해, 무선 통신 디바이스의 사용자가 상주 애플리케이션들과 상호작용하는, 상기 방법은, 무선 통신 디바이스의 디스플레이 상에서 사용자 인터페이스를 디스플레이하는 단계로서, 여기서, 상기 디스플레이는 컴퓨터 플랫폼 상에 상주하는 하나 이상의 애플리케이션들의 사용자 인터페이스에 의해 선택적으로 제어되도록 구성되는, 상기 디스플레이하는 단계, 그 다음으로, 컴퓨터 플랫폼 상에 상주하는 중재기에서, 디스플레이를 제어하기 위한 상주 애플리케이션들 중의 하나 이상으로부터 요청을 수신하는 단계, 및 중재기에서, 미리 결정된 기준들에 기초하여, 하나 이상의 상주 애플리케이션들의 사용자 인터페이스들의 어느 애플리케이션이 사용자 인터페이스를 제어하는지를 결정하는 단계를 포함하거나, 하나 이상의 상주 애플리케이션들이 디스플레이의 제어의 우선순위를 표시하는 우선순위 데이터를 포함할 경우, 하나 이상의 상주 애플리케이션들은 어느 애플리케이션의 어느 사용자 인터페이스가 디스플레이를 제어하는지를 결정할 수도 있다.In one embodiment, a method for determining which user interface of resident applications on a computer platform of a wireless communication device controls the display, said user interface appearing on at least a display of the wireless communication device, The method of interacting with resident applications of a user of a wireless communication device comprising the steps of: displaying a user interface on a display of a wireless communication device, wherein the display is in a user interface of one or more applications residing on a computer platform , And then, in an arbitrator resident on the computer platform, the display of the resident applications for controlling the display Receiving at least one request from one or more resident applications; and determining, at the arbiter, which application of user interfaces of the one or more resident applications controls the user interface based on predetermined criteria, When including priority data indicating the priority of control of the display, one or more resident applications may determine which user interface of which application controls the display.
또 다른 실시형태에서, 복수의 디스플레이의 각각의 제어를 무선 통신 디바이스 상에 상주하는 복수의 애플리케이션들 중의 애플리케이션에 배정하는 방법은, 하나를 초과하는 애플리케이션을 동시에 인보크하는 통지 이벤트를 수신하는 것에 응답하여, 미리 결정된 기준들에 기초하여, 복수의 디스플레이들 중의 하나를 제어하는 복수의 애플리케이션들 중의 제 1 애플리케이션을 중재기를 통해 결정하는 단계, 제 1 애플리케이션이 복수의 디스플레이들 중의 하나를 제어한다는 중재기를 통한 결정에 응답하여, 복수의 애플리케이션들 중의 제 2 애플리케이션에 관련 있는 액티비티 (activity) 가 검출되는지 여부를 결정하는 단계, 제 2 애플리케이션에 관련 있는 액티비티를 검출하는 것에 응답하여, 복수의 디스플레이들 중의 실행가능한 디스플레이들의 리스트를 제 2 애플리케이션에 대한 우선순위의 순서로 순서화하는 단계, 선택된 디스플레이가 제 3 애플리케이션에 의해 이용 중인지 여부를 결정하는 단계, 및 선택된 디스플레이가 제 3 애플리케이션에 의해 이용 중이지 않은 것으로 결정하는 것에 응답하여, 선택된 디스플레이의 포어그라운드의 제어를 배정하는 플래그 (flag) 를 제 2 애플리케이션으로 전송하는 단계를 포함할 수도 있다.In another embodiment, a method of assigning control of each of a plurality of displays to an application in a plurality of applications residing on a wireless communication device includes receiving a notification event simultaneously invoking more than one application Determining, via an arbiter, a first one of a plurality of applications controlling one of the plurality of displays, based on predetermined criteria, determining that the first application controls one of the plurality of displays Determining, in response to the determining via the first application, whether an activity associated with a second application of the plurality of applications is detected; in response to detecting an activity associated with the second application, Possible displays Ordering the list of preferences for the second application in order of priority, determining whether the selected display is being used by the third application, and determining that the selected display is not being used by the third application In response, the method may include transmitting a flag to the second application to assign control of the foreground of the selected display.
또 다른 실시형태에서, 사용자 의도에 따라 사용자 입력 데이터를 무선 통신 디바이스 상에 상주하는 복수의 애플리케이션들과 연관시키는 방법은, 하나를 초과하는 애플리케이션을 동시에 인보크하는 통지 이벤트를 수신하는 것에 응답하여, 미리 결정된 기준들에 기초하여, 무선 통신 디바이스의 디스플레이를 제어하는 복수의 애플리케이션들 중의 제 1 애플리케이션을 중재기를 통해 결정하는 단계, 제 1 애플리케이션이 디스플레이를 제어한다는 중재기를 통한 결정에 응답하여, 복수의 애플리케이션들에서의 제 1 애플리케이션으로부터 복수의 애플리케이션들에서의 제 2 애플리케이션으로의 디스플레이의 제어에 있어서의 변경을 검출하는 단계, 디스플레이의 제어에 있어서의 검출된 변경 전에 수신된 제 1 입력과, 디스플레이의 제어에 있어서의 검출된 변경 후에 수신된 제 2 입력을 식별하는 단계, 제 1 입력이 디스플레이의 제어에 있어서의 검출된 변경의 제 1 시간 문턱 내에 수신되었는지 여부를 결정하는 단계, 제 2 입력이 디스플레이의 제어에 있어서의 검출된 변경의 제 2 시간 문턱 내에 수신되었는지 여부를 결정하는 단계, 및 제 1 입력이 제 1 시간 문턱 내에 수신되지 않았거나 제 2 입력이 제 2 시간 문턱 내에 수신되지 않은 것으로 결정하는 것에 응답하여, 제 2 입력을 제 2 애플리케이션과 연관시키는 단계를 포함할 수도 있다.In another embodiment, a method of associating user input data with a plurality of applications resident on a wireless communication device in response to a user's intention includes, in response to receiving a notification event simultaneously invoking more than one application, Determining, based on predetermined criteria, a first application of the plurality of applications controlling the display of the wireless communication device, in response to the determination through the arbiter that the first application controls the display, Detecting a change in the control of the display from the first application in the applications to the second application in the plurality of applications, detecting a first input received prior to the detected change in the control of the display, In control Determining whether a first input has been received within a first time threshold of a detected change in the control of the display, determining whether a second input is received in the control of the display Determining whether the first input has not been received within the first time threshold or that the second input has not been received within the second time threshold, , And associating a second input with a second application.
또 다른 실시형태에서, 무선 통신 디바이스 상에 상주하는 복수의 애플리케이션들을 제어하는 방법은, 관리상 특권들을 가지는 중재기 애플리케이션과 같은 중재기를 통해, 하나를 초과하는 애플리케이션을 동시에 인보크하는 통지 이벤트를 수신하는 것에 응답하여, 미리 결정된 기준들에 기초하여 무선 통신 디바이스의 디스플레이를 제어하는 복수의 애플리케이션들 중의 제 1 애플리케이션을 결정하는 단계, 복수의 애플리케이션들 중의 제 2 애플리케이션이 복수의 애플리케이션들 중의 제 1 애플리케이션이 디스플레이를 제어한다는 중재기를 통한 결정을 준수하지 않았는지 여부를 결정하는 단계, 및 복수의 애플리케이션들 중의 제 2 애플리케이션이 준수하지 않은 것으로 결정하는 것에 응답하여, 제 2 애플리케이션을 종결시키는 단계를 포함할 수도 있다.In another embodiment, a method for controlling a plurality of applications resident on a wireless communication device includes receiving, via an arbiter, such as an arbiter application having administrative privileges, a notification event invoking more than one application concurrently Determining a first one of the plurality of applications that controls the display of the wireless communication device based on predetermined criteria, determining whether a second one of the plurality of applications is a first application of the plurality of applications Determining whether the decision via the arbiter to control the display has not been complied with, and terminating the second application in response to determining that the second one of the plurality of applications is not compliant May.
그러므로, 본 시스템 및 방법은, 디스플레이의 제어에서의 스래싱을 최소화하기 위하여, 인보크 이벤트로 야기되는 바와 같이, 복수의 인보크된 또는 액티비티인 상주 UI 애플리케이션들 중의 어느 것이 디스플레이의 제어를 가질 수도 있는지를 제어하기 위한 능력을 갖는 무선 통신 디바이스를 제공한다는 점에서 유리하다. 다양한 무선 환경들에서의 구현을 허용하는 디스플레이의 애플리케이션 제어를 우선순위화하기 위한 몇몇 실시형태들이 있다. 따라서, 디스플레이의 제어의 결정은 디스플레이의 제어를 중재할 시에 상당한 디바이스 프로세싱 자원들을 들여야 할 필요 없이 달성될 수도 있다.Therefore, the present system and method may also have control of the display, either as a plurality of invoked or activity resident UI applications, as caused by an invoke event, to minimize thrashing in the control of the display The present invention is advantageous in that it provides a wireless communication device with the ability to control whether or not the wireless communication device is capable of operating. There are several embodiments for prioritizing application control of a display that allows implementation in various wireless environments. Thus, the determination of control of the display may be accomplished without having to resort to significant device processing resources when mediating control of the display.
본 발명의 다른 목적들, 특성들, 및 장점들은 도면의 간단한 설명, 발명의 상세한 설명, 및 청구항들의 검토 후에 명백해질 수도 있다.Other objects, features, and advantages of the present invention may become apparent after review of the drawings, a detailed description of the invention, and the claims.
본원에 편입되며 이 명세서의 일부를 구성하는 첨부한 도면들은 발명의 예시적인 실시형태들을 예시하고, 위에서 주어진 일반적인 설명 및 이하에서 주어진 상세한 설명과 함께, 발명의 특징들을 설명하도록 작용한다.
도 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 는 다양한 실시형태와 함께 이용하기 위해 적당한 스마트폰 무선 통신 디바이스의 시스템 블록도이다.BRIEF DESCRIPTION OF THE DRAWINGS The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate exemplary embodiments of the invention and, together with the general description given above and the detailed description given below, serve to explain the features of the invention.
1 is an exemplary diagram of one embodiment of a wireless network in a typical cellular communication configuration having group communication server control communications between wireless communication devices of PTT group members.
2 is a block diagram illustrating a computer platform of a wireless communication device, shown here in conjunction with a push-to-talk (PTT) function.
3A is a block diagram of a wireless communication device resident application that sends an event notification to a plurality of other device-resident applications.
Figure 3b is a block diagram similar to Figure 3a, but the arbiter also receives the event notification and sends a flag to one of the other applications receiving the notification to indicate that the application has priority in controlling the UI do.
4 is a representative illustration of one embodiment of a display of a UI for a wireless communication device having a plurality of competing applications interfaces (APIs) that compete for control of a primary display.
5 is a process flow diagram of one embodiment of a method for an arbiter determining a priority for display control between a plurality of invoked wireless communication device-resident applications.
Figure 6 shows an embodiment of a method for determining a priority for display control between a plurality of invoked wireless communication device-resident applications based on priority data resident in applications seeking control of the display Fig.
Figures 7A-7B are process flow diagrams of methods of an embodiment for a wireless communication device to assign (or mediate) control of the foreground of multiple displays.
8 is a process flow diagram of a method of an embodiment for a wireless communication device to recalculate priorities of multiple displays.
9A is a representative illustration of a display of a user interface for a wireless communication device having a second application that reaches a foreground when the device receives a user input.
9B is a process flow diagram of a method of an embodiment for associating a received user input with a first or second application based on timing information;
10A is a representative illustration of a display of a user interface for a wireless communication device that renders a prompt dialog box in response to a second application reaching foreground when the device receives a user input.
10B is a process flow diagram of a method of an embodiment for associating a received user input with a first or second application based on selection inputs corresponding to a prompt dialog box.
11A is a representative illustration of a display of a user interface for a wireless communication device that renders a prompt dialog box in response to processing a received user input consistent with a second application reaching foreground.
11B is a process flow diagram of a method of an embodiment for associating a received user input with a first or second application based on evaluations of the content of the received user input.
12 is a process flow diagram of a method of an embodiment for associating a received user input with a first or second application based on locations of user interface elements of first and second applications.
13 is a process flow diagram of a method of an embodiment for terminating a non-compliant application in which the wireless communication device has obtained control of the foreground of the wireless communication device as opposed to prioritization by the arbiter.
14 is a system block diagram of a smartphone wireless communication device suitable for use with various embodiments.
다양한 실시형태들은 첨부한 도면들을 참조하여 상세하게 설명될 수도 있다. 가능한 경우, 동일한 참조 번호들은 동일하거나 유사한 부분들을 지칭하기 위하여 도면들의 전반에 걸쳐 이용될 수도 있다. 특정 예들 및 구현들에 대해 행해진 참조들은 예시적인 목적들을 위한 것이고, 발명 또는 청구항들의 범위를 제한하도록 의도된 것은 아니다.Various embodiments may be described in detail with reference to the accompanying drawings. Wherever possible, the same reference numbers may be used throughout the drawings to refer to the same or like parts. References made to specific examples and implementations are for illustrative purposes only and are not intended to limit the scope of the invention or the claims.
이 설명에서, 용어들 "통신 디바이스", "무선 디바이스", "무선 통신 디바이스", "PTT 통신 디바이스", "핸드헬드 디바이스", "이동 디바이스", 및 "핸드셋" 은 상호 교환가능하게 이용된다. 용어들 "호출" 및 "통신" 은 또한 상호 교환가능하게 이용된다. 본원에서 이용된 바와 같은 용어 "애플리케이션" 은 실행가능 및 비-실행가능 (non-executable) 소프트웨어 파일들, 원시 데이터 (raw data), 집합된 데이터 (aggregated data), 및 다른 코드 세그먼트 (code segment) 들을 망라하도록 의도된 것이다. 용어 "예시적" 은, 개시된 엘리먼트 또는 실시형태가 오직 예이며 사용자의 임의의 선호도를 표시하지 않는다는 것을 의미한다. 애플리케이션들 사이의 상호작용의 모든 방법들은, 모든 형태들의 인보크, 실행, 호출, 및 데이터 교환을 포함하기 위하여 본원에서 망라되도록 의도된 것이다. 또한, 몇몇 도면들의 전반에 걸쳐, 유사한 번호들은 유사한 엘리먼트들을 지칭하고, 설명에서 이와 다르게 특정되지 않으면, 관사 "a" 및 "the" 는 복수의 참조들을 포함한다.In this description, the terms "communication device", "wireless device", "wireless communication device", "PTT communication device", "handheld device", "mobile device", and "handset" are used interchangeably . The terms "call" and "communication" are also used interchangeably. The term "application" as used herein includes both executable and non-executable software files, raw data, aggregated data, and other code segments, . The term "exemplary" means that the disclosed element or embodiment is exemplary only and does not indicate any preference of the user. All methods of interaction between applications are intended to be encompassed herein to include all forms of invoke, execution, invocation, and data exchange. Also, throughout the several figures, like numbers refer to like elements, and articles "a" and "the" include a plurality of references unless otherwise specified in the description.
그 전반에 걸쳐, 유사한 번호들이 유사한 엘리먼트들을 나타내는 도면들을 참조하면, 도 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) 로부터의 패킷 데이터 세션들을 요청할 수도 있다.Throughout the drawings, and with reference to the drawings in which like numerals represent like elements, FIG. 1 illustrates an embodiment in which communications have wireless networks in a conventional cellular communication configuration occurring between
그룹 통신 서버 (들) (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 운영자 네트워크 경계들은 본원에서 설명된 바와 같은 데이터의 공유를 억제하거나 금지하지 않는다는 것에 주목해야 한다.Back-office computer devices, such as group communication server (s) 32, are wireless service providers such as
무선 전화 (도 2 에서의 74) 와 같은 셀룰러 전화들 및 이동 통신 디바이스들은 증가된 컴퓨팅 기능들을 갖도록 제조되고 있고, 개인용 컴퓨터들 및 핸드-헬드 PDA 들과 동등해지고 있다. 이 "스마트" 셀룰러 전화들은 소프트웨어 개발자들이 무선 통신 디바이스의 프로세서 상에서 다운로딩가능하고 실행가능한 소프트웨어 애플리케이션들을 만들도록 한다. 셀룰러 전화 (74) 와 같은 무선 통신 디바이스는 웹 페이지 (web page) 들, 애플릿 (applet) 들, 미들렛 (MIDlet) 들, 게임들 및 데이터와 같은 많은 타입들의 애플리케이션들을 다운로딩할 수도 있다. 통신 그룹을 지정하였던 무선 통신 디바이스들에서, 무선 통신 디바이스는 세트의 다른 구성원과 직접적으로 접속할 수도 있고, 음성 및 데이터 통신에 참여할 수도 있다. 그러나, 이러한 모든 직접 통신들은 그룹 통신 서버 (32) 를 통해, 또는 그룹 통신 서버 (32) 의 제어 시에 발생할 수도 있다. 디바이스들의 모든 데이터 패킷들은 그룹 통신 서버 (32) 자체를 통해 반드시 이동해야 할 필요는 없지만, 그룹 통신 서버 (32) 는 전형적으로, 통신을 궁극적으로 제어할 수 있는데, 그것은 전형적으로 인식하고 있는 유일한 캐리어 네트워크 (54) 컴포넌트일 수도 있고, 및/또는 통신 그룹의 구성원들의 아이덴티티 (identity) 를 취출 (retrieve) 할 수도 있거나, 통신 그룹 (12) 의 구성원들의 아이덴티티를 또 다른 컴퓨터 디바이스로 보낼 수도 있기 때문이다. 서버-측 LAN (50) 상에, 또는 무선 네트워크 또는 일반적으로 인터넷에 걸쳐 상주하는 컴퓨터 컴포넌트들의 수는 제한되지 않는다는 것을 인식해야 한다.Cellular phones and mobile communication devices, such as wireless telephones (74 in FIG. 2), are being manufactured with increased computing capabilities and are becoming comparable to personal computers and hand-held PDAs. These "smart" cellular phones allow software developers to create downloadable and executable software applications on the processor of the wireless communication device. A wireless communication device, such as
무선 통신 디바이스들 사이의 음성 통신들에 추가하여, JPEG, TIF 등으로 된 픽처 (picture) 들을 포함하기 위한 그래픽 미디어, MP3, MP4, WAV 등과 같은 오디오 파일들과 같은 다른 미디어가 전송될 수도 있다. 미디어는 또한, 멀티미디어 애플리케이션 (파워포인트 (Powerpoint), MOV 파일 등) 과 같은 스트리밍 미디어일 수도 있다. 그룹-지향된 (group-directed) 미디어는 또한, 호스팅된 게임 또는 사설 전자게시판 (private bulletin board) 과 같이, 무선 통신 네트워크 상의 또 다른 컴퓨터 디바이스 상의 스트리밍 미디어 또는 대화형 세션 (private bulletin board) 일 수도 있다. 또한, PTT 통신들에 대하여, 그룹-지향된 통신은 실질적으로 실시간, 또는 지연상태에서, 통신 그룹의 멤버들 간의 반이중 (half-duplex) 오디오 및/또는 비디오 회의일 수 있다.In addition to voice communications between wireless communication devices, other media may be transmitted, such as graphics media to include pictures of JPEG, TIF, etc., audio files such as MP3, MP4, WAV, The media may also be streaming media, such as multimedia applications (Powerpoint, MOV files, etc.). The group-directed media may also be a streaming media or private bulletin board on another computer device on the wireless communication network, such as a hosted game or a private bulletin board. have. Further, for PTT communications, the group-directed communication may be half-duplex audio and / or video conferencing between members of the communication group in substantially real-time or delayed state.
도 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.) 소프트웨어이다.Figure 2 illustrates one of the
여기에서 도시된 바와 같이, 무선 통신 디바이스 (74) 는 그래픽 디스플레이 (80) 를 갖는 이동 전화 (74) 일 수도 있지만, 또한, 이동 디바이스 (76) 와 같이, 당해 분야에서 알려진 바와 같은 컴퓨터 플랫폼 (82), 또는 심지어 무선 통신 포털 (wireless communication portal) 을 가지는 별도의 컴퓨터 플랫폼 (82) 을 갖는 임의의 무선 통신 디바이스일 수도 있고, 이와 다르게, 네트워크 또는 인터넷으로의 유선 접속을 가질 수도 있다. 또한, 메모리 (88) 는 판독-전용 또는 랜덤-액세스 메모리 (RAM 및 ROM), EPROM, EEPROM, 플래시 카드들, 또는 컴퓨터 플랫폼들에 공통적인 임의의 메모리로 구성될 수도 있다. 컴퓨터 플랫폼 (82) 은 또한, 메모리 (88) 에서 액티비티로 이용되지 않은 소프트웨어 애플리케이션들의 저장을 위한 로컬 데이터베이스 (90) 를 포함할 수도 있다. 로컬 데이터베이스 (90) 는 전형적으로 하나 이상의 플래시 메모리 셀들로 구성되지만, 자기 매체들, EPROM, EEPROM, 광학 매체들, 테이프, 또는 소프트 또는 하드 디스크와 같이, 당해 분야에서 알려진 바와 같은 임의의 보조 또는 제 3 의 저장 디바이스일 수도 있다. 그래픽 디스플레이 (80) 는 본원에서 더욱 완전히 설명되는 바와 같이 파일 프리뷰 (file preview) 를 포함하기 위하여, 발신 그룹 호출에 대한 정보뿐만 아니라, 그룹-지향된 미디어에 대한 정보도 제시할 수도 있다.As shown herein, the
무선 통신 디바이스 (74) 의 이 실시형태에서, 컴퓨터 플랫폼 (82) 은 또한, 무선 통신 디바이스 (74) 로부터의 직접 통신 채널을 개방할 수도 있는 직접 또는 무선 통신 인터페이스 (92) 를 포함한다. 직접 또는 무선 통신 인터페이스 (92) 는 또한, 무선 통신 디바이스 (74) 로 송신되고 무선 통신 디바이스 (74) 로부터 송신된 음성 및 데이터를 정상적으로 반송하는 무선 통신 디바이스 (74) 를 위한 표준적인 통신 인터페이스의 일부일 수도 있다. 직접 또는 무선 통신 인터페이스 (92) 는 전형적으로, 당해 분야에서 알려진 바와 같이 하드웨어로 구성된다.In this embodiment of the
개략적으로, 무선 통신 디바이스 (74) 는, 무선 통신 인터페이스 (92) 를 또한 포함하는 컴퓨터 플랫폼 (82) 상에 상주하는 하나 이상의 애플리케이션들, 디스플레이 (80), 및 사용자 인터페이스를 가지고, 이러한 사용자 인터페이스는 적어도, (도 4 에서 도시된 사용자 인터페이스 (140) 의 하나의 예와 함께) 디스플레이 (80) 상에 나타나며, 이러한 사용자 인터페이스를 통해, 무선 통신 디바이스 (74) 의 사용자는 컴퓨터 플랫폼 (82) 과 상호작용한다. 각각의 애플리케이션은 사용자 인터페이스를 가지고, 하나의 실시형태에서, 중재기 (도 3b 에서의 128) 는 컴퓨터 플랫폼 (82) 상에 상주할 수도 있고, 미리 결정된 기준들에 기초하여, 하나 이상의 UI 애플리케이션들 중의 어느 애플리케이션이 디스플레이 (80) 를 제어하는지를 결정하도록 구성될 수도 있다. 미리 결정된 기준들의 예들은: 우선순위 리스트; 사용자 인터페이스를 다시 제어하기 위하여, 최후 애플리케이션이 사용자 인터페이스를 제어하도록 하는 것 (가장 최근 이용된 알고리즘); 제어를 결정하는 것이 애플리케이션의 클래스 (class) 에 기초하도록, 클래스를 하나 이상의 애플리케이션들에 배정하는 것; 사용자 인터페이스에서 처리되고 있는 특정 타입의 데이터에 기초하여 사용자 인터페이스의 제어를 허용하는 것; 및 무선 통신 인터페이스 (92) 에서 수신되고 있는 타입의 데이터에 기초하여 제어를 허용하는 것이다. 다른 실시형태들에서, 상주 애플리케이션들은 자체적으로, 중재기 (128) 와 동일한 방식으로 미리 결정된 기준들을 이용하여, 단독으로 또는 중재기 (128) 와 함께 우선순위를 결정할 수도 있다.The
도 3a 는 이벤트 통지들을, UI 애플리케이션 B (102), UI 애플리케이션 C (104), 및 UI 애플리케이션 D (106) 로서 여기에서 도시된 복수의 다른 디바이스-상주 애플리케이션들로 전송하는 무선 통신 디바이스 상주 애플리케이션 (애플리케이션 A) (100) 의 블록도이다. 이들은 동시에 인보크되므로, UI 애플리케이션들 (102, 104, 106) 중의 임의의 것은 이들이 이벤트 통지를 언제 받는지에 따라 (도 4 에서와 같이) 디스플레이 (80) 의 포어그라운드에 도달할 수도 있고, 최악의 경우에는, 디스플레이의 제어의 중재 없이, 애플리케이션들은 서로를 기각하는 것을 계속하여, UI 스래싱을 야기시킬 수도 있다. 그러나, 일단 중재기 (128) 가 도 3b 에서 도시되는 바와 같이 존재하면, 복수의 애플리케이션으로부터의 다수의 동시에, 그리고 잠재적으로 발신 요청들에 관련된 UI 의 제어는, UI 스래싱을 적어도 줄이기 위하여, 바람직하게는 방지하기 위하여 중재기 (128) 에 의해 결정될 수도 있다.3A shows event notifications for a wireless communication device resident application (e. G., A UI application B 102), a
도 3b 는 도 3a 와 유사한 블록도이지만, 중재기 (128) 는 또한, UI 애플리케이션 B (122), UI 애플리케이션 C (124), 및 UI 애플리케이션 D (126) 와 함께, UI 애플리케이션 A (120) 로부터 이벤트 통지를 수신하는 것으로 구체화된다. 중재기 (128) 는 본원에서 추가로 설명되는 바와 같이 미리 결정된 기준들에 기초하여 이벤트 통지가 주어질 경우에 어느 UI 애플리케이션이 포어그라운드에 도달해야 하는지를 결정하거나, 이벤트 통지의 수신 시에 결정을 행할 수도 있다. 다음으로, 중재기 (128) 는 플래그를, 애플리케이션 C (124) 로서 여기에서 도시된, 디스플레이를 제어하기 위한 우선순위를 가지도록 결정된 UI 애플리케이션으로 전송할 수도 있고, 상주 오퍼레이팅 시스템은 중재기 플래그를 갖는 또 다른 애플리케이션이 오퍼레이팅 시스템에서 수신될 때까지, 애플리케이션 C (124) 가 디스플레이를 제어하도록 할 수도 있다. 대안적으로, 포어그라운드에 도달하는 것을 희망하는 각각의 애플리케이션은 디스플레이의 포어그라운드를 취하기 위한 허가에 대하여 중재기 (128) 에 질의할 수도 있다.3B is a block diagram similar to FIG. 3A, but the
도 4 는 UI (또는 UI 애플리케이션) (140) 의 제어를 위하여 경쟁하는 복수의 상주 UI 애플리케이션들과, UI (또는 UI 애플리케이션) (140) 상의 주 디스플레이를 갖는 무선 통신 디바이스 (74) 의 디스플레이의 하나의 실시형태의 대표적인 예시도이다. 여기서, 주 UI (primary UI; 140) 는 "착신 그룹 통신" 인터페이스 (146) 이고, 다른 인터페이스들 (142 및 144) 은 UI 애플리케이션의 백그라운드 (background) 에 남아 있다. 여기에서 도시된 인터페이스들은 "윈도우형 (windowed)" 배열, 사용자 인터페이스들에서의 통상적인 그래픽 인터페이스로 되어 있다. 본원에서 설명된 UI 제어 방법론은 다른 UI 시스템들 및 디스플레이 방식들, 사용자가 컴퓨터 플랫폼 (82) 을 액세스하기 위한 제어 인터페이스들에 동일하게 적용가능하다.Figure 4 illustrates a plurality of resident UI applications competing for control of the UI (or UI application) 140 and one of the displays of the
하나의 실시형태에서, 중재기 (128) 는 애플리케이션들의 프로비저닝된 (provisioned) "우선순위 리스트" 를 사용할 수도 있고, 여기서, 애플리케이션 A (120) 는 클래스 ID 들의 리스트가 아마도, 네트워크 캐리어 또는 다른 엔티티에 의해 프로비저닝되도록 하기 위하여 변경된 그 코드를 가진다. 클래스 ID 들의 이 리스트는 UI (140) 의 포어그라운드에 도달하도록 허용되어야 하는 애플리케이션들의 우선순위의 순서로 프로비저닝된다. 예를 들어, 누군가는 포어그라운드에 도달하기 위하여 애플리케이션 C (124) 가 애플리케이션들 B (122) 또는 D (126) 에 비해 더 높은 우선순위를 가져야 하는 것으로 선택할 수도 있고, 애플리케이션들의 전부에 대한 이벤트의 브로드캐스트 후에, 브로드캐스트는 또한, 이벤트 통지 페이로드에서 애플리케이션 C (124) 에 대한 선택된 클래스 ID 를 열거한다. 애플리케이션들이 이벤트 통지를 수신할 때, 이들은 전형적으로, 그 클래스 ID 가 페이로드에서 전송되는 것과 일치하는지를 검사하고, 일치할 경우, 그것은 포어그라운드에 도달해야 한다. 중재기 (128) 는 이 실시형태에서 UI 제어를 단지 검증할 수도 있고, 클래스 ID 가 각각의 애플리케이션에게 분명할 수도 있으므로, 실제적으로 제어를 승인할 필요가 없다. 그러나, 각각의 상주 애플리케이션은 클래스 ID 들을 이해하도록 구성되어야 할 수도 있으므로, 이 실시형태는 추가적인 오버헤드 (overhead) 를 요구한다.In one embodiment,
UI (140) 의 제어를 결정하기 위한 또 다른 실시형태는, 특정 이벤트 클래스 (경고, 호출, 존재 등) 의 이벤트를 받아들이기 위하여 포어그라운드에 도달하기 위한 최후 애플리케이션이 포어그라운드에 도달하기 위한 다음 애플리케이션이 되도록 하는 것과 같은 간단한 알고리즘을 이용하는 것이다. 이러한 실시형태에서, 애플리케이션 A (120) 는 이벤트를 갖는 최후의 알려진 포어그라운드 애플리케이션 클래스 ID 를 브로드캐스팅할 수도 있고, 수신 애플리케이션은 그 자신의 클래스 ID 를 제안된 최후의 알려진 포어그라운드 애플리케이션의 클래스 ID 와 비교하고 2 개가 일치할 경우에만, UI (140) 의 포어그라운드에 도달하도록 권고받는다. 그러나, 이것은 최후의 알려진 포어그라운드 애플리케이션 (프레시 스타트-업 (fresh start-up)) 이 없었을 경우, 또는 어느 애플리케이션이 최후에 제어 중이었는지 명확하지 않아서, 디폴트 우선순위 클래스가 여전히 이용되어야 할 때의 초기 스래싱과 같은 "에지 케이스 (edge case)" 문제들을 야기시킬 수도 있다.Yet another embodiment for determining control of the
또 다른 실시형태에서, 애플리케이션들의 바람직한 제어는 자동으로 설정된다. 애플리케이션 자체는 특정 이벤트 클래스 (경고, 호출, 존재 등) 의 이벤트를 프로세싱하기 위하여, 자신을 포어그라운드에 도달하기 위한 주 애플리케이션 (primary application) 으로서 등록할 수도 있다. 이러한 실시형태에서, 애플리케이션은 특정 이벤트 클래스에 대한 현재-등록된 애플리케이션을 위한 클래스 ID 를 취출할 수도 있고, 저장된 클래스 ID 를 그 자신의 것으로 겹쳐쓰기할 것인지 여부에 대한 판단을 행할 수도 있다. 어느 것도 저장되지 않을 경우, 애플리케이션은 그 자신의 클래스 ID 를 특정 이벤트 클래스에 대한 주 포어그라운드 애플리케이션 (primary foreground application) 으로서 설정할 수도 있다. 추가의 실시형태에서는, 애플리케이션 A (120) 에서의 MIME-타입들의 리스트의 프로비전 (provision) 과 같이, 인보크되고 있는 이벤트 및 액티비티의 타입에 기초한 프로비저닝된 리스트가 있을 수도 있다. MIME-타입들의 이 세트는 순서대로 프로비저닝될 수도 있고, 애플리케이션 A (120) 는 이벤트들을, 이벤트 통지의 페이로드 내에 포함된 최고 우선순위의 MIME-타입을 갖는 모든 애플리케이션들에 브로드캐스팅할 수도 있다. 애플리케이션들이 이 이벤트를 수신할 때, 이들은 전형적으로, 포함된 MIME-타입이 이들에게 프로비저닝되었던 것과 일치하는지를 확인하고, 이들이 일치할 경우에만 포어그라운드에 도달할 수도 있다. 본질적으로, 이 실시형태는 클래스 ID 들 대신에 MIME-타입들을 이용한다. 그러나, 이 실시형태를 구현하기 위하여, 애플리케이션들은 전형적으로 협력하고, 그 클래스 ID 가 이벤트에서 전송되는 것과 일치하지 않을 경우에 포어그라운드에 전형적으로 도달하지 않으며, 이것은 각각의 모듈에서 추가적인 프로그래밍을 요구한다.In another embodiment, the preferred control of the applications is set automatically. The application itself may register itself as a primary application to reach the foreground in order to process events of a particular event class (alert, call, presence, etc.). In this embodiment, the application may retrieve the class ID for the currently-registered application for a particular event class and may make a determination as to whether to overwrite the stored class ID with its own. If none is stored, an application may set its own class ID as the primary foreground application for a particular event class. In a further embodiment, there may be a provisioned list based on the type of event and activity being invoked, such as the provision of a list of MIME-types in
도 5 는 복수의 인보크된 무선 통신 디바이스-상주 애플리케이션들 사이의 디스플레이 (80) 제어를 위한 우선순위를 결정하는 중재기 (128) 를 위한 방법의 하나의 실시형태의 플로우차트이다. 중재기 (128) 는 블록 (150) (또는 단계 (150)) 에 의해 도시된 이벤트의 통지를 수신하고, 그 다음으로, 판단 블록 (152) 에서 도시된 바와 같이, 하나를 초과하는 애플리케이션이 인보크되는지 여부에 대한 결정이 행해진다. 하나를 초과하는 애플리케이션이 판단 블록 (152) 에서 인보크되지 않을 경우, 종결 블록 (154) 에서 도시된 바와 같이, 중재 프로세스는 종결된다. 이와 다르게, 하나를 초과하는 애플리케이션이 판단 블록 (152) 에서 인보크될 경우, 다음으로, 판단 블록 (156) 에서 도시된 바와 같이, 애플리케이션에 대한 미리 결정된 우선순위가 있는지 여부에 대한 판단이 행해지고, 미리 결정된 우선순위가 있을 경우에는, 종결 블록 (162) 에서 도시된 바와 같이, 중재가 종결된다.5 is a flow chart of one embodiment of a method for an
이와 다르게, 판단 블록 (156) 에서 미리 결정된 우선순위 기준들이 없을 경우, 블록 (158) (또는 단계 (158)) 에서 도시된 바와 같이, 디스플레이 (80) 를 가지기 위한 애플리케이션의 우선순위가 결정되고, 그 다음으로, 블록 (160) (또는 단계 (160)) 에서 도시된 바와 같이, 플래그가 디스플레이 (80) 를 제어하기 위한 우선순위 애플리케이션으로 전송되고, 중재는 종결 블록 (162) 에서 도시된 바와 같이 다시 종결된다. 우선순위는 위에서 기술된 바와 같은 방법론, 또는 상기 방법론들 중의 임의의 것의 조합으로 블록 (158) (또는 단계 (158)) 에서 결정될 수도 있다.Alternatively, if there are no predetermined priority criteria at
도 6 은 디스플레이 (80) 의 제어를 추구하는 애플리케이션들에서 상주하는 우선순위 데이터에 기초하여 복수의 인보크된 무선 통신 디바이스-상주 애플리케이션들 사이의 디스플레이 제어를 위한 우선순위를 결정하기 위한 방법의 하나의 실시형태의 플로우차트이다. 통지 이벤트는 미리 정의된 프로세스 블록 (170) 에 의해 도시된 바와 같이 발생하고, 그 다음으로, 판단 블록 (172) 에서 도시된 바와 같이, 하나를 초과하는 애플리케이션이 인보크되는지 여부에 대한 결정이 행해진다. 하나를 초과하는 애플리케이션이 판단 블록 (172) 에서 인보크되지 않을 경우, 중재 프로세스가 요구되지 않고, 종결 블록 (174) 에서 도시된 바와 같이, 프로세스는 종결된다. 이와 다르게, 하나를 초과하는 애플리케이션이 판단 블록 (172) 에서 인보크될 경우, 그 다음으로, 판단 블록 (176) 에서 도시된 바와 같이, 디스플레이 (80) 를 제어하는 것을 시도하는 애플리케이션들에서 존재하는 미리 결정된 우선순위 데이터가 있는지 여부에 대한 판단이 행해지고, 미리 결정된 우선순위 데이터가 존재하지 않을 경우, 종결 블록 (182) 에서 도시된 바와 같이, 중재가 종결된다. 이와 다르게, 판단 블록 (176) 에서 존재하는 미리 결정된 우선순위 기준들이 있을 경우, 블록 (178) (또는 단계 (178)) 에서 도시된 바와 같이, 디스플레이 (80) 를 가지기 위한 최고 우선순위 애플리케이션이 결정되고, 그 다음으로, 블록 (180) (또는 단계 (180)) 에서 도시된 바와 같이, 플래그가 디스플레이 (80) 를 제어하기 위한 최고 우선순위 애플리케이션으로 전송되고, 종결 블록 (182) 에서 도시된 바와 같이, 프로세스가 다시 종결된다. 대안적으로, 우선순위는 위에서 기술된 바와 같은 방법론, 또는 상기 방법론들 중의 임의의 것의 조합으로 블록 (178) (또는 단계 (178)) 에서 결정될 수도 있다.6 illustrates one method for determining a priority for display control among a plurality of invoked wireless communication device-resident applications based on priority data resident in applications seeking control of
그러므로, 무선 통신 디바이스 (74) 는 무선 통신 디바이스 (74) 의 컴퓨터 플랫폼 (82) 상의 어느 상주 애플리케이션이 그 디스플레이 (80) 를 제어하는지를 결정하는 발명의 방법을 제공하고, 사용자 인터페이스 (140) 는 적어도, 무선 통신 디바이스 (74) 의 디스플레이 (80) 상에 나타나며, 사용자 인터페이스 (140) 를 통해, 무선 통신 디바이스 (74) 의 사용자는 컴퓨터 플랫폼 (82) 과 상호작용하고, 상기 발명의 방법은 무선 통신 디바이스 (74) 의 디스플레이 (80) 상에 사용자 인터페이스 (140) 를 디스플레이하는 단계를 포함하고, 사용자 인터페이스 (140) 는 컴퓨터 플랫폼 (82) 상에 상주하는 하나 이상의 애플리케이션들에 의해 선택적으로 제어되도록 구성된다. 하나의 실시형태에서, 방법은 컴퓨터 플랫폼 (82) 상에 상주하는 중재기 (128) 에서, 디스플레이 (80) 를 제어하기 위한 상주 애플리케이션들 중의 하나 이상으로부터 요청을 수신하는 단계와, 그 다음으로, 중재기 (128) 에서, 미리 결정된 기준들에 기초하여, 하나 이상의 상주 애플리케이션들 중의 어느 애플리케이션이 디스플레이 (80) 를 제어하는지를 결정하는 단계를 포함한다.The
하나의 실시형태에서, 하나 이상의 상주 애플리케이션들의 각각이 디스플레이 (80) 를 제어하기 위한 애플리케이션에 대한 우선순위를 결정하는 우선순위 데이터를 포함할 경우, 방법은, 사용자 인터페이스 (140) 의 디스플레이 후에, 도 3a 에서 도시된 바와 같이, 복수의 하나 이상의 상주 애플리케이션들을 인보크하는 단계와, 각각의 인보크된 애플리케이션 내의 우선순위 데이터에 기초하여, 하나 이상의 상주 애플리케이션들 중의 어느 애플리케이션이 디스플레이 (80) 를 제어하는지를 결정하는 단계를 포함한다. 이러한 결정은 디스플레이 (80) 를 제어하기 위한 애플리케이션에 대한 우선순위를 결정하는 클래스 식별정보 (class identification) 의 이용에 기초할 수도 있거나, 또는 대안적으로, 복수의 인보크된 애플리케이션들 중의 하나가 우선순위 데이터에 기초하여 디스플레이 (80) 의 제어를 장악하는 것에 기초할 수도 있다. 이 실시형태에서, 우선순위 데이터 랭킹 (priority data ranking) 은 바람직하게는, 스래싱을 줄이기 위하여, 또는 바람직하게는 스래싱을 방지하기 위하여, 최고 우선순위 애플리케이션에 대한 디스플레이 제어를 유지할 수도 있다.In one embodiment, if each of the one or more resident applications includes priority data that determines a priority for an application for controlling the
중재기 (128) 를 갖도록 구체화될 때, 미리 결정된 기준들에 기초하여, 하나 이상의 상주 애플리케이션들 중의 어느 애플리케이션이 디스플레이 (80) 를 제어하는지를 결정하는 단계는, 디스플레이 (80) 를 제어하는 것을 시도하는 애플리케이션들에 대한 우선순위 리스트를 사용하고 있다. 대안적으로, 중재기 (128) 에서, 미리 결정된 기준들에 기초하여, 하나 이상의 상주 애플리케이션들 중의 어느 애플리케이션이 디스플레이 (80) 를 제어하는지를 결정하는 것은 디스플레이 (80) 를 다시 제어하기 위하여, 최후 애플리케이션이 디스플레이 (80) 를 제어하도록 하고 있을 수도 있다. 또한, 중재기 (120) 에서, 미리 결정된 기준들에 기초하여, 하나 이상의 상주 애플리케이션들 중의 어느 애플리케이션이 디스플레이 (80) 를 제어하는지를 결정하는 것은 클래스를 하나 이상의 애플리케이션들에 배정하고 있을 수도 있고, 제어를 결정하는 것은 애플리케이션의 클래스에 기초한다. 또한, 중재기 (128) 에서, 하나 이상의 상주 애플리케이션들 중의 어느 애플리케이션이 디스플레이 (80) 를 제어하는지를 결정하는 것은, 사용자 인터페이스 (140) 에서 처리되고 있는 데이터의 타입에 기초하여 디스플레이 (80) 의 제어를 허용하고 있을 수도 있거나, 무선 통신 인터페이스 (92) 에서 수신되고 있는 데이터의 타입에 기초할 수도 있다.Determining which application (s) of the one or more resident applications to control the display (80) based on predetermined criteria, when embodied to have the arbiter (128), attempting to control the display It uses a priority list for applications. Alternatively, at the
방법은 사용자 인터페이스 (140) 에서, 데이터를 무선 통신 디바이스 (74) 의 사용자에게 디스플레이하는 단계를 더 포함할 수도 있고, 사용자 인터페이스 (140) 가 디스플레이 (80) 상의 인터페이스 (140) 와 같은 디스플레이 스크린일 경우, 방법은 API 들 (142, 144, 146) 과 같은 디스플레이 (80) 에서, 그래픽 정보를 무선 통신 디바이스 (74) 의 사용자에게 디스플레이하는 단계를 포함할 수도 있다. 대안적으로, 사용자 인터페이스가 사용자가 컴퓨터 플랫폼 (82) 을 액세스하기 위한 제어 인터페이스일 경우, 방법은 디바이스 기능을 제어하기 위한 디스플레이 스크린 (80) 에서 그래픽 정보를 무선 통신 디바이스 (74) 의 사용자에게 디스플레이하는 단계를 더 포함할 수도 있다. 사용자 인터페이스 (140) 가 사용자 인터페이스 (140) 를 선택적으로 제어하도록 구성된 하나 이상의 사용자 인터페이스 애플리케이션들을 포함할 경우, 중재기 (120) 는 윈도우형 API 들 (142, 144, 146) 과 같은 하나 이상의 사용자 인터페이스 애플리케이션들에 대한 디스플레이 (80) 의 제어를 선택적으로 허용하도록 추가로 구성될 수도 있다.The method may further comprise displaying the data at a
위에서 설명된 도 5 의 블록 (160) 및 도 6 의 블록 (180) 을 참조하여 위에서 설명된 바와 같이, 무선 통신 디바이스는 플래그들 (또는 다른 메시지들) 을 우선순위 애플리케이션들로 전송하도록 구성될 수도 있다. 다양한 실시형태들에서, 무선 통신 디바이스는 그 애플리케이션들이 디스플레이를 제어하지 않을 수도 있음 (또는 포어그라운드에 도달하지 않을 수도 있음) 을 표시하는 메시지들, 플래그들, 또는 다른 신호들을 컴퓨터 플랫폼 상에 상주하는 애플리케이션들로 송신하도록 구성될 수도 있다. 특히, 무선 통신 디바이스는 예컨대, 중재기를 통해, 애플리케이션이 무선 통신 디바이스의 백그라운드에서 비액티비티 또는 중단된 애플리케이션으로서 동작해야 함을 표시하는 중단 메시지 (suspend message) 들을 송신할 수도 있다. 예를 들어, 도 5 의 블록 (158) 또는 도 6 의 블록 (178) 에서의 동작들을 이용하여 우선순위 애플리케이션을 결정한 후, 무선 통신 디바이스는 플래그를 우선순위 애플리케이션으로, 그리고 중단 메시지를 무선 통신 디바이스의 프로세서 상에서 실행되는 하나 걸러마다의 애플리케이션으로 송신할 수도 있다. 이러한 방법으로, 애플리케이션들은 이들이 디스플레이를 제어 (또는 포어그라운드에 도달함) 할 수도 있는 우선순위 애플리케이션인지 여부에 관계 없이, 이러한 메시지들 또는 신호들을 통해 무선 통신 디바이스에 의한 중재 동작들의 결과들을 수신할 수도 있다.As described above with reference to block 160 of FIG. 5 and block 180 of FIG. 6 described above, the wireless communication device may also be configured to send flags (or other messages) to priority applications have. In various embodiments, the wireless communication device may include messages, flags, or other signals that indicate that the applications may not control (or may not reach the foreground) Lt; RTI ID = 0.0 > applications. ≪ / RTI > In particular, the wireless communication device may send suspend messages, e.g., via an arbiter, indicating that the application should act as a non-activity or suspended application in the background of the wireless communication device. For example, after determining the priority application using operations in
다양한 실시형태들에서, 무선 통신 디바이스는 위에서 설명된 중재 동작들을 수정하고 및/또는 지원하기 위한 동작들을 수행할 수도 있다. 특히, 무선 통신 디바이스는 이하에서 설명된 바와 같은 방법들 (700, 750, 800, 950, 1050, 1150, 1200, 및 1300) 을 수행할 수도 있다. 다양한 실시형태들에서, 이하에서 설명된 방법들의 동작들은 위에서 설명된 중재 동작들과 조합하여, 또는 그 일부로서 수행될 수도 있다. 예를 들어, 무선 통신 디바이스는 예컨대, 중재기를 통해, 도 5 의 블록들 (150 내지 160) 또는 도 6 의 블록들 (170 내지 180) 에서의 동작들을 수행한 후에, 이하에서 설명된 바와 같은 방법들 (950, 1050, 1150, 1200, 또는 1300) 의 동작들 중의 임의의 것 또는 전부를 수행할 수도 있다.In various embodiments, the wireless communication device may perform operations to modify and / or support the arbitration operations described above. In particular, the wireless communication device may perform
또한, 다양한 실시형태들에서, 무선 통신 디바이스는 위에서 설명된 바와 같은 중재기를 통해, 이하에서 설명된 다양한 방법들의 동작들을 수행하도록 구성될 수도 있다. 예를 들어, 무선 통신 디바이스는 무선 통신 디바이스의 프로세서 상에서 실행되는 중재기 애플리케이션 (또는 앱 (app)) 을 통해, 또는 대안적으로, 무선 통신 디바이스의 오퍼레이팅 시스템의 일부인 중재기 프로세스들, 루틴 (routine) 들, 스레드 (thread) 들, 소프트웨어, 또는 다른 명령들을 통해, 방법들 (700, 750, 800, 950, 1050, 1150, 1200, 또는 1300) 중의 임의의 것에서의 동작들의 임의의 조합을 수행할 수도 있다. 따라서, 이하에서 설명된 무선 통신 디바이스의 임의의 동작들은 이러한 중재기를 통해 실행되는 것으로 고려될 수도 있다.Further, in various embodiments, the wireless communication device may be configured to perform the operations of the various methods described below, via an arbiter as described above. For example, the wireless communication device may communicate with the wireless communication device via an arbiter application (or an app) running on the processor of the wireless communication device, or alternatively, with arbiter processes, routines Perform any combination of the operations at any of the
도 7a 내지 도 8 은 무선 통신 디바이스가 무선 통신 디바이스의 프로세서 상에서 실행되는 애플리케이션들에 의해 제어될 수도 있는 복수의 디스플레이들을 관리하기 위한 실시형태의 방법들 (700, 750, 및 800) 을 예시한다. 다양한 실시형태들에서, 무선 통신 디바이스는 무선 통신 디바이스의 프로세서 상에서 실행되는 애플리케이션들에 대응하는 정보 (예컨대, 이미지들, 픽처들, 및 사용자 인터페이스 엘리먼트들) 를 렌더링하기 위한 복수의 디스플레이들을 포함할 수도 있거나, 이러한 복수의 디스플레이들에 결합될 수도 있거나, 또는 이와 다르게, 이러한 복수의 디스플레이들을 사용하도록 구성될 수도 있다. 예를 들어, 무선 통신 디바이스는, 클램 쉘-스타일 (clam shell-style) 이동 디바이스의 엘리먼트들 (예컨대, 하우징 플랩들, 측부들, 절반부들 등) 이 폐쇄될 때에 애플리케이션 정보를 렌더링하기 위한 소형 디스플레이와, 클램 쉘-스타일 이동 디바이스가 개방될 때의 더욱 대형의 디스플레이와 같은 복수의 스크린들을 포함하는 클램 쉘-스타일 이동 디바이스 (예컨대, 셀 전화) 일 수도 있다. 또 다른 예로서, 무선 통신 디바이스는 그 하우징의 전면 상의 제 1 터치스크린 디스플레이와, 하우징의 후면 내에 내장된 제 2 터치스크린 디스플레이를 포함할 수도 있다. 이하에서 더욱 상세하게 논의된 도 14 는 복수의 디스플레이들을 포함하는 무선 통신 디바이스의 예를 예시한다.Figures 7A-8 illustrate embodiments of methods 700,750, and 800 for managing a plurality of displays in which a wireless communication device may be controlled by applications running on the processor of the wireless communication device. In various embodiments, a wireless communication device may include a plurality of displays for rendering information (e.g., images, pictures, and user interface elements) corresponding to applications running on the processor of the wireless communication device Or may be coupled to such a plurality of displays, or alternatively may be configured to use such a plurality of displays. For example, a wireless communication device may include a small display for rendering application information when elements of a clam shell-style mobile device (e.g., housing flaps, sides, halves, etc.) And a clamshell-style mobile device (e.g., a cell phone) that includes a plurality of screens, such as a larger display when the clamshell-style mobile device is opened. As another example, the wireless communication device may include a first touch screen display on the front side of the housing and a second touch screen display built into the back side of the housing. Figure 14, discussed in more detail below, illustrates an example of a wireless communication device that includes a plurality of displays.
실시형태에서, 무선 또는 유선 접속들을 통해, 무선 통신 디바이스는 또한, 다른 디스플레이들 (예컨대, 휴대용 랩톱 컴퓨터, 데스크톱 컴퓨터, 더욱 대형의 전체 이미지를 렌더링하기 위하여 조합하여 이용된 복수의 LCD 모니터들 등), 또는 디스플레이들을 가지는 다른 무선 통신 디바이스들 (예컨대, 무선 통신 디바이스에 링크된 또 다른 스마트폰) 에 접속되거나 테더링 (tethering) 될 수도 있다. 다양한 실시형태들에서, 복수의 디스플레이들은 단일 디스플레이 (예컨대, 광고판 (billboard) 과 같은 더욱 대형의 전체 이미지를 디스플레이하기 위하여 조합하여 이용된 복수의 모니터들) 내의 상이한 섹션 (section) 들, 사분면 (quadrant) 들, 또는 픽셀 범위들을 지칭할 수도 있다. 예를 들어, 무선 통신 디바이스는 복수의 데스크톱들, 환경들, 또는 포어그라운드 애플리케이션들을 렌더링하기 위한 단일 터치스크린 디스플레이의 부지 (real-estate) 를 분할할 수도 있다.In embodiments, wireless or wired connections also allow the wireless communication device to communicate with other displays (e.g., a portable laptop computer, a desktop computer, a plurality of LCD monitors used in combination to render a larger full image, etc.) , Or tethered to other wireless communication devices (e.g., another smartphone linked to a wireless communication device) having displays. In various embodiments, the plurality of displays may include different sections within a single display (e.g., a plurality of monitors used in combination to display a larger overall image such as a billboard), quadrants ), Or pixel ranges. For example, a wireless communication device may partition the real-estate of a single touch screen display to render a plurality of desktops, environments, or foreground applications.
도 7a 내지 도 8 을 참조하여 이하에서 설명된 실시형태의 방법들 (700, 750, 및 800) 은, 무선 통신 디바이스의 컴퓨팅 플랫폼 상에 상주하는 애플리케이션들이 어떻게 우선순위 정보에 기초하여 복수의 디스플레이들 중의 하나를 제어하도록 허용될 수도 있는지를 관리하기 위하여, 예컨대, 중재기를 통해, 무선 통신 디바이스에 의해 수행될 수도 있다. 예를 들어, 무선 통신 디바이스는 미리 결정된 기준들에 기초하여, 무선 통신 디바이스 상에서 실행되는 어느 다른 애플리케이션들이 디스플레이의 포어그라운드에 도달할 수도 있는지를 관리하기 위한 프로세서 상에서 실행되는 중재기 애플리케이션 (또는 앱) 을 통해 방법들 (700, 750) 을 수행할 수도 있다.The
도 7a 는 무선 통신 디바이스가 복수의 디스플레이들의 포어그라운드의 제어를 배정 (또는 중재) 하기 위한 실시형태의 방법 (700) 을 예시한다. 다시 말해서, 무선 통신은 디바이스에 등록된 애플리케이션들의 우선순위들을 비교함으로써 어느 애플리케이션이 복수의 디스플레이들의 각각에 대한 포어그라운드에 도달할 수도 있는지를 결정할 수도 있다. 실시형태에서, 무선 통신 디바이스 상에서 동작하는 각각의 애플리케이션의 우선순위는 디바이스의 오퍼레이팅 시스템 또는 중재기에 등록될 수도 있다. 예를 들어, 더 높은 우선순위의 애플리케이션이 주 디스플레이의 포어그라운드의 제어를 가질 때, 무선 통신 디바이스는 더 낮은 우선순위의 애플리케이션을 보조 디바이스의 제어에 배정할 수도 있다. 또 다른 예로서, 무선 통신 디바이스는 주 디스플레이를 제어하기 위해 충분히 중요하지 않은 중간-우선순위 (medium-priority) 의 애플리케이션을 위하여 보조 디스플레이를 제어하는 낮은-우선순위 (low-priority) 의 애플리케이션을 선취 (preempt) 할 수도 있다.FIG. 7A illustrates an embodiment of a
블록 (701) 에서, 무선 통신 디바이스는 예컨대, 무선 통신 디바이스 상에서 실행되는 애플리케이션들의 설명 정보 (descriptive information) 를 포함하는 등록 정보를 저장함으로써 애플리케이션들을 등록할 수도 있다. 등록된 애플리케이션들은 무선 통신 디바이스의 컴퓨터 플랫폼 상에 상주하는 것으로서 고려될 수도 있다. 무선 통신 디바이스는 무선 통신 디바이스의 부트-업 (boot-up) 시에, 애플리케이션들로부터 등록 요청들을 수신하는 것에 응답하여, 또는 애플리케이션들이 설치되거나, 착수되거나, 또는 이와 다르게 활성화될 때에 (예컨대, 실행 시간에 또는 애플리케이션 활성화 시에) 동적으로, 애플리케이션들을 등록할 수도 있다. 실시형태에서, 애플리케이션들은 이벤트 통지들을 수신하는 것에 응답하여 중재기를 통해 무선 통신 디바이스에 의해 등록될 수도 있다.At
무선 통신 디바이스의 컴퓨터 플랫폼 상에 상주하는 애플리케이션의 등록 시에, 다양한 등록 정보는 애플리케이션에 관련하여, 예컨대, 무선 통신 디바이스 상에서 실행되는 중재기 애플리케이션 (또는 OS 프로세스) 에 의해 액세스가능한 데이터 테이블 또는 데이터베이스에서 저장될 수도 있다. 특히, 각각의 등록된 애플리케이션은 식별정보 (예컨대, 애플리케이션 ID), 디폴트 우선순위 (예컨대, 높음 (high), 낮음 (low), 임계 (critical) 등), 애플리케이션의 네트워크 요건들 (예컨대, 인터넷 액세스, 어떤 요구된 서비스 품질 (quality of service; QoS), 필요한 브로드캐스트 또는 멀티캐스트, 필요한 글로벌 위치확인 시스템 (global positioning system; GPS) 등), 애플리케이션이 도 7b 를 참조하여 이하에서 논의된 바와 같이 동적으로 재우선순위화 (reprioritize) 될 수도 있는지 (예컨대, 중재기가 동작 조건들 등에 기초하여 높음으로부터 낮음으로 우선순위를 동적으로 변경할 수도 있음) 여부의 표시, 및 애플리케이션이 부 디스플레이 (예컨대, 보충적인 터치스크린 등) 상에서 이용될 수 있는지 여부의 표시와 연관될 수도 있다.Upon registration of an application resident on the computer platform of the wireless communication device, the various registration information may be associated with the application, e.g., in a data table or database accessible by an arbiter application (or OS process) May be stored. In particular, each registered application may be configured to provide identification information (e.g., application ID), default priorities (e.g., high, low, critical, etc.), network requirements of the application , Any required quality of service (QoS), required broadcast or multicast, required global positioning system (GPS), etc.) (E.g., the arbiter may dynamically change its priority from high to low based on operating conditions, etc.), and whether the application is to be reprioritized to a secondary display (e.g., a supplemental touch screen ≪ / RTI > or the like).
추가적으로, 각각의 등록된 애플리케이션은 등록된 애플리케이션이 무선 통신 디바이스의 백그라운드에서 실행될 수 있는지 여부의 표시 (즉, "백그라운드-인에이블형 (background-enabled)" 또는 "백그라운드-디스에이블형 (background-disabled)") 와 연관될 수도 있다. 비디오 호출 애플리케이션 (예컨대, QCHAT®) 이 "백그라운드-인에이블형" 인 것으로 무선 통신 디바이스 (및 중재기) 에 등록하고, 카메라 애플리케이션이 디스플레이에 대한 포어그라운드를 제어 (또는 포어그라운드에서 실행됨) 하고 있는 동안에 비디오 호출이 추후에 수신될 때, 무선 통신 디바이스는 중재기를 통해, 비디오 호출 애플리케이션이 백그라운드에서 실행하는 것을 계속하는 동안에, 카메라 애플리케이션이 포어그라운드를 제어하는 것을 계속하는 것을 허용할 수도 있다. 또 다른 예로서, 비디오 호출 애플리케이션이 백그라운드-인에이블형 표시 없이 등록될 때 (즉, "백그라운드-디스에이블형" 표시자가 등록됨), 무선 통신 디바이스는 카메라 애플리케이션을 일시정지시킬 수도 있고, 비디오 호출 애플리케이션이 카메라 애플리케이션보다 더 높은 우선순위 레벨로 등록될 때에, 비디오 호출 애플리케이션이 디스플레이의 포어그라운드의 제어를 취하는 것을 허가할 수도 있다. 실시형태에서, 무선 통신 디바이스는, 비디오 호출 애플리케이션이 백그라운드에서 실행되는 프로세스로서 호출을 행하고 있음을 표시하는 톤들과 같이, 비디오 호출 스테이터스 및/또는 플로어 제어 (floor control) 를 표시할 수도 있는 톤들, 음악, 또는 다른 사운드들을 방출하거나 렌더링하도록 구성될 수도 있다.Additionally, each registered application may indicate whether the registered application is capable of running in the background of the wireless communication device (i.e., "background-enabled" or "background- ) "). ≪ / RTI > (And arbiter) that the video calling application (e.g., QCHAT®) is "background-enabled", and the camera application controls (or runs in the foreground) the foreground for the display When a video call is received later, the wireless communication device may allow the camera application to continue to control the foreground via the arbiter while the video calling application continues to execute in the background. As another example, when the video calling application is registered without a background-enabled indication (i.e., the "background-disable" indicator is registered), the wireless communication device may pause the camera application, May allow the video calling application to take control of the foreground of the display when it is registered with a higher priority level than the camera application. In an embodiment, the wireless communication device may include tones that may display video call status and / or floor control, such as tones indicating that the video calling application is making a call as a process running in the background, , Or to emit or render other sounds.
다양한 등록된 애플리케이션들의 등록 정보는 데이터 레코드들 내의 데이터, 비트들, 변수들, 설명 스트링 (descriptive string) 들, 또는 무선 통신 디바이스가 애플리케이션들을 평가하기 위하여 액세스할 수도 있는 임의의 다른 데이터로서 저장될 수도 있다. 실시형태에서, 애플리케이션이 백그라운드-인에이블형인지 여부의 표시와 같은 등록 정보는 애플리케이션, 무선 통신 디바이스, 및/또는 중재기와 연관된 사용자 선호도들에 기초할 수도 있다. 예를 들어, 애플리케이션이 디폴트/주 스크린 상에서 렌더링되기만 할 수도 있거나, 애플리케이션이 무선 통신 디바이스 상의 백그라운드 프로세스로서 항상 실행될 수도 있음 (또는 절대로 실행될 수 없음) 을 표시하는 사용자 선호도들은 특정 애플리케이션에 대해 설정될 수도 있다.The registration information of the various registered applications may be stored as data, bits, variables, descriptive strings in the data records, or any other data that the wireless communication device may access to evaluate applications have. In an embodiment, the registration information, such as an indication of whether the application is background-enabled, may be based on user preferences associated with the application, the wireless communication device, and / or the arbiter. For example, user preferences indicating that the application may only be rendered on the default / main screen, or that the application may (or may never) be run as a background process on the wireless communication device may be set for a particular application have.
도 7a 로 돌아가면, 결정 블록 (702) 에서, 무선 통신 디바이스는 제 1 애플리케이션에 관련 있는 액티비티가 검출되는지 여부를 결정할 수도 있다. 예를 들어, 위에서 설명된 바와 같이, 무선 통신 디바이스는 중재기를 통해, 중재기에 등록된 애플리케이션들을 인보크할 수도 있는 통지 이벤트들 또는 다른 메시지들이 언제 수신되는지를 검출할 수도 있다. 이러한 검출된 액티비티들은 각각의 개별적인 등록된 애플리케이션에 대한 미리 정의된 이벤트들일 수도 있거나 모든 애플리케이션들에 대해 범용일 수도 있다. 제 1 애플리케이션에 관련 있을 수도 있는 검출된 액티비티들은 조우된 예외들, 등록된 애플리케이션들과 연관된 저장된 정보에 있어서의 검출된 변경들 (예컨대, 우선순위 변경), 및/또는 중재기로의 새로운 애플리케이션의 등록, 애플리케이션의 동작 스테이터스 (예컨대, 중단됨, 액티비티 등) 또는 등록 정보 (예컨대, 우선순위 클래스 등) 에 있어서의 변경, 디스플레이의 포어그라운드의 애플리케이션 요청들 제어, 애플리케이션에 의한 디스플레이 포어그라운드의 제어의 손실, 및 디스플레이의 액티비티 상태 변경 (예컨대, 주 디스플레이가 이용가능하게 됨 등) 과 같은 다양한 상태들에 응답하여 수신되는 수신된 이벤트 통지들/신호들/인터럽트들/또는 다른 메시지들을 포함할 수도 있다.Returning to Fig. 7a, at
실시형태에서, 무선 통신 디바이스는 제 1 애플리케이션을 식별하는 비트들 또는 다른 표시자들, 및/또는 제 1 애플리케이션의 클래스 또는 우선순위에 기초하여 수신된 메시지가 제 1 애플리케이션에 관련 있는 것으로 결정할 수도 있다. 대안적으로, 임의의 수신된 메시지는 임의의 착수된 및/또는 액티비티 애플리케이션들 (예컨대, 무선 통신 디바이스의 백그라운드/포어그라운드에서 실행되는 애플리케이션들) 에 관련 있을 수도 있다. 다양한 실시형태들에서, 무선 통신 디바이스는 임의의 이러한 검출된 액티비티 (예컨대, 수신된 메시지) 에 대한 관련성을 결정하기 위하여 모든 등록된 애플리케이션을 평가할 수도 있다.In an embodiment, the wireless communication device may determine that a received message is related to a first application based on bits or other indicators identifying the first application, and / or a class or priority of the first application . Alternatively, any received message may be associated with any launched and / or activity applications (e.g., applications running in the background / foreground of the wireless communication device). In various embodiments, the wireless communication device may evaluate all registered applications to determine the relevance to any such detected activity (e.g., a received message).
무선 통신 디바이스가 제 1 애플리케이션에 관련 있는 액티비티를 검출하지 않을 경우 (즉, 결정 블록 (702) = "아니오"), 무선 통신 디바이스는 블록 (701) 에서 애플리케이션들을 등록하기 위한 동작들을 계속할 수도 있다. 예를 들어, 무선 통신 디바이스는 계속적으로 또는 주기적으로 애플리케이션들을 등록할 수도 있고 통지 이벤트들에 대해 모니터링할 수도 있다. 무선 통신 디바이스가 제 1 애플리케이션에 관련 있는 액티비티를 검출할 경우 (즉, 결정 블록 (702) = "예"), 블록 (704) 에서, 무선 통신 디바이스는 디스플레이 우선순위의 순서로 제 1 애플리케이션에 대한 모든 실행가능한 디스플레이들의 리스트를 식별 (또는 순서화) 할 수도 있다. 예를 들어, 무선 통신 디바이스는 모든 터치스크린들, LCD 스크린들, 및 적당하게 기능하고 있으며 (즉, 파손되지 않은, 수리되고 있는, 등) 현재 사용 중인 무선 통신 디바이스와 연관된 다른 디스플레이 유닛들을 식별할 수도 있다. 다시 말해서, 실행가능한 디스플레이의 식별된 리스트는 제 1 애플리케이션이 포어그라운드에 도달할 수도 있는 모든 가능한 디스플레이들의 리스트일 수도 있다.If the wireless communication device does not detect an activity associated with the first application (i.e.,
실시형태에서, 무선 통신 디바이스는 제 1 애플리케이션과 연관된 등록 정보에 기초하여 리스트를 식별할 수도 있다. 예를 들어, 제 1 애플리케이션의 등록 정보가 제 1 애플리케이션이 다수의 디스플레이들을 지원하지 않음을 표시할 경우, 무선 통신 디바이스는 디바이스의 디폴트 또는 주 디스플레이만을 포함하는 리스트를 식별할 수도 있다. 또 다른 예로서, 무선 통신 디바이스는 바람직한 디스플레이 우선순위를 구하기 위하여 제 1 애플리케이션의 등록 정보를 평가할 수도 있고, 이에 따라 리스트를 식별할 수도 있다. 또 다른 실시형태에서, 무선 통신 디바이스는 디스플레이를 이용하기 위해 요구된 전력을 평가함으로써 실행가능한 디스플레이들의 리스트를 식별할 수도 있다. 특히, 무선 통신 디바이스는 제어하기 위한 제 1 애플리케이션에 대하여, 비활성화된 보조 디스플레이가 활성화 (또는 급전) 될 수도 있는지 여부를 결정하기 위하여 디바이스의 이용가능한 배터리 전력을 평가할 수도 있다. 무선 통신 디바이스는 제 1 애플리케이션에 의한 이러한 보조 디스플레이의 전력 소비를 추정할 수도 있고, 보조 디스플레이를 활성화하는 것이 실현가능한 것인지 여부를 결정하기 위하여 추정된 소비를 문턱 값과 비교할 수도 있다.In an embodiment, the wireless communication device may identify the list based on the registration information associated with the first application. For example, if the registration information of the first application indicates that the first application does not support multiple displays, the wireless communication device may identify the list that includes only the device's default or primary display. As another example, the wireless communication device may evaluate the registration information of the first application to obtain the desired display priority, thereby identifying the list accordingly. In another embodiment, the wireless communication device may identify a list of executable displays by evaluating the power required to use the display. In particular, for a first application to control, the wireless communication device may evaluate the available battery power of the device to determine whether the deactivated secondary display may be activated (or powered up). The wireless communication device may estimate the power consumption of this secondary display by the first application and may compare the estimated consumption to a threshold value to determine whether activating the secondary display is feasible.
실행가능한 디스플레이들의 리스트의 디스플레이 순서는 다양한 디스플레이들에 관련된 미리 정의된 저장된 정보 (예컨대, 디스플레이 유닛들의 우선순위 분류들을 설명하는 정보를 갖는 데이터베이스), 사용자 선호도들, 액티비티 (예컨대, 디스플레이가 얼마나 자주 이용되는지), 및 제 1 애플리케이션에 대한 유용성에 기초할 수도 있다. 예를 들어, 실행가능한 디스플레이들의 리스트는 디폴트 (또는 주) 터치스크린으로부터 보조 디스플레이들로의 순서로 되어 있을 수도 있다. 또 다른 예로서, 실행가능한 디스플레이들의 리스트는 해상도 또는 렌더 품질 (예컨대, HD, SD, 흑색-및-백색 등) 의 하향 순서 (descending order) 로 제시될 수도 있다. 또 다른 예로서, 리스트는 제 1 애플리케이션과 연관된 특정 타입의 데이터 (예컨대, 비디오, 텍스트 등) 를 최상으로 렌더링할 수 있는 순서로 디스플레이들을 순서화할 수도 있다. 다양한 실시형태들에서, 제 1 애플리케이션에 대한 식별된 리스트는 다른 등록된 애플리케이션들에 대한 식별된 리스트와는 상이할 수도 있다. 예를 들어, 무선 통신 디바이스는 제 1 애플리케이션의 등록된 정보에 기초하여 OLED 또는 LED 스크린이 제 1 애플리케이션 (예컨대, 비디오 게임) 에 대한 최고 디스플레이 우선순위를 가진다는 것을 식별할 수도 있지만, 터치스크린을 제 2 애플리케이션 (예컨대, 픽처 편집기) 에 대한 최고 디스플레이 우선순위로서 식별할 수도 있다.The display order of the list of executable displays may include predefined stored information related to various displays (e.g., a database having information describing the priority classifications of the display units), user preferences, activities (e.g., , And availability for the first application. For example, the list of executable displays may be in order from the default (or main) touch screen to the secondary displays. As another example, a list of executable displays may be presented in descending order of resolution or render quality (e.g., HD, SD, black-and-white, etc.). As another example, the list may order the displays in an order that can best render the specific type of data (e.g., video, text, etc.) associated with the first application. In various embodiments, the identified list for the first application may differ from the identified list for other registered applications. For example, the wireless communication device may identify that the OLED or LED screen has the highest display priority for the first application (e.g., a video game) based on the registered information of the first application, May be identified as the highest display priority for the second application (e.g., picture editor).
블록 (706) 에서, 무선 통신 디바이스는 실행가능한 디스플레이들의 식별된 리스트로부터 다음 디스플레이를 선택할 수도 있다. 처음에는, 무선 통신 디바이스가 블록 (706) 에서의 동작들을 수행하고, 다음 디스플레이는 실행가능한 디스플레이들의 식별된 리스트에서의 제 1 디스플레이 (즉, 제 1 애플리케이션에 대한 최고 디스플레이 우선순위를 가지는 디스플레이) 일 수도 있다. 예를 들어, 무선 통신 디바이스는 제 1 애플리케이션에 대해 평가하기 위하여 디폴트 (또는 주) 디스플레이를 최초에 선택할 수도 있다. 결정 블록 (708) 에서, 무선 통신 디바이스는 선택된 디스플레이가 제 2 애플리케이션에 의해 이용 중인지 여부를 결정할 수도 있다. 선택된 디스플레이가 제 2 애플리케이션에 의해 이용 중인지 않을 경우 (즉, 결정 블록 (708) = "아니오"), 블록 (716) 에서는, 무선 통신 디바이스가 선택된 디스플레이의 포어그라운드의 제어를 제 1 애플리케이션에 배정하는 플래그 (또는 다른 신호) 를 전송할 수도 있다.At
선택된 디스플레이가 제 2 애플리케이션에 의해 이용 중일 경우 (즉, 결정 블록 (708) = "예"), 결정 블록 (710) 에서, 무선 통신 디바이스는 제 2 애플리케이션이 제 1 애플리케이션보다 더 높은 우선순위를 가지는지 여부를 결정할 수도 있다. 무선 통신 디바이스는 예컨대, 더 높은 우선순위를 가지는 애플리케이션을 식별하기 위하여 우선순위 클래스 또는 다른 특성들을 비교함으로써, 제 1 및 제 2 애플리케이션들의 등록 정보를 비교할 수도 있다. 무선 통신 디바이스는 어느 애플리케이션이 더 높은 우선순위를 가지는지를 결정하기 위하여, 도 5 내지 도 6 의 블록들 (158 및/또는 178) 을 참조하여 위에서 설명된 것들과 유사한 동작들을 수행할 수도 있다.If the selected display is being used by the second application (i.e.,
제 2 애플리케이션이 더 높은 우선순위를 가지지 않을 경우 (즉, 결정 블록 (710) = "아니오"), 선택적인 블록 (718) 에서, 무선 통신 디바이스는 예컨대, 제 2 애플리케이션이 선택된 디스플레이의 포어그라운드의 제어로부터 제거되고 있음을 표시하는 비트를 저장함으로써, 제 2 애플리케이션의 스테이터스를 변경할 수도 있다. 실시형태에서, 스테이터스의 변경은, 제 2 애플리케이션의 스테이터스 변경을 표시하는 메시지 또는 신호 (예컨대, 중단 메시지) 를 전송하고, 이에 따라, 가능한 경우, 제 2 애플리케이션을 또 다른 디스플레이에 재배정하기 위한 방법 (700) 의 수행을 트리거링하는 무선 통신 디바이스에 의해 동반될 수도 있다. 다음으로, 무선 통신 디바이스는 블록 (716) 에서의 동작들을 계속할 수도 있다.If the second application does not have a higher priority (i.e.,
제 2 애플리케이션이 더 높은 우선순위를 가질 경우 (즉, 결정 블록 (710) = "예"), 결정 블록 (712) 에서, 무선 통신 디바이스는 선택하기 위한 실행가능한 디스플레이들의 식별된 리스트에서 다음 디스플레이가 있는지 여부를 결정할 수도 있다. 다시 말해서, 무선 통신 디바이스는 제 1 애플리케이션을 실행가능한 디스플레이들의 식별된 리스트에서 다음 최고 디스플레이 우선순위를 갖는 디스플레이에 배정하기 위하여, 또 다른 반복으로 블록 (706) 의 동작들을 수행할 것인지 여부를 결정할 수도 있다. 선택하기 위한 실행가능한 디스플레이들의 식별된 리스트에서 다음 디스플레이가 없을 경우 (즉, 결정 블록 (712) = "아니오"), 블록 (714) 에서, 무선 통신 디바이스는 제 1 애플리케이션을 디스플레이를 위한 대기 큐 (wait queue) 에 추가할 수도 있다. 예를 들어, 제 1 애플리케이션은 주 디스플레이, 또는 실행가능한 디스플레이들의 식별된 리스트에서의 임의의 디스플레이가 이용가능해질 때까지 중단될 수도 있다. 위에서 설명된 바와 같이, 무선 통신 디바이스는 디스플레이들이 이용가능해질 때에 메시지 또는 신호를 수신할 수도 있고, 이에 응답하여, 제 1 애플리케이션을 디스플레이에 배정하기 위하여 방법 (700) 의 동작들을 수행할 수도 있다.If the second application has a higher priority (i.e.,
실시형태에서, 무선 통신 디바이스는 애플리케이션을 순서화된 디스플레이들의 그 연관된 리스트 내의 상이한 디스플레이들에 연속적으로 배정하기 위하여 방법 (700) 을 수행할 수도 있다. 다시 말해서, 어떤 디스플레이 (예컨대, 디폴트, 주, 높은 우선순위) 가 이용가능해졌음을 표시하는 메시지 또는 신호를 수신하는 것에 응답하여, 무선 통신 디바이스는 보조 디스플레이를 제어하는 애플리케이션이 어떤 디스플레이에 재배정될 수도 있는지 여부를 결정하기 위하여 방법 (700) 에서의 동작들을 수행할 수도 있다. 예를 들어, 더 높은 우선순위의 제 2 애플리케이션이 종결되고 전방-대향 (front-facing) 디스플레이 (즉, 디폴트 또는 주 디스플레이) 의 제어를 넘겨줄 때, 무선 통신 디바이스는 무선 통신 디바이스의 하우징의 후면 상의 보조 디스플레이에 이전에 배정된 더 낮은 우선순위의 제 1 애플리케이션이 전방-대향 디스플레이에 재배정될 수도 있는지 여부를 결정할 수도 있다.In an embodiment, a wireless communication device may perform a
도 7b 는 무선 통신 디바이스가 복수의 디스플레이들의 포어그라운드의 제어를 배정 (또는 중재) 하기 위한 실시형태의 방법 (750) 을 예시한다. 방법 (750) 이 무선 통신 디바이스 상에 상주하며 중재기에 의해 관리되는 것으로 등록된 다양한 애플리케이션들의 우선순위들을 업데이트 (또는 재계산) 하기 위한 동작들을 포함하는 것을 제외하고는, 방법 (750) 은 위에서 설명된 방법 (700) 과 유사하다. 블록 (701) 에서, 무선 통신 디바이스는 예컨대, 무선 통신 디바이스 상에서 실행되는 애플리케이션들의 설명 정보를 저장함으로써 애플리케이션들을 등록할 수도 있다.7B illustrates an embodiment of a
블록 (752) 에서, 무선 통신 디바이스는 미리 정의된 이벤트들에 응답하여 동적 우선순위 변경들에 대해 등록된 애플리케이션들의 우선순위들을 재계산 (또는 재우선순위화 (re-prioritization) 를 수행) 할 수도 있다. 위에서 설명된 바와 같이, 다양한 애플리케이션들의 등록 시에 무선 통신 디바이스에 의해 저장된 등록 정보는 애플리케이션들이 동적으로 재우선순위화될 수도 있는지 여부의 표시들을 포함할 수도 있다. 다시 말해서, 등록 정보는 애플리케이션이 예컨대, 중재기 애플리케이션 또는 OS 루틴을 통해, 무선 통신 디바이스에 의해 재우선순위화되도록 동의하였는지 여부를 표시할 수도 있다. 긴급 호출 애플리케이션들과 같은 어떤 애플리케이션들은 정적 우선순위 (static priority) 들을 가질 수도 있고, 무선 통신 디바이스에 의한 동적 재우선선위화를 허용하도록 등록되지 않을 수도 있다.At
다양한 실시형태들에서, 미리 정의된 이벤트들은 무선 통신 디바이스에 의해 일반적으로 액세스가능한 데이터로 (예컨대, 중재기 애플리케이션과 연관된 메모리 내에) 저장될 수도 있거나, 또는 대안적으로, 개별적인 등록된 애플리케이션들의 등록 정보 내에 저장될 수도 있다. 미리 정의된 이벤트들은 특정 애플리케이션들에 대한 우선순위의 재계산을 트리거링할 수도 있는 상태들, 타이머들, 메시지들 (또는 수신된 메시지 타입들), 또는 다른 상황들을 포함할 수도 있다. 예를 들어, 어떤 애플리케이션에 대한 등록 정보는, 무선 통신 디바이스가 시간 주기 (예컨대, 밀리초(들), 초(들), 분(들) 등) 마다, 및/또는 어떤 수의 프로세서 클록 사이클들 (또는 신호들) 마다 한번씩 어떤 애플리케이션의 우선순위를 재계산해야 하는 것을 표시할 수도 있다. 또 다른 예로서, 무선 통신 디바이스는 애플리케이션의 등록 또는 착수를 검출하는 것에 기초하여 어떤 애플리케이션에 대한 재우선순위화 동작들을 수행할 수도 있다. 실시형태에서, 무선 통신 디바이스는 주소록 애플리케이션에 대응하는 터치스크린 상의 탭 (tap) 들 또는 텍스트 타이핑 입력들과 같은 검출된 사용자 입력에 기초하여 애플리케이션에 대한 재우선순위화 동작들을 수행할 수도 있다.In various embodiments, the predefined events may be stored in data generally accessible by the wireless communication device (e.g., in a memory associated with the arbiter application), or alternatively, the properties of the individual registered applications Lt; / RTI > The predefined events may include states, timers, messages (or received message types), or other situations that may trigger recalculation of priorities for particular applications. For example, the registration information for an application may indicate that the wireless communication device is capable of receiving a predetermined number of times (e.g., millisecond (s), second (s), minute (s) (Or signals) once to recalculate the priority of an application. As another example, a wireless communication device may perform re-ordering operations for an application based on detecting registration or launch of an application. In an embodiment, the wireless communication device may perform re-ordering operations on the application based on detected user input, such as tapes or text-typing inputs on the touch screen corresponding to the address book application.
또 다른 실시형태에서, 무선 통신 디바이스는 디바이스의 동작 파라미터들에서의 변경들에 기초하여 애플리케이션에 대한 재우선순위화 동작들을 수행할 수도 있다. 예를 들어, 애플리케이션은 광역 네트워크 (wide area network; WAN) 에 대한 접속을 상실하는 것, WAN 에 대한 접속을 획득하는 것, 셀룰러 네트워크 서비스 액티비티 변경들을 검출하는 것, 및/또는 어떤 액세스 포인트에 접속하는 것과 같이, 무선 통신 디바이스가 네트워크 접속성에서의 변경을 검출하는 것에 응답하여 재우선순위화될 수도 있다. 또 다른 예로서, 애플리케이션은 무선 통신 디바이스가 단거리 무선 신호 (예컨대, 블루투스 (Bluetooth) 등) 를 수신하는 것, 및/또는 이용가능한 전력 (예컨대, 전원에 접속된, 미리 정의된 문턱 미만의 이용가능한 배터리 수명 등) 에서의 변경을 검출하는 것에 응답하여 재우선순위화될 수도 있다. 또 다른 실시형태에서, 무선 통신 디바이스는 등록된 애플리케이션들에서의 스테이터스 변경들 (예컨대, 중단됨, 활성화됨, 디스플레이의 제어로부터 제거됨 등) 을 검출하는 것에 응답하여 애플리케이션들의 우선순위들을 재계산할 수도 있다. 예를 들어, 무선 통신 디바이스는 애플리케이션이 아이들 스크린 (idle screen) 을 가질 때, 전형적으로 높은 우선순위의 비디오 호출 애플리케이션의 우선순위를 낮출 수도 있다.In another embodiment, the wireless communication device may perform re-ordering operations on the application based on changes in operating parameters of the device. For example, the application may be configured to lose access to a wide area network (WAN), to obtain a connection to the WAN, to detect cellular network service activity changes, and / The wireless communication device may be re-prioritized in response to detecting a change in network connectivity. As another example, an application may be configured such that a wireless communication device receives a short-range wireless signal (e.g., Bluetooth), and / or receives available power (e.g., Lt; / RTI > battery life, etc.). In another embodiment, the wireless communication device may recalculate priorities of applications in response to detecting status changes (e.g., aborted, activated, removed from control of the display, etc.) in the registered applications. For example, a wireless communication device may lower the priority of a typically high-priority video calling application when the application has an idle screen.
실시형태를 예시하기 위한 예로서, 무선 통신 디바이스는 동적 재우선순위화를 위해 등록된 2 개의 애플리케이션들을 그 프로세서 상에서 실행할 수도 있다: 네트워크 접속을 요구하며 높은 우선순위로 초기에 등록될 수도 있는 비디오 호출 애플리케이션, 및 네트워크 접속을 요구하지 않으며 낮은 우선순위로 초기에 등록될 수도 있는 카메라 애플리케이션. 비디오 호출 애플리케이션이 착수될 때, 무선 통신 디바이스는 중재기를 통해, 이용가능한 셀룰러 네트워크 접속이 없다는 것 (즉 커버리지 없음) 을 검출할 수도 있고, 이에 따라, 비디오 호출 애플리케이션은 일시적으로 동작불가능할 수도 있다. 이러한 상태에서, 무선 통신 디바이스는 중재기를 통해, 카메라가 무선 통신 디바이스의 디스플레이의 포어그라운드의 제어를 상실할 수도 있는 상황을 회피하기 위하여, 비디오 호출 애플리케이션보다 더 높은 우선순위를 갖도록 카메라 애플리케이션을 동적으로 재우선순위화할 수도 있다.As an example to illustrate an embodiment, a wireless communication device may execute two applications registered for dynamic priority enhancement on that processor: a video call application that requires a network connection and may be initially registered with a high priority , And a camera application that does not require a network connection and may be initially registered with a low priority. When the video calling application is launched, the wireless communication device may detect, via the arbiter, that there is no available cellular network connection (i.e., no coverage), so that the video calling application may be temporarily disabled. In such a situation, the wireless communication device may dynamically, via the arbiter, dynamically adjust the camera application to have a higher priority than the video calling application, in order to avoid situations in which the camera may lose control of the foreground of the display of the wireless communication device. It can also be prioritized.
실시형태를 예시하기 위한 또 다른 예로서, 무선 통신 디바이스는 동적 재우선순위화를 위해 등록된 2 개의 애플리케이션들을 그 프로세서 상에서 실행할 수도 있다: 높은 우선순위로 초기에 등록될 수도 있는 비디오 호출 애플리케이션; 및 낮은 우선순위로 초기에 등록될 수도 있는 주소록 애플리케이션. 무선 통신 디바이스는 주소록 애플리케이션이 디스플레이에 대한 포어그라운드를 제어하고 있을 때에 사용자 입력들을 검출할 수도 있고, 그 결과, 비디오 호출 애플리케이션이 착수되거나 착신 호출을 수신하더라도 입력을 차단 (interrupt) 하는 것을 회피하기 위하여 주소록 애플리케이션의 우선순위를 증가시킬 수도 있다.As yet another example for illustrating an embodiment, a wireless communication device may execute two applications registered for dynamic priority enhancement on the processor: a video calling application that may be initially registered with a high priority; And an address book application that may be initially registered with a lower priority. The wireless communication device may detect user inputs while the address book application is controlling the foreground for the display so as to avoid interrupting the input even if the video calling application is launched or receiving an incoming call You can also increase the priority of the address book application.
애플리케이션들에 대한 재계산 (또는 재우선순위화) 동작들은 다양한 가중화 방식들, 규칙 세트들, 밸런싱 인자 (balancing factor) 들, 모델들, 수학식들, 및 각각의 애플리케이션에 대한 새로운 우선순위 값들을 결정하기 위한 다른 고려사항들을 이용할 수도 있다. 또한, 하나의 애플리케이션의 재우선순위화는 무선 통신 디바이스가 또 다른 애플리케이션의 우선순위를 재계산하는 것을 트리거링할 수도 있다. 예를 들어, 제 1 애플리케이션이 최고 우선순위를 가지는 것으로서 재계산하는 것에 응답하여, 무선 통신 디바이스는 (중재기를 통해) 이전에 최고 우선순위를 가졌던 제 2 애플리케이션의 우선순위를 재계산할 수도 있다.The recalculation (or rerecording) operations for the applications include various weighting schemes, rule sets, balancing factors, models, mathematical equations, and new priority values for each application Other considerations may also be used to determine. In addition, the re-ordering of one application may trigger the wireless communication device to recalculate the priority of another application. For example, in response to the first application having recalculated as having the highest priority, the wireless communication device may recalculate the priority of the second application that previously had the highest priority (via the arbiter).
도 7b 로 돌아가면, 결정 블록 (702) 에서, 무선 통신 디바이스는 제 1 애플리케이션에 관련 있는 액티비티가 검출되는지 여부를 결정할 수도 있다. 특히, 무선 통신 디바이스는 우선순위에 있어서의 변경이 등록된 애플리케이션들에 대해 발생하였는지 여부를 결정할 수도 있다. 예를 들어, 제 1 애플리케이션이 디스플레이를 위한 대기 큐에 있을 경우, 무선 통신 디바이스는 제 1 애플리케이션보다 더 높은 우선순위를 가지는 임의의 애플리케이션들이 재우선순위화되었는지 여부를 결정할 수도 있다. 또 다른 예로서, 제 1 애플리케이션이 디스플레이를 위한 대기 큐에 있을 경우, 또는 제 1 애플리케이션이 현재 그 바람직한 디스플레이의 제어 중인 것이 아닐 경우, 무선 통신 디바이스는 그 등록 정보에 기초하여, 디바이스의 디스플레이들 중의 임의의 것, 특히, 제 1 애플리케이션에 대해 바람직한 디스플레이가 이용가능해진 것인지 여부를 결정할 수도 있다.7B, at
무선 통신 디바이스가 제 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 애플리케이션을 디스플레이를 위한 대기 큐에 추가할 수도 있다.If the wireless communication device does not detect an activity associated with the first application (i.e.,
도 8 은 무선 통신 디바이스가 다수의 디스플레이들의 우선순위들을 재계산하기 위한 실시형태의 방법 (800) 을 예시한다. 도 7b 를 참조하여 위에서 설명된 등록된 애플리케이션들에 대한 우선순위들의 재계산과 유사하게, 무선 통신 디바이스는 등록된 애플리케이션들에 의해 제어될 수도 있는 디바이스의 다양한 디스플레이들의 우선순위 정보를 업데이트하도록 구성될 수도 있다. 예를 들어, 아이가 만화를 시청하기 위하여 디바이스의 좌측 상의 디폴트 (또는 최고 우선순위) 스크린을 이용하고 있고 아빠가 작업을 하기 위하여 디바이스의 우측 상의 보조 스크린을 이용하고 있음을 표시하는 카메라 데이터를 이용한 얼굴 인식 데이터에 기초하여, 무선 통신 디바이스는 (중재기를 통해) 우측 상의 보조 스크린을 새로운 디폴트 (또는 최고 우선순위) 디스플레이인 것으로 재우선순위화할 수도 있다. 또 다른 예로서, 디폴트 스크린이 파손되거나 오작동하고 있음을 표시하는 저장된 정보에 기초하여, 무선 통신 디바이스는 이전의 디폴트가 수리될 때까지, 보조 스크린을 디폴트 스크린인 것으로 재우선순위화할 수도 있다. 방법 (800) 을 수행하면, 무선 통신 디바이스는 맥락 (context) 및/또는 이용에 기초하여 더 많은 적절한 디스플레이들을 제어할 것을 애플리케이션들에 지시할 수도 있다.Figure 8 illustrates a
블록 (802) 에서, 무선 통신 디바이스는 디바이스의 모든 디스플레이들에 대한 스테이터스 정보를 저장할 수도 있다. 예를 들어, 무선 통신 디바이스는 데이터베이스 또는 시스템 변수들 내에, 동작 요건들 (예컨대, 전력 소비 파라미터들, 렌더링될 수도 있는 데이터의 타입, 최상으로 렌더링될 수도 있는 데이터의 타입 등), 디스플레이 우선순위 또는 랭크 (예컨대, 디폴트, 보조 등), 차원들 (또는 시청가능한 영역), 및 무선 통신 디바이스에 접속되거나, 또는 이와 다르게 무선 통신 디바이스에 의해 제어되는 복수의 디스플레이들의 각각에 관련된 동작 조건들 또는 기능성 표시들 (예컨대, 파손됨, 오작동, 공칭 (nominal) 등) 을 표시하는 표시자들 또는 다른 설명 정보를 저장할 수도 있다. 실시형태에서, 스테이터스 정보는 예컨대, 사용자 선호도 또는 랭크의 상향 순서 (ascending order) 로 순서화됨으로써, 디스플레이 우선순위에 의해 순서화될 수도 있다. 다양한 실시형태들에서, 무선 통신 디바이스는 등록된 애플리케이션들의 각각에 대하여 복수의 디스플레이들의 각각에 대한 스테이터스 정보를 저장할 수도 있다. 예를 들어, 무선 통신 디바이스는 무선 통신 디바이스의 컴퓨터 플랫폼 상에 상주하는 복수의 애플리케이션들의 각각에 관련된 디스플레이들의 각각에 대한 개별적인 랭크된 리스트들을 저장할 수도 있다.At
블록 (804) 에서, 무선 통신 디바이스는 현재의 조건들에 대한 정보를 위하여 디바이스의 센서들을 폴링할 수도 있다. 무선 통신 디바이스는 카메라들, 마이크로폰들, 서미스터 (thermistor) 들, 가속도계들, 자이로스코프들, 및 터치-센싱 표면들과 같은 다양한 센서들을 포함할 수도 있다. 무선 통신 디바이스는 디바이스의 디스플레이들의 실행가능성과, 디바이스의 사용자가 어떻게 디바이스와 상호작용하는지를 평가하기 위하여 이용될 수도 있는 환경들 또는 사용 상황들을 표시하는 센서 데이터를 수집할 수도 있다. 예를 들어, 무선 통신 디바이스는 디스플레이들을 우선순위화함에 있어서 유용한 상황 정보를 식별하기 위하여 가속도계 센서 데이터를 평가할 수도 있다. 센서 데이터를 이용하면, 무선 통신 디바이스는 서미스터 센서 데이터에 기초한 주변 온도, 카메라 데이터에 기초한 주변 밝기, 가속도계/자이로스코프 센서 데이터에 기초한 현재의 디바이스 이동 또는 모션, 자이로스코프 센서 데이터에 기초한 디바이스 경사, GPS 데이터에 기초한 디바이스 고도, 터치스크린 입력들에 기초한 사용자 입력들, 및 카메라 데이터 (예컨대, 현재의 사용자의 얼굴의 레코딩된 화상 데이터) 또는 마이크로폰 데이터 (예컨대, 현재의 사용자의 음성의 레코딩된 오디오 데이터) 에 기초한 현재의 사용자의 아이덴티티와 같이, 디스플레이들을 이용하는 것에 관련 있는 다양한 상태들을 평가할 수도 있다.At
블록 (806) 에서, 무선 통신 디바이스는 저장된 스테이터스 정보 및/또는 폴링된 센서 데이터에 기초하여 디스플레이들의 실행가능성을 평가할 수도 있다. 예를 들어, 어떤 LCD 스크린에 대한 저장된 스테이터스 정보에 기초하여, 무선 통신 디바이스는 그 스크린이 전력-부족인지 (또는 상당한 양의 배터리 전력을 요구하는지), 높은 온도에서 동작하고 있는지, 어떤 해상도 기능들 (예컨대, 표준 선명도 (standard definition; SD), 고선명도 (high definitioin; HD) 등) 을 가지는지, 터치-감지식 기능성들을 가지는지, 및/또는 현재 적당하게 기능하고 있는지 (예컨대, 파손, 등) 여부를 평가할 수도 있다. 무선 통신 디바이스는 다양한 디스플레이들의 저장된 스테이터스 정보를 하루 중의 시간과 같은 현재의 조건들과 비교할 수도 있다. 또한, 무선 통신 디바이스는 예컨대, 사용자가 디스플레이 상에서 렌더링된 애플리케이션들을 얼마나 양호하게 볼 수도 있는지를 식별하기 위하여, 디스플레이의 발광 출력 기능성들을 표시하는 저장된 정보를 주변 밝기와 비교함으로써, 다양한 디스플레이들의 저장된 스테이터스 정보를 센서 데이터와 비교할 수도 있다. 예를 들어, 무선 통신 디바이스는, 사용자가 보행/주행/착석 중이면서 특정 애플리케이션들을 렌더링할 때에 스크린이 얼마나 유용할 수도 있는지를 식별하기 위하여, 가속도계들로부터의 현재의 모션 데이터를 스크린의 시청가능한 영역과 비교할 수도 있다.At
블록 (808) 에서, 무선 통신 디바이스는 폴링된 센서 데이터에 기초하여 디스플레이들과의 사용자 상호작용들을 평가할 수도 있다. 예를 들어, 터치-감지식 스크린 상에서의 검출된 터치 입력들을 평가함으로써, 무선 통신 디바이스는 다양한 스크린들에 관련된 사용자의 액티비티를 추정할 수도 있다. 무선 통신 디바이스는 검출된 사용자 입력들에 기초하여 현재의 가장-이용된 또는 가장 인기있는 디스플레이를 결정할 수도 있다. 무선 통신 디바이스는 또한, 사용자가 더욱 자주 쳐다 보고 있는 특정 스크린들을 식별하기 위하여 카메라 데이터를 이용하여 아이 트래킹 (eye tracking) 및/또는 헤드 트래킹 (head tracking) 을 수행할 수도 있다. 예를 들어, 무선 통신 디바이스는 아이 트래킹에 기초하여 사용자가 복수의 디스플레이들 중의 임의의 것을 쳐다 보고 있는지 여부, 헤드 트래킹에 기초하여 사용자가 복수의 디스플레이들 중의 임의의 것을 쳐다 보고 있는지 여부, 및/또는 사용자가 복수의 디스플레이들 중의 임의의 것을 터치하고 있는지 여부를 표시하는 사용자 상호작용 정보를 결정할 수도 있다. 실시형태에서, 무선 통신 디바이스는 디바이스가 어떻게 그 현재의 이용을 결정하기 위한 순서로 유지되고 있는지를 식별하기 위하여 자이로스코프 센서 데이터를 평가할 수도 있다. 예를 들어, 센서 데이터가 디바이스가 상향으로 유지되고 있음을 표시할 경우, 무선 통신 디바이스는 사용자가 디바이스의 후방 상의 스크린과 반대로 전방-대향 스크린을 쳐다 보고 있을 가능성을 평가할 수도 있다. 다양한 실시형태들에서, 디바이스와의 사용자 상호작용들은 시간의 주기 동안에 해독될 수도 있고, 이에 따라, 무선 통신 디바이스는 그 시간 동안에 디바이스에서 수집되거나 레코딩되고, 저장된 센서 데이터를 사용할 수도 있다.At
블록 (810) 에서, 무선 통신 디바이스는 디스플레이들의 평가된 실행가능성 및/또는 디스플레이들과의 평가된 사용자 상호작용과 같은 평가들에 기초하여 디스플레이들의 우선순위를 재계산할 수도 있다. 예를 들어, 시간의 주기 동안의 어떤 디스플레이와의 증가된 사용자 상호작용들의 평가에 기초하여, 무선 통신 디바이스는 어떤 디스플레이의 우선순위를 증가시킬 수도 있다 (예컨대, 어떤 디스플레이가 디폴트 또는 우선순위 디스플레이를 행하도록 함). 디스플레이들에 대한 재계산 (또는 재우선순위화) 동작들은 다양한 가중화 방식들, 규칙 세트들, 밸런싱 인자들, 모델들, 수학식들, 및 각각의 디스플레이에 대한 새로운 우선순위 값들을 결정하기 위한 다른 고려사항들을 이용할 수도 있다. 예를 들어, 불규칙한 모션 센서 데이터에 기초하여, 무선 통신 디바이스는 대형 스크린 상에 렌더링된 애플리케이션들이 사용자가 조깅 중일 때에 보기가 더욱 용이하도록, 대형 스크린을 디폴트 디스플레이인 것으로 재우선순위화할 수도 있다. 또 다른 예로서, 무선 통신 디바이스는 디바이스의 배터리 상에 남아 있는 전하가 주어질 경우에, 디바이스가 지속할 수 있는 것보다 스크린이 더 많은 전력을 요구하는 것을 표시하는 스테이터스 정보에 기초하여, 복수의 디스플레이들 중에서 최저 우선순위를 가지도록 디폴트 스크린을 재우선순위화할 수도 있다.At
실시형태에서, 복수의 디스플레이들에서의 디스플레이의 하나 이상의 우선순위는 디스플레이 우선순위의 변경에 응답하여 업데이트될 수도 있거나, 또는 이와 다르게 변경될 수도 있다. 예를 들어, 제 1 디스플레이를 디폴트 (또는 가장 중요한) 디스플레이로서 재우선순위화하는 것에 응답하여, 무선 통신 디바이스는 디폴트 디스플레이였던 복수의 제 2 디스플레이를 반드시 감소 (또는 재우선순위화) 시킬 수도 있다. 블록 (812) 에서, 무선 통신 디바이스는 예컨대, 데이터베이스 내의 디스플레이들과 연관된 데이터 레코드들, 시스템 변수들, 또는 중재기에 의해 액세스가능할 수도 있는 다른 데이터를 업데이트함으로써, 디스플레이들의 재계산된 우선순위들을 저장할 수도 있다. 선택적인 블록 (814) 에서, 무선 통신 디바이스는 미리 정의된 수의 초, 분, 등과 같은 주기를 대기할 수도 있고, 그 다음으로, 블록 (804) 에서 시작하는 동작들을 반복할 수도 있다.In an embodiment, the one or more priorities of the display in the plurality of displays may be updated in response to a change in display priority, or may otherwise be changed. For example, in response to re-prioritizing the first display as the default (or most important) display, the wireless communication device may necessarily reduce (or prioritize) the plurality of secondary displays that were the default display. At
실시형태에서, 방법 (800) 은 도 7a 내지 도 7b 를 참조하여 위에서 설명된 블록 (704) 에서의 동작들 동안에 무선 통신 디바이스에 의해 수행될 수도 있다. 예를 들어, 무선 통신 디바이스는 위에서 설명된 평가들뿐만 아니라, 특정 애플리케이션과 연관된 등록 정보 (예컨대, 애플리케이션에 대하여 렌더링되어야 할 데이터의 타입 등) 에 기초하여 특정 등록된 애플리케이션에 대한 디바이스의 디스플레이들을 재우선순위화하도록 구성될 수도 있다. 다시 말해서, 각각의 등록된 애플리케이션은 재우선순위화될 수도 있는 무선 통신 디바이스의 모든 디스플레이들에 대한 디스플레이 우선순위 리스트와 연관될 수도 있다.In an embodiment,
도 9a 내지 도 12 는 무선 통신 디바이스가 디스플레이를 제어하는 복수의 애플리케이션들과 일치하는 사용자 입력들을 명확하게 하기 위한 실시형태들을 예시한다. 다양한 실시형태들의 장점들 없이, 계승자 애플리케이션 (successor application) 들은, 무선 통신 디바이스가 계승자 애플리케이션들이 디스플레이의 포어그라운드에 대한 제어를 획득하는 것을 허용할 때에 선행자 애플리케이션 (predecessor application) 동작들을 차단할 수도 있다. 특히, 무선 통신 디바이스가 제 1 애플리케이션과 연관된 사용자 입력들 (예컨대, 타이핑된 텍스트, 스피치 커맨드들, 시각적 제스처들 등) 을 수신하고 있고 제 2 애플리케이션이 디스플레이의 제어를 획득하기 위하여 "팝업 (pop up)" 할 때, 사용자 입력들은 다양한 실시형태들이 액티비티가 아닐 경우에 사용자의 의도에 대항하여 제 2 애플리케이션에 적용될 수 있다. 예를 들어, 이메일 클라이언트 (email client) 에서 텍스트 입력을 수신하는 동안, 무선 통신 디바이스는 텍스트 입력 초점 (focus) 을 비디오 호출 애플리케이션으로 이동시키는 예상되지 않은 텍스트를 수신하는 것에 응답하여, 비디오 호출 애플리케이션이 포어그라운드에 도달하는 것을 허용할 수도 있다. 또 다른 예로서, 무선 통신 디바이스는 비디오 애플리케이션을 착수시킬 수도 있고, 그 다음으로, 비디오 애플리케이션이 로딩하는 동안에 포어그라운드의 제어를 이메일 클라이언트에 부여할 수도 있지만; 그러나, 무선 통신 디바이스가 이메일 클라이언트에 대한 텍스트 입력의 단어를 수신하는 도중에, 비디오 애플리케이션은 예기치 않게 팝업할 수도 있다. 또 다른 예로서, 비디오 호출 애플리케이션을 위한 음성-투-텍스트 (또는 음성 커맨드) 입력은 스케줄링된 이벤트의 발생에 기초하여 디스플레이 상에 팝업하는 달력 애플리케이션에 무의식적으로 적용될 수도 있다. 사용자들은 애플리케이션들이 언제 팝업할 수도 있는지와, 언제 디스플레이의 제어를 획득할 수도 있는지를 알지 못할 수도 있으므로, (예컨대, 0.5 초 (half-second) 이내 등) 디스플레이의 제어를 획득하는 새로운 애플리케이션에 대해 시간에 있어서 매우 근접하게 수신된 사용자 입력들이 선행자 애플리케이션에 적용되어야 하는 것으로 가정하기 위한 양호한 이유가 있을 수도 있다.Figures 9A-12 illustrate embodiments for clarifying user inputs consistent with a plurality of applications in which a wireless communication device controls a display. Without the advantages of various embodiments, successor applications may block predecessor application operations when the wireless communication device allows successor applications to obtain control of the foreground of the display. In particular, when a wireless communication device is receiving user inputs (e.g., typed text, speech commands, visual gestures, etc.) associated with a first application and a second application is receiving pop- Quot;), the user inputs may be applied to the second application against the intention of the user if the various embodiments are not activities. For example, while receiving textual input from an email client, the wireless communication device may, in response to receiving unexpected text that moves the text input focus to a video calling application, It may be allowed to reach the foreground. As yet another example, a wireless communication device may launch a video application, and then, while the video application is loading, it may give control of the foreground to the email client; However, while the wireless communication device is receiving the word of text input to the email client, the video application may pop up unexpectedly. As another example, a voice-to-text (or voice command) input for a video calling application may be unintentionally applied to a calendar application that pops up on the display based on the occurrence of the scheduled event. Users may not know when the applications may pop up and when they may gain control of the display, so that for a new application that gets control of the display (e.g., within half a second) There may be good reasons for assuming that the user inputs received in close proximity should be applied to the predecessor application.
도 9a 는 디바이스가 제 1 애플리케이션에 대해 의도된 사용자 입력을 수신할 때에 포어그라운드에 도달하는 제 2 애플리케이션에 대한 제 2 사용자 인터페이스 (906) 로 제 1 애플리케이션에 대한 제 1 사용자 인터페이스 (902) 를 렌더링하는 무선 통신 디바이스의 디스플레이 (904) 를 예시한다. 위에서 설명된 바와 같이, 제 2 애플리케이션은 무선 통신 디바이스가 착신 이벤트 또는 시간조절된-이벤트 (timed-event) 를 수신하는 것에 응답하여, 또는 프로세스가 방금 완료되고 있을 때 (백그라운드에서 로딩되는 애플리케이션이 최종적으로 착수함) 포어그라운드에 도달할 수도 있다 (즉, 디스플레이의 제어를 획득함).9A depicts a
예시적인 예시로서, 무선 통신 디바이스의 사용자는 텍스트 입력 "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 애플리케이션으로부터 변경된 초점에 도달하였다.As an illustrative example, a user of the wireless communication device may intend to write a textual input "Hello world" into the
도 9b 는 무선 통신 디바이스가 타이밍 정보에 기초하여 수신된 사용자 입력들을 제 1 또는 제 2 애플리케이션과 연관시키기 위한 실시형태의 방법 (950) 을 예시한다. 예를 들어, 무선 통신 디바이스는 중재기를 통해, 다양한 시간 입력들이 수신되었고 애플리케이션 초점이 시프트되었음을 평가함으로써, 수신된 사용자 입력들에 대한 의도된 타겟 애플리케이션을 추론하기 위한 동작들을 수행할 수도 있다. 다양한 실시형태들에서, 방법 (950) 은 도 5 내지 도 6 을 참조하여 위에서 설명된 방법들의 일부로서 무선 통신 디바이스에 의해 수행될 수도 있다. 예를 들어, 무선 통신 디바이스는 중재기를 통해, 도 5 의 블록 (160) 또는 도 6 의 블록 (180) 에서의 동작들을 수행한 후에 방법 (950) 을 수행할 수도 있다.9B illustrates an embodiment of a
블록 (952) 에서, 무선 통신 디바이스는 제 1 애플리케이션으로부터 제 2 애플리케이션으로의 포어그라운드 (또는 디스플레이) 의 제어에 있어서의 변경을 검출할 수도 있다. 예를 들어, 제 2 애플리케이션은 중재기가 도 5 의 블록 (160) 또는 도 6 의 블록 (180) 에서의 동작들로 플래그를 전송하였던 비디오 호출 애플리케이션일 수도 있다. 무선 통신 디바이스는 또한, 제 2 애플리케이션이 포어그라운드의 제어를 획득하였던 하루 중의 0.5 초와 같은, 제어에 있어서의 변경과 연관된 시간을 식별하고 저장할 수도 있다. 다양한 실시형태들에서, 무선 통신 디바이스는 오퍼레이팅 시스템 테이블, 시스템 변수, 또는 현재의 제어 애플리케이션뿐만 아니라, 제어 애플리케이션에 의해 제어가 획득되었던 시간도 표시하는 다른 저장된 정보를 평가함으로써, 변경을 검출할 수도 있다. 실시형태에서, 제어에 있어서의 변경은 제 2 애플리케이션이 포어그라운드의 제어를 획득하는 것에 응답하여 생성된 인터럽트 또는 다른 신호에 기초하여 검출될 수도 있다. 실시형태에서, 제어에 있어서의 변경은 초점 표시자에 있어서의 변경 (예컨대, 초점은 사용자 입력들을 삽입하기 위한 목적으로 하나의 사용자 인터페이스로부터 또 다른 것으로 이동될 수도 있음) 을 평가함으로써 검출될 수도 있다.At
블록 (953) 에서, 무선 통신 디바이스는 제어에 있어서의 변경 전에 발생하는 제 1 입력과, 제어에 있어서의 변경 후에 발생하는 제 2 입력을 식별할 수도 있다. 무선 통신 디바이스는 어떤 시간 주기 동안에 디바이스에 의해 수신된 사용자 입력 값들 또는 작동 (action) 들을 저장하는 메모리에서의 일시적인 저장 로케이션과 같은 입력 버퍼를 평가할 수도 있고, 버퍼링된 입력들과 연관된 수신 정보의 시간에 기초하여 제 1 및 제 2 입력들을 식별할 수도 있다. 예를 들어, 수신된 사용자 입력들은 수신의 시간들, 및/또는 사용자 입력들의 수신 시에 포어그라운드를 제어하는 (즉, 초점을 가지는) 애플리케이션과 연관되어 저장될 수도 있다. 대안적으로, 무선 통신은 상이한 애플리케이션들에 대하여 다양한 버퍼들, 어레이들, 또는 다른 데이터 구조들을 이용하도록 구성될 수도 있다. 예를 들어, 무선 통신 디바이스는 제 1 입력을, 포어그라운드를 제어하기 위한 이전의 애플리케이션과 연관된 제 1 버퍼 내에 저장된 데이터로서 식별할 수도 있고, 제 2 입력을, 포어그라운드를 제어하기 위한 현재의 애플리케이션과 연관된 제 2 버퍼 내에 저장된 데이터로서 식별할 수도 있다. 실시형태에서, 제 1 입력은 제어에 있어서의 변경 이전에 수신되었던 사용자 입력의 세그먼트 (예컨대, 가장 최근에 수신된 세그먼트) 뿐일 수도 있다. 예를 들어, 제 1 입력은 제어에 있어서의 변경 이전이지만, 구두법 마크 (punctuation mark), 공간 기호, 리턴 캐리지 (return carriage), 또는 텍스트의 스트림 내의 다른 논리적 분할부 이후에 수신된 텍스트 입력으로서 식별될 수도 있다. 실시형태에서, 무선 통신 디바이스는 제 1 및 제 2 입력들을 수신하는 시간을 식별하기 위하여, 마우스 클릭, 터치, 또는 키보드 이벤트들과 같은 검출된 입력 이벤트들을 사용할 수도 있다. 다양한 실시형태들에서, 사용자 입력들은 터치 입력들 (예컨대, 누름 (press) 들, 스와이프 (swipe) 들, 탭 (tap) 들 등), 텍스트 입력들 (예컨대, 타이핑된 단어들 등), 발성된 (spoken) 또는 구어 (verbal) 입력들 (예컨대, 음성 커맨드들 등), 및/또는 시각적 입력들 (예컨대, 제스처들 등) 일 수도 있다.At
제 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 애플리케이션에 대해 의도된 것으로 해독할 수도 있다.When the second application obtains control of the foreground at some time after the user-written inputs (e.g., text, voice, etc.), the second application may not be considered to be stopping ongoing user input. Accordingly, at
제 1 입력이 제어에 있어서의 변경의 제 1 시간 문턱 내에 수신되었을 경우 (즉, 결정 블록 (954) = "예"), 결정 블록 (956) 에서, 무선 통신 디바이스는 제 2 입력이 제어에 있어서의 변경의 제 2 시간 문턱 내에서 발생하였는지 여부를 결정할 수도 있다. 다시 말해서, 제어의 검출된 변경과, 제 2 입력을 수신하는 것과의 사이의 시간이 제 2 시간 문턱을 초과할 때, 제 2 입력은 제 1 입력의 계속이 아닌 것으로 추정될 수도 있다 (즉, 사용자가 제 2 입력이 제 2 애플리케이션과 연관되도록 의도하였던 것으로 추론될 수도 있음). 무선 통신 디바이스가 미리 정의된 제 2 문턱 값과 비교하기 위한 시간 윈도우 (time window) 를 계산하기 위하여 제 1 을 수신하는 시간 대신에 제 2 입력을 수신하는 시간을 이용할 수도 있다는 것을 제외하고는, 결정 블록 (956) 에서의 동작들이 결정 블록 (954) 을 참조하여 위에서 설명된 것들과 유사할 수도 있다. 다양한 실시형태들에서, 제 1 시간 문턱 및 제 2 시간 문턱은 동일한 값일 수도 있다.If the first input is received within a first time threshold of change in control (i.e.,
제 2 입력이 제 2 시간 문턱의 외부에서 수신되었을 경우 (즉, 결정 블록 (956) = "아니오"), 블록 (960) 에서, 무선 통신 디바이스는 제 2 입력을 제 2 애플리케이션과 연관시킬 수도 있다. 그러나, 제 2 입력이 제 2 시간 문턱 내에 수신되었을 경우 (즉, 결정 블록 (956) = "예"), 블록 (958) 에서, 무선 통신 디바이스는 제 2 입력을 제 1 애플리케이션과 연관시킬 수도 있다. 다시 말해서, 무선 통신은 제 1 애플리케이션에 대한 사용자 입력이 포어그라운드의 제어를 취하는 제 2 애플리케이션에 의해 차단된 것으로 결정할 수도 있으므로, 제 2 입력은 제 1 애플리케이션과 연관될 수도 있다. 선택적인 블록 (962) 에서, 무선 통신 디바이스는 포어그라운드의 제어를 제 1 애플리케이션으로 반환할 수도 있다. 예를 들어, 중재기를 통해, 무선 통신 디바이스는 사용자 입력이 차단되었다는 결정에 기초하여, 포어그라운드를 제어하기 위한 우선순위를 가지는 것을 표시하는 플래그를 제 1 애플리케이션으로 전송할 수도 있다.If the second input is received outside the second time threshold (i.e.,
다양한 실시형태들에서, 결정 블록들 (954 내지 956) 에서의 동작들을 수행하는 대신에, 무선 통신 디바이스는 미리 정의된 문턱 값을 갖는 제 1 및 제 2 입력들을 수신하는 것 사이의 시간을 간단히 비교하도록 구성될 수도 있다. 예를 들어, 일단 무선 통신 디바이스가 제 1 입력이 제어에 있어서의 변경 전에 수신되고 제 2 입력이 제어에 있어서의 변경 후에 수신된 것으로 결정하면, 무선 통신 디바이스는 제 2 입력이 제 2 애플리케이션과 연관될 수도 있는지 여부를 결정하기 위하여, 2 개의 수신들 사이의 측정된 시간을 비교하기만 할 필요가 있을 수도 있다.In various embodiments, instead of performing operations in decision blocks 954 through 956, the wireless communication device simply compares the time between receiving the first and second inputs with a predefined threshold value . For example, once the wireless communication device determines that the first input is received prior to the change in control and the second input is received after the change in control, the wireless communication device determines that the second input is associated with the second application It may be necessary to only compare the measured time between two receivers in order to determine whether or not it may be possible.
다양한 실시형태들에서, 무선 통신 디바이스는 수신된 사용자 입력들 (예컨대, 음성, 텍스트, 제스처들 등) 이 제 1 또는 제 2 애플리케이션에 대해 의도되는지 여부를 결정하기 위한 다양한 인자들, 규칙 세트들, 밸런싱 테스트들, 가중화 방식들, 및 다른 로직을 사용할 수도 있다. 예를 들어, 위에서 설명된 바와 같이 시간 측정들을 평가하는 것에 추가하여, 무선 통신 디바이스는 또한, 사용자가 수신된 사용자 입력들 (예컨대, 타이핑된 텍스트의 스트림) 에 대응하는 디바이스의 포어그라운드의 초점을 변경하도록 의도하였는지 여부를 결정하기 위하여 조작 불능 (no-op) 터치 입력들 및 검출된 터치 입력들의 로케이션을 평가할 수도 있다. 예시로서, 무선 통신 디바이스는 제 2 입력에 관련된 초점 변경이 의도적이었는지 여부를 결정하기 위하여, 터치 입력이 제 2 애플리케이션 텍스트 박스에 일치하는 것으로 검출되었는지 여부를 식별할 수도 있다.In various embodiments, the wireless communication device may include various factors, rules sets, and / or parameters for determining whether the received user inputs (e.g., voice, text, gestures, etc.) are intended for the first or second application Balancing tests, weighting schemes, and other logic. For example, in addition to evaluating the time measurements as described above, the wireless communication device may also be configured to allow the user to focus the foreground of the device corresponding to the received user inputs (e.g., a stream of typed text) (No-op) touch inputs and the location of the detected touch inputs to determine whether or not the touch input is intended to change. By way of example, the wireless communication device may identify whether the touch input was detected as being consistent with the second application text box, to determine whether the focus change associated with the second input was intentional.
제 1 및 제 2 애플리케이션에 대해 의도된 사용자 입력들을 명확하게 하기 위한 또 다른 기법은 추가적인 사용자 입력 (또는 선택 입력) 을 요청하거나 초대하는 프롬프트 다이얼로그 박스 (prompt dialog box) 를 생성하는 것을 포함할 수도 있다. 도 10a 는 제 1 애플리케이션에 대한 제 1 사용자 인터페이스 (902), 포어그라운드에 도달하는 제 2 애플리케이션에 대한 제 2 사용자 인터페이스 (1003), 및 입력을 명확하게 하기 위한 선택 입력을 초대하는 프롬프트 다이얼로그 박스 (1002) 를 렌더링하는 무선 통신 디바이스의 실시형태의 디스플레이 (904) 를 예시한다.Another technique for clarifying intended user inputs for the first and second applications may include creating a prompt dialog box that requests or invites additional user input (or selection input) . 10A shows a
예로서, 무선 통신 디바이스의 사용자는 텍스트 입력 "Hello world" 를 제 1 애플리케이션의 제 1 사용자 인터페이스 (902) 내로 기입하도록 의도할 수도 있다. 제 1 사용자 인터페이스 (902) 는 터치패드 또는 소프트 키보드를 통해 무선 통신 디바이스 내로 타이핑된 입력과 같은 제 1 입력 텍스트 "Hello wo" 와 연관되는 것으로 도시되어 있다. 제 1 애플리케이션은 제 1 입력 텍스트가 수신 (또는 타이핑 입력) 되었을 때에 무선 통신 디바이스의 포어그라운드를 제어하고 있었으므로, 제 1 사용자 인터페이스 (902) 는 제 1 입력 텍스트와 연관될 수도 있다.By way of example, a user of the wireless communication device may intend to write a textual input "Hello world" into the
제 2 사용자 인터페이스 (1003) 는 임의의 연관된 입력을 가지지 않는 것으로 도 10a 에서 도시되어 있다. 그러나, 프롬프트 다이얼로그 박스 (1002) 는 제 2 입력 텍스트 "rld" 뿐만 아니라, 제 2 입력 텍스트와 연관되어야 하는 애플리케이션을 택할 것을 사용자에게 촉구하는 화살표 UI 엘리먼트들 (1004, 1005) 도 포함할 수도 있다. 특히, 제 1 화살표 UI 엘리먼트 (1004) 는 선택될 때에 제 2 입력 텍스트를 제 1 애플리케이션과 연관시키도록 구성될 수도 있고, 제 2 화살표 UI 엘리먼트 (1005) 는 선택될 때에 제 2 입력 텍스트를 제 2 애플리케이션과 연관시키도록 구성될 수도 있다.The
도 10b 는 무선 통신 디바이스가 타이밍 정보 및 사용자로부터의 선택 입력들에 기초하여 수신된 사용자 입력을 제 1 또는 제 2 애플리케이션과 연관시키기 위한 실시형태의 방법 (1050) 을 예시한다. 방법 (1050) 이 사용자가 응답할 수도 있는 프롬프트들을 이용함으로써 사용자 입력들을 명확하기 위한 동작들을 포함할 수도 있다는 것을 제외하고는, 방법 (1050) 은 위에서 설명된 방법 (950) 과 유사하다. 예를 들어, 무선 통신 디바이스는 중재기를 통해, 다양한 타이밍 측정들을 평가함으로써 사용자 입력들에 대한 의도된 타겟 애플리케이션을 추론하기 위한 동작들을 수행할 수도 있고, 사용자들로부터의 선택 입력들을 초대하거나 요청하는 프롬프트들 (예컨대, 팝업 다이얼로그 박스들, 톤들, 시각자료들 등) 을 추가로 렌더링할 수도 있다. 다양한 실시형태들에서, 방법 (1050) 은 도 5 내지 도 6 을 참조하여 위에서 설명된 방법들의 일부로서 무선 통신 디바이스에 의해 수행될 수도 있다. 예를 들어, 무선 통신 디바이스는 중재기를 통해, 도 5 의 블록 (160) 또는 도 6 의 블록 (180) 에서의 동작들을 수행한 후에 방법 (1050) 을 수행할 수도 있다.10B illustrates an embodiment of a
블록 (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 애플리케이션과 연관시킬 수도 있다.At
그러나, 제 2 입력이 제 2 시간 문턱 내에 수신되었을 경우 (즉, 결정 블록 (956) = "예"), 블록 (1052) 에서, 무선 통신 디바이스는 제 2 입력을 연관시키기 위한 후속 사용자 선택 입력들을 요청하는 프롬프트 정보를 렌더링할 수도 있다. 예를 들어, 무선 통신 디바이스는 추가의 사용자 입력들이 제 2 입력에 대한 의도된 애플리케이션을 결정하기 위하여 필요하다는 것을 표시하는 팝업 다이얼로그 박스, 사운드 (예컨대, 음악 샘플, 톤, 처프 (chirp), 자동화된 가청 메시지 등), 및/또는 시각자료 (들) (예컨대, 디스플레이된 텍스트 메시지, 렌더링된 기호 등) 를 렌더링할 수도 있다. 렌더링된 프롬프트 정보는 도 9b 를 참조하여 위에서 설명된 바와 같은, 순수하게 시간-기반 결정에 대한 세분화로 고려될 수도 있다. 다시 말해서, 프롬프트 정보는, 무선 통신 디바이스가 제 2 입력은 제 2 애플리케이션이 포어그라운드의 제어를 획득한 후에 제 2 시간 윈도우 내에 수신되었으며 제 1 입력은 제어의 변경이 발생하기 전에 제 1 시간 윈도우 내에 수신된 것으로 결정할 때에 생성되기만 할 수도 있다. 이러한 방법으로, 프롬프트 정보는, 사용자의 의도가 특히 모호한 상황들에서 렌더링되기만 할 수도 있다 (즉, 제 2 입력의 수신은 제 1 입력의 제어 또는 수신에 있어서의 변경과 시간에 있어서 매우 근접함). 실시형태에서, 무선 통신 디바이스가 입력들을 명확하게 하기 위하여 프롬프트 정보를 렌더링하도록 구성될 때, 제 1 및 제 2 시간 문턱들은 사용자 선호도에 기초하여 더 큰 (또는 더 작은) 시간 윈도우들을 나타낼 수도 있다.However, if the second input is received within the second time threshold (i.e.,
실시형태에서, 무선 통신 디바이스는, 제어에 있어서의 변경을 표시할 수도 있으며 그/그녀가 디바이스를 쳐다 보지 않을 때에도 사용자에 의해 청취될 수도 있는 가청 프롬프트 정보를 렌더링할 수도 있다. 예를 들어, 사용자가 스피치-투-텍스트 또는 음성 커맨드 모드를 통해, 무선 통신 디바이스 상에서 실행되는 제 1 애플리케이션 (예컨대, 노트패드 애플리케이션) 내로 입력을 기입하고 있을 때, 사용자는 무선 통신 디바이스의 디스플레이를 쳐다 보고 있지 않을 수도 있고, 이에 따라, 제 2 애플리케이션 (예컨대, 시간조절된 달력 팝업) 이 언제 포어그라운드의 제어를 획득하는지를 볼 수 없을 수도 있다. 따라서, 사용자에게 통지하기 위하여, 무선 통신 디바이스는 제어의 변경 (또는 초점의 변경) 을 표시하는 특수한 톤, 처프, 음악, 사운드, 또는 메시지 (예컨대, "제 2 애플리케이션으로의 전환") 를 방출할 수도 있다. 실시형태에서, 음성 입력들 (예컨대, 스피치-투-텍스트 입력, 음성 커맨드 모드 동안의 음성 데이터, 전화 호출에 대한 음성 데이터 등) 을 수신할 때, 무선 통신 디바이스는 포어그라운드를 현재 제어하는 애플리케이션을 표시하는 백그라운드 사운드들을 주기적으로 렌더링할 수도 있다. 예를 들어, 무선 통신 디바이스는 제 1 애플리케이션이 포어그라운드에 있는 동안에 제 1 고유 백그라운드 잡음 또는 톤을 방출할 수도 있고, 제 2 애플리케이션이 포어그라운드에 있는 동안에 제 2 고유 백그라운드 잡음 또는 톤을 방출할 수도 있다.In an embodiment, the wireless communication device may display changes in control and / or may render audible prompting information that may be listened to by the user even when he / she is not looking at the device. For example, when a user is writing input into a first application (e.g., a notepad application) running on a wireless communication device via a speech-to-text or voice command mode, May not be staring, and thus may not be able to see when a second application (e.g., a timed calendar popup) gains control of the foreground. Accordingly, in order to notify the user, the wireless communication device may emit a special tone, chirp, music, sound, or message (e.g., "switch to second application") indicating a change in control It is possible. In an embodiment, upon receiving voice inputs (e.g., speech-to-text input, voice data during voice command mode, voice data for telephone calls, etc.), the wireless communication device may send an application that currently controls the foreground You can also periodically render the displayed background sounds. For example, the wireless communication device may emit a first intrinsic background noise or tone while the first application is in foreground, or may emit a second intrinsic background noise or tone while the second application is in foreground have.
결정 블록 (1054) 에서, 무선 통신 디바이스는 제 2 입력이 제 1 앱과 연관되는 것을 표시하는 선택 입력 (또는 사용자 선택 입력) 이 수신되는지 여부를 결정할 수도 있다. 예를 들어, 무선 통신 디바이스는, 제 2 입력 (예컨대, 텍스트 "rld") 을 제 1 입력과 연관시키는 것에 대응하는, 팝업 다이얼로그 박스 상의 화살표 UI 엘리먼트에 대응하는 터치 입력 또는 다른 버튼 누름을 검출하는지 여부를 결정할 수도 있다. 또 다른 예로서, 무선 통신 디바이스는, 제 2 입력이 제 1 애플리케이션과 연관되는 것을 표시하는 음성 커맨드 (예컨대, "다시 전환", "제 1 애플리케이션을 계속함!", "제 1 로 복귀" 등) 를 검출하는지 여부를 결정할 수도 있다. 또 다른 예로서, 무선 통신 디바이스는 제 2 입력이 제 1 애플리케이션과 연관되는 것을 표시하는 미리 정의된 시각적 제스처 커맨드 (예컨대, 사용자가 자신의 손을 어떤 측으로 스와이핑하는 것을 나타내는 카메라에 의해 캡처된 화상, 사용자가 어떤 손 신호를 행하는 것을 나타내는 화상, 사용자가 찌푸리는 것/웃는 것을 나타내는 화상 등) 를 검출하는지 여부를 결정할 수도 있다. 다양한 실시형태들에서, 무선 통신 디바이스는 이미지 프로세싱, 얼굴 인식, 자연 언어 프로세싱, 및/또는 다른 스피치 분석을 이용하여 수신된 선택 입력들을 프로세싱하도록 구성될 수도 있다. 무선 통신 디바이스는 선택 입력이 제 2 입력이 제 2 (또는 제 1) 애플리케이션과 연관되는 것을 표시하는지 여부를 결정하기 위하여, 수신된 선택 입력들 (예컨대, 발성된 단어들, 온-스크린 제스처들 등) 을 저장된 라이브러리들 또는 알려진 패턴들, 단어들, 이미지들, 및 기호들과 비교하도록 추가로 구성될 수도 있다.At
실시형태에서, 무선 통신 디바이스는 제어에 있어서의 변경들을 디스에이블하는 특수한 음성 커맨드들 또는 온-스크린 제스처들과 같은 어떤 선택 입력들을 수신하도록 구성될 수도 있다. 다시 말해서, 무선 통신 디바이스는, 제 1 애플리케이션이 무선 통신 디바이스 (및 중재기) 에게 미리 무슨 일이 있어도 현재의 초점 및 연관된 입력들이 차단되지 않아야 함을 통지하는 포어그라운드에 있는 동안에는, 음성 커맨드, 발성된 어구, 또는 신체적 제스처 (예컨대, 손 신호, 스와이프 등) 를 수신하거나 레코딩할 수도 있다. 예를 들어, 포어그라운드에서의 제 1 애플리케이션 비디오 호출의 실행 동안, 무선 통신은 비디오 호출이 완료되었을 때까지 초점이 변경되지 않아야 함을 표시하는 음성 커맨드 (예컨대, "내가 행할 때까지 호출을 계속해!") 레코딩할 수도 있다.In an embodiment, the wireless communication device may be configured to receive certain selection inputs such as special voice commands or on-screen gestures that disable changes in control. In other words, while the first application is in foreground notifying the wireless communication device (and arbitrator) that the current focus and associated inputs should not be blocked whatever happens in advance, Or a physical gesture (e.g., a hand signal, a swipe, etc.). For example, during the execution of the first application video call in the foreground, the wireless communication may include a voice command indicating that the focus should not change until the video call is complete (e.g., "continue calling until I do! ").
제 2 입력이 제 1 애플리케이션과 연관되는 것을 표시하는 선택 입력이 수신되지 않을 경우 (즉, 결정 블록 (1054) = "아니오"), 블록 (960) 에서, 무선 통신 디바이스는 제 2 입력을 제 2 애플리케이션과 연관시킬 수도 있다. 그러나, 제 2 입력이 제 1 애플리케이션과 연관되는 것을 표시하는 선택 입력이 수신될 경우 (즉, 결정 블록 (1054) = "예"), 블록 (958) 에서, 무선 통신 디바이스는 제 2 입력을 제 1 애플리케이션과 연관시킬 수도 있다.If the selection input indicating that the second input is associated with the first application is not received (i.e.,
도 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) 은 포어그라운드 제어에 있어서의 변경이 발생할 때에 수신된 입력들을 적당하게 연관시키기 위하여 무선 통신 디바이스가 수행할 수도 있는 추가적인 평가들을 예시한다.11A shows a
도 11b 는 무선 통신 디바이스가 수신된 사용자 입력의 내용의 평가들에 기초하여 수신된 사용자 입력들을 제 1 또는 제 2 애플리케이션과 연관시키기 위한 실시형태의 방법 (1150) 을 예시한다. 방법 (1150) 이 초점 전환 또는 포어그라운드의 제어에 있어서의 변경에 관련하여 수신된 사용자 입력들의 의미 및/또는 맥락을 평가함으로써 사용자 입력들을 명확하기 위한 동작들을 포함할 수도 있다는 것을 제외하고는, 방법 (1150) 은 위에서 설명된 방법들 (950 및 1050) 과 유사하다. 예를 들어, 텍스트 사용자 입력들이 그들의 수신 시간에만 기초하여 제 1 또는 제 2 애플리케이션과 명확하게 연관될 수 없을 때 (즉, 텍스트 사용자 입력들이 무선 통신 디바이스 내로 타이핑되었을 때), 무선 통신 디바이스는 텍스트 사용자 입력들이 이들을 다양한 애플리케이션들에 연관시키기 위한 맥락 단서들을 포함하는지 여부를 결정하기 위하여 텍스트 사용자 입력들의 의미를 평가할 수도 있다. 또 다른 예로서, 무선 통신 디바이스는 사용자 의도된 입력들이 제 2 애플리케이션과 연관되어야 할 것인지 여부를 결정하기 위하여, 제 2 애플리케이션의 착수의 시간을 그것이 실제적으로 팝업하는 (즉, 포어그라운드의 제어 또는 초점을 획득함) 시간과 비교할 수도 있다. 다양한 실시형태들에서, 방법 (1150) 은 도 5 내지 도 6 을 참조하여 위에서 설명된 방법들의 일부로서 무선 통신 디바이스에 의해 수행될 수도 있다. 예를 들어, 무선 통신 디바이스는 중재기를 통해, 도 5 의 블록 (160) 또는 도 6 의 블록 (180) 에서의 동작들을 수행한 후에 방법 (1150) 을 수행할 수도 있다.11B illustrates an embodiment of a
블록 (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 애플리케이션과 연관시킬 수도 있다.At
그러나, 제 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 애플리케이션과 함께 이용하기 위해 적절한 것인지 여부를 해독할 수도 있다.However, if the second input is received within the second time threshold (i.e.,
다양한 실시형태들에서, 입력들의 내용 (예컨대, 입력들의 문법, 어법, 구두법, 포맷, 철자, 포맷팅, 및 맥락 또는 해독된 의미) 은, 제 1 입력 및/또는 제 2 입력이 제 1 및/또는 제 2 애플리케이션과 관련되는지 여부를 결정하기 위하여 무선 통신 디바이스에 의해 평가될 수도 있다. 무선 통신은 부분적인 단어들 및 어구들, 및/또는 입력들이 애플리케이션-특정 내용 또는 포맷팅을 포함하는지 여부 (예컨대, 제 2 입력이 제 2 애플리케이션의 명칭 또는 제 2 애플리케이션과 연관되기만 하는 연락처를 포함할 수도 있는 것 등) 를 식별하기 위하여 입력들을 평가할 수도 있다. 예를 들어, 무선 통신 디바이스는 제 2 입력이 제 1 애플리케이션 (예컨대, 대본 편집기 앱) 이 아니라 제 2 애플리케이션 (예컨대, 업무 이메일 클라이언트) 과 함께 이용하기 위하여 그 명칭이 저장되는 업무 파트너를 언제 명명하는지를 검출할 수도 있다. 또 다른 예로서, 무선 통신 디바이스는, 제 2 입력이 업무 이메일 클라이언트에서가 아니라 SMS 메시징 애플리케이션에서 사용자에 의해 이용되기만 할 수도 있는 속어 (예컨대, "lol") 또는 다른 비공식적인 축약들 (예컨대, 문장들의 초반부에 대문자들이 없음 등) 을 언제 포함하는지를 검출할 수도 있다.In various embodiments, the content of the inputs (e.g., the grammar, grammar, punctuation, formatting, spelling, formatting, and context or decoded meaning of the inputs) is such that the first and / May be evaluated by the wireless communication device to determine whether it is associated with the second application. The wireless communication may be based on whether the partial words and phrases and / or inputs include application-specific content or formatting (e.g., whether the second input is a name of a second application or a contact that is only associated with a second application And the like). For example, the wireless communication device may determine when the second input names a business partner whose name is stored for use with a second application (e.g., a business email client) rather than a first application (e.g., a script editor application) . As another example, a wireless communication device may be capable of receiving a second input from a slang word (e.g., "lol") or other informal abbreviations (e.g., sentence Absence of capital letters at the beginning of the document), and so on.
실시형태에서, 무선 통신 디바이스는 제 2 애플리케이션 내에서 이용되어야 할 데이터의 포맷 또는 예상된 타입에 관련하여 제 2 입력의 내용을 추가로 해독할 수도 있다. 예를 들어, 무선 통신은 발성된 단어의 제 2 입력 (예컨대, "hello") 이 제 2 애플리케이션에 대한 입력 엘리먼트를 위해 적절하거나 올바른 것인지 (예컨대, 청구 주소에 관련된 웹 형태 텍스트 필드 내로 기입된 "hello" 가 의미가 통하는가?) 를 평가할 수도 있다. 또 다른 예로서, 제 2 입력이 도시의 명칭 (예컨대, San Diego) 일 경우, 무선 통신 디바이스는 제 2 입력이 제 2 애플리케이션에서 초점을 가지는 텍스트 박스를 위해 적절한 것으로 결정할 수도 있다.In an embodiment, the wireless communication device may further decrypt the content of the second input in relation to the format or expected type of data to be utilized in the second application. For example, the wireless communication may be based on whether a second input (e.g., "hello") of the spoken word is appropriate or correct for the input element for the second application (e.g., hello "has meaning?). As another example, if the second input is a name of the city (e.g., San Diego), the wireless communication device may determine that the second input is appropriate for the text box that has focus in the second application.
블록 (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 애플리케이션과 연관될 가능성이 있는 것으로 평가할 수도 있다.At
다양한 실시형태들에서, 무선 통신 디바이스는 제 2 애플리케이션을 착수하기 위한 사용자의 작동들의 최신성 (recentness) 및/또는 순서를 평가할 수도 있다. 특히, 무선 통신 디바이스는 소프트 키보드 또는 버튼들 상의 수신된 사용자 입력들, 사용자가 제 2 애플리케이션의 착수를 능동적으로 개시하였는지 (예컨대, 그것이 자동-스케줄링되었는지 또는 사용자 입력의 결과였는지) 여부, 제 2 애플리케이션의 착수와 제어에 있어서의 변경 사이의 사용자 작동들 또는 입력들, 제 2 애플리케이션 상의 새로운 스크린과 대응하는 사용자 입력 (예컨대, 버튼 누름) 을 수신하는 것과, 제 2 애플리케이션의 착수 시간 사이의 시간, 및 제 1 애플리케이션의 이전의 스크린에서의 최후 엔트리 (entry) 와 추후의 버튼 누름 사이의 시간을 평가할 수도 있다. 비-제한적인 예시로서, 제 2 애플리케이션을 착수하기 위한 검출된 사용자 입력, 제 2 애플리케이션이 착수된 후에 포어그라운드의 제어를 획득하기 위해 전형적으로 상당한 시간이 걸리는 것을 표시하는 이력 정보, 제 1 애플리케이션 (예컨대, 전화 앱) 을 착수하기 위한 또 다른 검출된 사용자 입력, 타이핑된 텍스트 입력들 (예컨대, 전화 번호) 을 수신하는 것, 및 제 2 애플리케이션으로의 제어의 궁극적인 변경에 기초하여, 무선 통신 디바이스는 버튼 누름들이 모두 완전히 타이트 (tight) 한 것으로 결정할 수도 있고, 사용자가 제 1 애플리케이션과의 호출을 시작하도록 의도할 가능성이 있는 것으로 결론내릴 수도 있다.In various embodiments, the wireless communication device may evaluate the recentness and / or order of the user's actions to launch the second application. In particular, the wireless communication device may be configured to receive received user inputs on a soft keyboard or buttons, whether the user has actively initiated the launch of the second application (e.g., whether it was the result of automatic-scheduling or user input) (E.g., button presses) corresponding to the new screen on the second application, the time between the launching time of the second application, and the time between the start of the second application The time between the last entry in the previous screen of the first application and a subsequent button press may be evaluated. As a non-limiting example, there may be detected user input to launch a second application, history information indicating that it typically takes a considerable amount of time to obtain control of the foreground after the second application is launched, Based on the ultimate change of control to the second application, receiving the detected user input, typed text inputs (e. G., Telephone number) to launch the phone application May determine that the button presses are all fully tight, or may conclude that the user is likely to intend to initiate a call with the first application.
실시형태에서, 무선 통신 디바이스는 또한, 무선 통신 디바이스 컴퓨터 플랫폼 상에 상주하는 다양한 애플리케이션들에 대한 평균 착수 또는 로드 시간들을 설명하는 데이터와 같은 저장된 이력 정보 (예컨대, 휴리스틱 (heuristics)) 를 평가할 수도 있다. 이전의 경험들을 평가하는 것에 기초하여, 무선 통신 디바이스는, 사용자가 제 2 애플리케이션이 언제 팝업할 것인지를 개략적으로 알 수도 있고, 그러므로, 자신의 입력을 이에 따라 시간조절하였을 가능성을 결정할 수도 있다. 예를 들어, 무선 통신 디바이스는, 사용자가 제 2 입력 텍스트 데이터가 웹 브라우저 애플리케이션과 연관될 것을 예상하였을 수도 있는지 여부를 결정하기 위하여, 웹 브라우저 애플리케이션에 대한 포어그라운드를 제어하기 위한 착수로부터의 현재의 시간을, 웹 브라우저 애플리케이션에 대한 이력의 평균 로드 시간들과 비교할 수도 있다.In an embodiment, the wireless communication device may also evaluate stored history information (e.g., heuristics), such as data describing average launch or load times for various applications residing on the wireless communication device computer platform . Based on the evaluation of previous experiences, the wireless communication device may determine the probability that the user may roughly know when the second application will pop up, and therefore time its input accordingly. For example, the wireless communication device may be configured to determine whether the current input from the initiator to control the foreground for the web browser application to determine whether the user may have expected the second input text data to be associated with the web browser application The time may be compared to the average load times of the history for the web browser application.
결정 블록 (1156) 에서, 무선 통신 디바이스는 예컨대, 블록들 (1152 내지 1154) 에서의 동작들을 참조하여 위에서 설명된 평가들로부터의 결론들을 이용함으로써, 평가들 (예컨대, 평가된 내용 및/또는 평가된 착수 시간) 에 기초하여, 사용자가 포어그라운드의 초점을 전환하도록 의도하였는지 여부를 결정할 수도 있다. 다시 말해서, 무선 통신 디바이스는, 사용자가 제 2 입력을 제 2 애플리케이션에 제공하도록 의도하였는지 여부를 추론하기 위하여, 입력들의 해독들 및/또는 제 2 애플리케이션의 착수 시간을 이용할 수도 있다. 무선 통신 디바이스는 다양한 규칙 세트들, 밸런싱 시스템들, 가중화 방식들, 및 결정을 행하기 위한 의사결정 수학식들을 사용할 수도 있다. 예를 들어, 제 1 입력 (예컨대, "hold on..." 의 타이핑된 텍스트) 이 제 2 입력 (예컨대, "are you there?" 의 타이핑된 텍스트) 에 관련되지 않는 것을 표시하는 제 1 및 제 2 입력들의 언어 분석의 평가에 기초하여, 무선 통신 디바이스는 사용자가 초점을 전환하도록 의도하였던 것으로 결정할 수도 있다. 또 다른 예로서, 무선 통신 디바이스가 제 1 및 제 2 입력들의 언어의 의도된 의미를 명확하게 결정할 수 없을 때 (예컨대, 수신된 입력들이 외견상 랜덤 문자들이고, 철자 오기이고, 알려지지 않은 약칭을 이용하는 것 등), 무선 통신 디바이스는 제 2 애플리케이션을 착수하는 것과, 포어그라운드의 제어를 획득한 시간 사이의 시간의 평가를 더 많이 강조할 수도 있다.At
평가들에 기초하여, 사용자가 입력 윈도우들을 전환하도록 의도하였던 것으로 결정되지 않을 경우 (즉, 결정 블록 (1156) = "아니오"), 블록 (960) 에서, 무선 통신 디바이스는 제 2 입력을 제 2 애플리케이션과 연관시킬 수도 있다. 그러나, 평가들에 기초하여, 사용자가 입력 윈도우들을 전환하도록 의도하였던 것으로 결정될 경우 (즉, 결정 블록 (1156) = "예"), 블록 (958) 에서, 무선 통신 디바이스는 제 2 입력을 제 1 애플리케이션과 연관시킬 수도 있다.Based on the evaluations, if it is not determined that the user intended to switch input windows (i.e.,
다양한 실시형태들에서, 무선 통신 디바이스는 제 2 입력이 연관되어야 하는 애플리케이션을 결정하기 위하여, 타이밍 정보의 다양한 평가들 (즉, 결정 블록들 (954 내지 956) 및 블록 (1154) 에서의 동작들) 과 조합하여 또는 이러한 평가들 대신에, 제 1 및 제 2 입력들의 내용을 평가할 수도 있다. 예를 들어, 무선 통신 디바이스는, 제 1 및 제 2 입력들을 수신하는 것 사이의 시간에 관계 없이, 제 2 입력이 제 1 애플리케이션과 연관되는지 여부를 결정하기 위하여 제 1 및 제 2 타이핑된 입력들의 문법 및/또는 단어 의미만을 평가할 수도 있다. 또 다른 예로서, 무선 통신 디바이스는 착수 및 제어에 있어서의 변경 사이의 시간의 평가를, 제 2 입력과 연관된 애플리케이션을 식별함에 있어서 복수의 인자들 중의 하나로서 이용할 수도 있다. 또 다른 예로서, 제 1 입력이 제 1 시간 문턱 내에 있지 않은 것으로 결정되고, 및/또는 제 2 입력이 제 2 시간 문턱 내에 있지 않은 것으로 결정되더라도, 무선 통신은 사용자가 제 2 입력이 제 2 애플리케이션에 적용되도록 의도하였는지 여부를 결정하기 위하여, 제 1 및 제 2 입력들의 내용을 평가하도록 구성될 수도 있다.(I. E., Decision blocks 954 to 956 and operations in block 1154) to determine the application to which the second input is to be associated, in various embodiments, Or instead of these evaluations, the contents of the first and second inputs. For example, the wireless communication device may be configured to determine whether a second input is associated with a first application, regardless of the time between receiving the first and second inputs, Grammar and / or word meaning. As another example, the wireless communication device may use an evaluation of the time between changes in launch and control as one of a plurality of factors in identifying an application associated with a second input. As another example, even if it is determined that the first input is not within the first time threshold, and / or the second input is determined not to be within the second time threshold, The first and second inputs may be configured to evaluate the content of the first and second inputs.
도 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) 을 수행할 수도 있다.Figure 12 illustrates a
블록 (952) 에서, 무선 통신 디바이스는 제 1 애플리케이션으로부터 제 2 애플리케이션으로의 포어그라운드 윈도우의 제어에 있어서의 변경을 검출할 수도 있다. 블록 (1202) 에서, 무선 통신 디바이스는 사용자 인터페이스 상의 터치 입력과 같이, 제어에 있어서의 변경 후에 발생하는 제 2 입력을 식별할 수도 있다. 선택적인 블록 (1203) 에서, 무선 통신 디바이스는 제어에 있어서의 변경 전에 발생하는 제 1 입력을 식별할 수도 있다. 블록들 (1202 내지 1203) 에서의 동작들은 블록 (953) 을 참조하여 위에서 설명된 것과 유사할 수도 있지만, 그러나, 사용자는 무선 통신 디바이스에 의해 연관될 필요가 있는 단일 입력 (즉, 제 2 입력) 을 제공하기만 할 수도 있으므로, 제 1 입력을 식별하기 위한 동작들은 임의적일 수도 있다.At
선택적인 결정 블록 (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 애플리케이션에 대해 의도되었던 것으로 결정할 수도 있다.In an
그러나, 제 2 입력이 제 2 시간 문턱 내에 수신되었을 경우 (즉, 결정 블록 (956) = "예"), 블록 (1204) 에서, 무선 통신 디바이스는 제 2 입력 (예컨대, 검출된 UI 터치 입력) 과 일치하는 제 2 애플리케이션의 사용자 인터페이스 (UI) 엘리먼트를 식별할 수도 있다. 예를 들어, 무선 통신 디바이스는 제 2 입력 (예컨대, 어떤 x-축 및 y-축 좌표들을 가지는 검출된 UI 입력) 과 연관된 스크린 좌표들을, 제 2 애플리케이션에 대해 렌더링된 다양한 UI 엘리먼트들에 대응하는 디스플레이의 영역들과 비교할 수도 있다. 다시 말해서, 무선 통신 디바이스는, 사용자가 제 2 입력으로 클릭하였거나, 눌렀거나, 또는 이와 다르게 관여하였던 소프트 버튼, 텍스트 필드, 또는 다른 렌더링된 엘리먼트를 식별할 수도 있다. 실시형태에서, 무선 통신 디바이스는 UI 엘리먼트를 식별하기 위하여 래스터 (raster) 정보 또는 다른 그래픽 데이터를 평가할 수도 있다.However, at
결정 블록 (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 애플리케이션과 상호작용하도록 의도하였을 가능성이 있는 것으로 추론할 수도 있다.At
그러나, 식별된 UI 엘리먼트가 제 1 애플리케이션의 UI 엘리먼트와 일치할 경우 (즉, 결정 블록 (1206) = "예"), 블록 (958) 에서, 무선 통신 디바이스는 제 2 입력을 제 1 애플리케이션과 연관시킬 수도 있다. 다시 말해서, 제 2 입력 (예컨대, UI 터치 입력) 은 제 2 애플리케이션이 포어그라운드의 제어를 획득하는 어떤 시간 내에 수신되었고, 제 1 및 제 2 애플리케이션들은 유사하게 배치된 UI 엘리먼트들을 가졌으므로, 무선 통신 디바이스는 사용자가 제 1 애플리케이션과 상호작용하도록 의도하였을 가능성이 있는 것으로 추론할 수도 있다. 다양한 실시형태들에서, 무선 통신 디바이스는 제 2 입력이 제 2 또는 제 1 애플리케이션에 대해 의도되었는지 여부를 결정하기 위하여, 제 2 애플리케이션의 착수로부터의 시간과 같은 다양한 다른 인자들을 사용할 수도 있다.However, if the identified UI element matches the UI element of the first application (i.e.,
위에서 설명된 바와 같이, 다양한 실시형태들에서는, 주 애플리케이션이 포어그라운드 (또는 디스플레이) 를 제어하는 동안, 다수의 애플리케이션들이 백그라운드 프로세스들 (또는 중단된 애플리케이션들) 로서 무선 통신 디바이스의 프로세서 상에서 동시에 실행되고 있을 수도 있다. 예를 들어, 제 1 애플리케이션이 포어그라운드를 제어하므로, 제 2 애플리케이션은 무선 통신 디바이스의 백그라운드에서 중단 (또는 중단된 모드에서 실행되도록 구성됨) 될 수도 있다. 중단된 애플리케이션들은 액티비티가 아닐 수도 있지만 (예컨대, 포어그라운드를 제어하지 않음), 임의의 중단된 애플리케이션은 예컨대, 위에서 설명된 바와 같이 중재기로부터 플래그를 수신하는 것에 응답하여, 액티비티로 될 수도 있고 포어그라운드에 도달할 수도 있다. 예를 들어, 수신된 SMS 메시지에 대응하는 통지 이벤트를 오퍼레이팅 시스템으로부터 수신하는 것에 응답하여, 중재기 (또는 중재기 앱) 는 포어그라운드를 제어할 것을 제 1 애플리케이션에 통지할 수도 있고 (즉, 제 1 애플리케이션은 포어그라운드에서 액티비티로 있도록 명령받음), 제 2 애플리케이션이 포어그라운드에 도달하는 것을 금지할 수도 있다 (즉, 제 2 애플리케이션은 백그라운드에서 비액티비티로 있도록 명령받음).As described above, in various embodiments, while the main application controls the foreground (or display), multiple applications run concurrently on the processor of the wireless communication device as background processes (or interrupted applications) There may be. For example, because the first application controls the foreground, the second application may be suspended (or configured to run in an aborted mode) in the background of the wireless communication device. The aborted applications may not be activities (e.g., do not control the foreground), but any interrupted application may be an activity, for example, in response to receiving a flag from the arbiter as described above, It may reach the ground. For example, in response to receiving a notification event corresponding to a received SMS message from the operating system, the arbiter (or arbiter app) may notify the first application to control the foreground (i.e., 1 application is instructed to be an activity in the foreground), the second application may be inhibited from reaching the foreground (i.e., the second application is commanded to be non-activity in the background).
그러나, 비액티비티 애플리케이션들은 중재기의 작동들에 관계 없이, 포어그라운드에 도달하는 것을 여전히 시도할 수도 있다. 예를 들어, 제 2 애플리케이션이 포어그라운드에 도달하는 것을 허용하는 중재기로부터 플래그를 수신하지 않았던 제 2 애플리케이션은 포어그라운드의 제어를 획득하기 위한 동작들을 여전히 수행할 수도 있다. 이러한 미준수 (non-compliant) (또는 "불량") 애플리케이션들은 중재기가 아니라 애플리케이션들에 의해 이용가능한 데이터 또는 선호도들에 기초하여 중재기의 우선순위 결정들을 기각하는 것을 시도할 수도 있다. 예를 들어, 미준수 애플리케이션은, 애플리케이션이 하루 중의 무작위의 시간에 포어그라운드의 제어를 전형적으로 획득하는 것을 표시하는 로컬, 은닉된, 또는 미등록된 구성 정보를 저장할 수도 있다. 이러한 경우, 무선 통신 디바이스는 미준수 애플리케이션들을 종결시킬 수도 있다. 다양한 실시형태들에서, 이러한 종결들은, 무선 통신 디바이스의 오퍼레이팅 시스템의 일부일 수도 있거나, 또는 이와 다르게, 중재기가 다른 애플리케이션들을 직접적으로 제어하는 것을 가능하게 할 수도 있는 관리상 특권들을 가질 수도 있는 중재기를 통해, 무선 통신 디바이스에 의해 수행될 수도 있다.However, non-activity applications may still try to reach the foreground, regardless of the actions of the arbiter. For example, a second application that has not received a flag from an arbiter that allows the second application to reach the foreground may still perform operations to obtain control of the foreground. These non-compliant (or "bad") applications may attempt to disregard arbiter prioritization based on data or preferences available by applications, rather than arbiters. For example, a non-compliant application may store local, hidden, or unregistered configuration information indicating that the application typically obtains control of the foreground at random times of the day. In such a case, the wireless communication device may terminate non-compliant applications. In various embodiments, such terminations may be part of the operating system of the wireless communication device, or alternatively, through an arbiter, which may have administrative privileges that may enable the arbiter to directly control other applications , A wireless communication device.
도 13 은 무선 통신 디바이스가 중재기에 의한 우선순위 결정들과 반대로 무선 통신 디바이스의 포어그라운드의 제어를 획득하였던 미준수 애플리케이션을 종결시키기 위한 실시형태의 방법 (1300) 을 예시한다. 다시 말해서, 통지 이벤트를 수신하는 것에 응답하여 중재 동작들을 수행한 후, 무선 통신 디바이스는 중재를 따르지 않는 동작들을 추후에 수행하는 임의의 애플리케이션을 셧-다운 (shut-down), 중단, 또는 이와 다르게 종결시킬 수도 있다. 예를 들어, 무선 통신 디바이스가 (중재기를 통해) 제 1 애플리케이션이 포어그라운드를 제어하고 수신된 사용자 입력 (예컨대, "Hello Wo") 을 프로세싱하는 것을 허가한 후에, 제 2 애플리케이션이 포어그라운드에 도달할 때, 무선 통신 디바이스는 제 2 애플리케이션을 종결할 수도 있고, 임의의 추후에 수신된 사용자 입력 (예컨대, "rld") 을 제 1 애플리케이션에 적용할 수도 있다. 다양한 실시형태들에서, 방법 (1300) 은 도 5 내지 도 6 을 참조하여 위에서 설명된 방법들의 일부로서 무선 통신 디바이스에 의해 수행될 수도 있다. 예를 들어, 무선 통신 디바이스는 중재기를 통해, 도 5 의 블록 (160) 또는 도 6 의 블록 (180) 에서의 동작들을 수행한 후에 방법 (1300) 을 수행할 수도 있다.13 illustrates an
결정 블록 (1302) 에서, 무선 통신 디바이스는 예컨대, 중재기로부터 우선순위 플래그를 수신하지 않고도 포어그라운드에 도달함으로써, 미준수 애플리케이션이 포어그라운드를 제어하도록 작동하였는지 여부를 결정할 수도 있다. 실시형태에서, 무선 통신 디바이스는 위에서 설명된 바와 같이, 포어그라운드를 현재 제어하는 애플리케이션의 아이덴티티를, 중재 동작들을 통해 결정된 우선순위 애플리케이션의 아이덴티티와 주기적으로 비교함으로써 이 결정을 행할 수도 있다. 또 다른 실시형태에서, 무선 통신 디바이스는 제어에 있어서의 변경 또는 다른 스테이터스 변경을 검출하거나 예상되지 않은 이벤트 통지 (예컨대, 초점에 있어서의 전환을 표시하는 신호 등) 를 수신하는 것에 응답하여, 포어그라운드를 현재 제어하는 애플리케이션의 아이덴티티를, 중재를 통해 결정된 우선순위 애플리케이션의 아이덴티티를 비교함으로써 이 결정을 행할 수도 있다. 미준수 애플리케이션이 포어그라운드를 제어하도록 작동한 것으로 결정되지 않을 경우 (즉, 결정 블록 (1302) = "아니오"), 무선 통신 디바이스는 다른 이벤트 통지들에 대해 모니터링하고 다른 이벤트 통지들을 프로세싱하기 위한 동작들을 계속할 수도 있다.At
그러나, 미준수 애플리케이션이 포어그라운드를 제어하도록 작동한 것으로 결정될 경우 (즉, 결정 블록 (1302) = "예"), 블록 (1304) 에서, 무선 통신 디바이스는 예컨대, 종결 신호 또는 중단 메시지를 미준수 애플리케이션으로 전송함으로써, 미준수 애플리케이션을 종결 (또는 셧-다운) 할 수도 있다. 실시형태에서, 무선 통신 디바이스는 중재기를 통해, 미준수 애플리케이션을 종결시켜서, 그것을 셧-다운시킬 뿐만 아니라, 미준수 애플리케이션이 다시 실행되는 것을 금지할 수도 있다. 예를 들어, 미준수 애플리케이션의 종결 후의 주기 (예컨대, 밀리초, 초 등) 동안, 무선 통신 디바이스는 중재기를 통해, 포어그라운드를 착수 및/또는 제어하기 위한 미준수 애플리케이션에 의한 추후의 시도들에 대하여 모니터링할 수도 있고, 블록 (1304) 에서의 동작들을 반복할 수도 있다. 선택적인 블록 (1306) 에서, 무선 통신 디바이스는 플래그를, 도 5 또는 도 6 을 참조하여 위에서 설명된 동작들을 통해 결정된 우선순위 애플리케이션과 같이, 우선순위를 가지는 애플리케이션으로 재전송할 수도 있다.However, if the non-compliant application is determined to operate to control the foreground (i.e.,
미준수 애플리케이션은 예컨대, 중재기를 통해, 무선 통신 디바이스에 의해 전송된 중단 메시지들을 기각하도록 구성될 수도 있다. 예를 들어, 중재기 앱에 의해 이용가능하지 않은 정보에 기초하여, 미준수 애플리케이션은 포어그라운드의 제어를 유지하기 위하여, 수신된 중단 메시지 또는 종결 신호를 무시할 수도 있다. 이 경우는, 무선 통신 디바이스가 소프트웨어 (예컨대, 구형의 루틴들, 앱, 또는 소프트웨어) 를 업그레이드하지 않았을 때에 발생할 수도 있다.The non-compliant application may be configured to reject the intercept messages sent by the wireless communication device, for example, via the arbiter. For example, based on information that is not available by the arbiter app, the non-compliant application may ignore the received abort message or termination signal to maintain control of the foreground. This may occur when the wireless communication device has not upgraded the software (e.g., legacy routines, apps, or software).
도 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) 에 테더링될 수도 있다.14 is a system block diagram of a smartphone
스마트폰 무선 통신 디바이스 (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) 을 포함할 수도 있다.The smartphone
프로세서들 (84 및 1401) 은, 위에서 설명된 다양한 실시형태들의 기능들을 포함하는 다양한 기능들을 수행하기 위하여 소프트웨어 명령들 (애플리케이션들) 에 의해 구성될 수도 있는 임의의 프로그래밍가능 마이크로프로세서, 마이크포컴퓨터 또는 다중 프로세서 칩 또는 칩들일 수도 있다. 다양한 디바이스들에서는, 무선 통신 기능들에 전용인 하나의 프로세서 및 다른 애플리케이션들을 실행하는 것에 전용인 하나의 프로세서와 같은, 다중 프로세서들이 제공될 수도 있다. 전형적으로, 소프트웨어 애플리케이션들은, 이들이 액세스되고 프로세서들 (84 및 1401) 로 로딩되기 전에 내부 메모리 (88 및 1402) 에서 저장될 수도 있다. 프로세서들 (84 및 1401) 은 애플리케이션 소프트웨어 명령들을 저장하기 위해 충분한 내부 메모리를 포함할 수도 있다. 다수의 디바이스들에서, 내부 메모리는 플래시 메모리와 같은 휘발성 또는 비휘발성 메모리, 또는 양자의 혼합일 수도 있다. 이 설명의 목적들을 위하여, 메모리에 대한 일반적인 참조는, 내부 메모리, 또는 다양한 디바이스들 내로 플러깅된 (plugged) 분리가능 메모리와, 프로세서들 (84 및 1401) 내의 메모리를 포함하는, 프로세서들 (84 및 1401) 에 의해 액세스가능한 메모리를 지칭한다.
상기한 방법 설명들 및 프로세스 흐름도들은 예시적인 예들에 불과한 것으로서 제공되고, 다양한 실시형태들의 단계들이 제시된 순서로 수행되어야 하는 것을 요구하거나 암시하도록 의도된 것이 아니다. 당해 분야의 당업자에 의해 인식될 수도 있는 바와 같이, 상기한 실시형태들에서의 단계들의 순서는 임의의 순서로 수행될 수도 있다. "그 후", "다음으로", "다음" 등과 같은 단어들은 단계들의 순서를 제한하도록 의도된 것이 아니고; 이 단어들은 방법들의 설명을 통해 독자를 안내하기 위하여 간단하게 이용된다. 또한, 예를 들어, 관사들 "a", "an", 또는 "the" 를 이용하는 단수인 청구항 구성요소들에 대한 임의의 참조는 구성요소를 단수로 제한하는 것으로 해석되지 않아야 한다.The above method descriptions and process flow diagrams are provided by way of illustrative example only and are not intended to be required or to imply that the steps of various embodiments should be performed in the order presented. As may be recognized by those skilled in the art, the order of the steps in the above embodiments may be performed in any order. The words "after "," next ", "next" and the like are not intended to limit the order of the steps; These words are simply used to guide the reader through a description of methods. In addition, any reference to a claim element, for example, that uses the articles "a", "an", or "the", should not be construed as limiting the element in a singular manner.
본원에서 개시된 실시형태들과 관련하여 설명된 다양한 예시적인 논리적 블록들, 모듈들, 회로들, 및 알고리즘 단계들은 전자 하드웨어, 프로세서-실행가능 명령들, 컴퓨터 소프트웨어, 또는 양자의 조합들로서 구현될 수도 있다. 하드웨어 및 소프트웨어의 이 교환가능성을 명확하게 예시하기 위하여, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들은 일반적으로 그 기능성의 측면에서 위에서 설명되었다. 이러한 기능성이 하드웨어 또는 소프트웨어로 구현되는지 여부는 특정 애플리케이션과, 전체 시스템에 부과된 설계 제약들에 종속된다. 숙련된 기술자들은 각각의 특정 애플리케이션을 위한 다양한 방법들로 설명된 기능성을 구현할 수도 있지만, 이러한 구현 판단들은 본 발명의 범위로부터의 이탈을 야기시키는 것으로 해독되지 않아야 한다.The various illustrative logical blocks, modules, circuits, and algorithm steps described in connection with the embodiments disclosed herein may be implemented as electronic hardware, processor-executable instructions, computer software, or combinations of both . In order to clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, modules, circuits, and steps have been described above generally in terms of their functionality. Whether such functionality is implemented in hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in various ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present invention.
본원에서 개시된 실시형태들과 관련하여 설명된 다양한 예시적인 로직들, 논리적 블록들, 모듈들, 및 회로들을 구현하기 위하여 이용된 하드웨어는 범용 프로세서, 디지털 신호 프로세서 (digital signal processor; DSP), 애플리케이션 특정 집적 회로 (application specific integrated circuit; ASIC), 필드 프로그래밍가능 게이트 어레이 (field programmable gate array; FPGA) 또는 다른 프로그래밍가능 로직 디바이스, 개별 게이트 또는 트랜지스터 로직, 개별 하드웨어 컴포넌트들, 또는 본원에서 설명된 기능들을 수행하도록 설계된 그 임의의 조합으로 구현되거나 수행될 수도 있다. 범용 프로세서는 마이크로프로세서일 수도 있지만, 대안적으로, 프로세서는 임의의 기존의 프로세서, 제어기, 마이크로제어기, 또는 상태 머신 (state machine) 일 수도 있다. 프로세서는 또한, 컴퓨팅 디바이스들의 조합, 예컨대, DSP 및 마이크로프로세서, 복수의 마이크로프로세서들, DSP 코어와 함께 하나 이상의 마이크로프로세서들, 또는 임의의 다른 이러한 구성의 조합으로서 구현될 수도 있다. 대안적으로, 일부의 단계들 또는 방법들은 주어진 기능에 특정한 회로부에 의해 수행될 수도 있다.The hardware utilized to implement the various illustrative logic, logical blocks, modules, and circuits described in connection with the embodiments disclosed herein may be implemented or performed with a general purpose processor, a digital signal processor (DSP) An application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or perform the functions described herein Or may be implemented in any combination thereof. A general purpose processor may be a microprocessor, but, in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such combination of configurations. Alternatively, some of the steps or methods may be performed by circuitry specific to a given function.
방법들이 이동 통신 디바이스 및 다른 컴퓨터 플랫폼들에서 실행가능한 것을 고려하면, 방법들은 이에 따라, 비-일시적인 컴퓨터 판독가능 매체 (또는 비-일시적인 프로세서-판독가능 저장 매체) 에서 상주하는 프로그램에 의해 수행될 수도 있고, 여기서, 프로그램은 컴퓨터 플랫폼을 가지는 이동 디바이스 또는 다른 컴퓨터 디바이스가 방법들의 단계들을 수행할 것을 명령한다. 비-일시적인 컴퓨터 판독가능 매체는 서버의 메모리일 수도 있거나, 연결 데이터베이스 내에 있을 수도 있다. 또한, 비-일시적인 컴퓨터 판독가능 매체는, 자기 디스크 또는 테이프, 광학 디스크, 하드 디스크, 플래시 메모리, 또는 당해 분야에서 알려진 바와 같은 다른 저장 매체들과 같이, 무선 통신 디바이스 컴퓨터 플랫폼 상으로 로딩가능한 보조 저장 매체들 내에 있을 수도 있다.Considering that the methods are executable on mobile communication devices and other computer platforms, the methods may thus also be performed by a program resident on a non-transitory computer readable medium (or non-transient processor-readable storage medium) Where the program instructs a mobile device or other computer device having a computer platform to perform the steps of the methods. The non-transient computer readable medium may be the memory of the server or may be in a connection database. In addition, non-transitory computer readable media can also be stored on a wireless communication device computer platform, such as a magnetic disk or tape, an optical disk, a hard disk, a flash memory, or other storage media as known in the art, Lt; / RTI > media.
하나 이상의 예시적인 실시형태들에서, 설명된 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 그 임의의 조합으로 구현될 수도 있다. 소프트웨어로 구현될 경우, 기능들은 비-일시적인 컴퓨터-판독가능 매체 (또는 비-일시적인 프로세서-판독가능 저장 매체) 상에서 하나 이상의 명령들 (예컨대, 프로세서-실행가능 명령들 또는 프로세서-실행가능 소프트웨어 명령들) 또는 코드로서 저장될 수도 있다. 저장 매체들은 컴퓨터에 의해 액세스될 수도 있는 임의의 이용가능한 매체들일 수도 있다. 제한이 아닌 예로서, 이러한 비-일시적인 컴퓨터-판독가능 매체들은 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) 들은 데이터를 레이저들로 광학적으로 재생한다. 상기의 조합들은 또한, 비-일시적인 컴퓨터-판독가능 매체들의 범위 내에 포함되어야 한다.In one or more exemplary embodiments, the functions described may be implemented in hardware, software, firmware, or any combination thereof. When implemented in software, the functions may be performed on one or more instructions (e.g., processor-executable instructions or processor-executable software instructions) on a non-temporal computer-readable medium ) Or as a code. The storage media may be any available media that may be accessed by a computer. By way of example, and not limitation, such non-transitory computer-readable media can be stored in RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage, or other magnetic storage devices, May include any other storage medium that may be utilized to store the desired program code and may be accessed by a computer. As used herein, discs and discs may be referred to as compact discs (CD), laser discs, optical discs, digital versatile discs (DVDs) Includes a floppy disk and a blu-ray disc, where disks usually reproduce data magnetically, while discs optically reproduce data with lasers do. Combinations of the above should also be included within the scope of non-temporary computer-readable media.
발명은 그 바람직한 실시형태를 참조하여 특히 도시되고 설명되었지만, 다음의 청구항들에서 기재된 바와 같은 본 발명의 범위로부터 이탈하지 않으면서, 형태 및 세부사항에 있어서의 다양한 변경들이 행해질 수도 있다는 것은 당해 분야의 당업자들에 의해 이해될 수도 있다. 이에 따라, 본 발명은 본원에서 도시된 실시형태들에 제한되도록 의도된 것이 아니라, 다음의 청구항들 및 본원에서 개시된 원리들 및 신규한 특징들과 부합하는 가장 넓은 범위를 따르도록 하기 위한 것이다. 또한, 발명의 요소들은 단수 형태로 설명되거나 청구될 수도 있지만, 단수에 대한 제한이 명시적으로 기재되어 있지 않을 경우에는 복수가 고려된다.While the invention has been particularly shown and described with reference to the preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the scope of the invention as set forth in the following claims And may be understood by those skilled in the art. Accordingly, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the following claims and the principles and novel features disclosed herein. Also, elements of the invention may be described or claimed in the singular, but the plural is contemplated unless limitation to the singular is explicitly stated.
Claims (36)
중재기를 통해, 하나를 초과하는 애플리케이션을 동시에 인보크하는 통지 이벤트를 수신하는 것에 응답하여, 미리 결정된 기준들에 기초하여 상기 무선 통신 디바이스의 디스플레이를 제어하는 상기 복수의 애플리케이션들 중의 제 1 애플리케이션을 결정하는 단계;
상기 중재기를 통해, 상기 제 1 애플리케이션이 상기 디스플레이를 제어하는 것으로 결정하는 것에 응답하여, 상기 복수의 애플리케이션들에서의 상기 제 1 애플리케이션으로부터 상기 복수의 애플리케이션들에서의 제 2 애플리케이션으로의 상기 디스플레이의 제어에 있어서의 변경을 검출하는 단계;
상기 디스플레이의 상기 제어에 있어서의 상기 검출된 변경 전에 수신된 제 1 입력과, 상기 디스플레이의 상기 제어에 있어서의 상기 검출된 변경 후에 수신된 제 2 입력을 식별하는 단계;
상기 제 1 입력이 상기 디스플레이의 상기 제어에 있어서의 상기 검출된 변경의 제 1 시간 문턱 내에 수신되었는지 여부를 결정하는 단계;
상기 제 2 입력이 상기 디스플레이의 상기 제어에 있어서의 상기 검출된 변경의 제 2 시간 문턱 내에 수신되었는지 여부를 결정하는 단계; 및
상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되지 않았거나 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신되지 않은 것으로 결정하는 것에 응답하여, 상기 제 2 입력을 상기 제 2 애플리케이션과 연관시키는 단계를 포함하는, 사용자 의도에 따라 사용자 입력 데이터를 복수의 애플리케이션들과 연관시키는 방법.A method of associating user input data with a plurality of applications resident on a wireless communication device in accordance with user intent,
Determine a first one of the plurality of applications that controls the display of the wireless communication device based on predetermined criteria, in response to receiving, via the arbiter, a notification event that simultaneously invokes more than one application ;
In response to determining, by the intermediary, that the first application is to control the display, control of the display from the first application in the plurality of applications to the second application in the plurality of applications Detecting a change in the content;
Identifying a first input received prior to the detected change in the control of the display and a second input received after the detected change in the control of the display;
Determining whether the first input has been received within a first time threshold of the detected change in the control of the display;
Determining whether the second input has been received within a second time threshold of the detected change in the control of the display; And
Associating the second input with the second application in response to determining that the first input has not been received within the first time threshold or that the second input has not been received within the second time threshold, Wherein the user input data is associated with a plurality of applications.
상기 제 1 입력 및 상기 제 2 입력은 양자 모두, 터치 입력들, 텍스트 입력들, 발성된 입력들, 또는 시각적 입력들 중의 하나인, 사용자 의도에 따라 사용자 입력 데이터를 복수의 애플리케이션들과 연관시키는 방법.The method according to claim 1,
The first input and the second input are both methods of associating user input data with a plurality of applications according to user intent, which is one of touch inputs, text inputs, voiced inputs, or visual inputs .
상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제 2 입력을 상기 제 1 애플리케이션과 연관시키는 단계를 더 포함하는, 사용자 의도에 따라 사용자 입력 데이터를 복수의 애플리케이션들과 연관시키는 방법.The method according to claim 1,
Further comprising associating the second input with the first application in response to determining that the first input has been received within the first time threshold and the second input has been received within the second time threshold And associating user input data with a plurality of applications according to user intent.
상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제 2 입력을 상기 제 1 애플리케이션 및 상기 제 2 애플리케이션 중의 하나와 연관시키기 위한 사용자 선택 입력을 요청하는 프롬프트 (prompt) 를 렌더링하는 단계;
사용자 인터페이스를 통해 상기 사용자 선택 입력을 수신하는 단계; 및
상기 수신된 사용자 선택 입력에 기초하여 상기 제 2 입력을 상기 제 1 애플리케이션 및 상기 제 2 애플리케이션 중의 하나와 연관시키는 단계를 더 포함하는, 사용자 의도에 따라 사용자 입력 데이터를 복수의 애플리케이션들과 연관시키는 방법.The method according to claim 1,
Responsive to determining that the first input has been received within the first time threshold and the second input has been received within the second time threshold, sending the second input to one of the first application and the second application Rendering a prompt requesting a user-selected input to associate;
Receiving the user selection input via a user interface; And
Further comprising associating the second input with one of the first application and the second application based on the received user selected input, wherein the user input data is associated with a plurality of applications .
상기 제 1 입력은 구어 입력 (verbal input) 이고;
상기 프롬프트는 제 2 사운드이고; 그리고
상기 방법은, 상기 디스플레이의 상기 제어에 있어서의 상기 변경을 검출하기 이전에 제 1 사운드를 렌더링하는 단계를 더 포함하는, 사용자 의도에 따라 사용자 입력 데이터를 복수의 애플리케이션들과 연관시키는 방법.5. The method of claim 4,
The first input is a verbal input;
The prompt is a second sound; And
The method further comprising rendering a first sound prior to detecting the change in the control of the display, wherein the user input data is associated with a plurality of applications.
상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제 1 입력 및 상기 제 2 입력의 내용을 평가하는 단계;
상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제어에 있어서의 상기 검출된 변경에 관련하여 상기 제 2 애플리케이션의 착수 시간을 평가하는 단계; 및
상기 평가된 내용 및 상기 평가된 착수 시간 중의 적어도 하나에 기초하여 상기 제 2 입력을 상기 제 1 애플리케이션 또는 상기 제 2 애플리케이션과 연관시키는 단계를 더 포함하는, 사용자 의도에 따라 사용자 입력 데이터를 복수의 애플리케이션들과 연관시키는 방법.The method according to claim 1,
Evaluating the contents of the first input and the second input in response to determining that the first input has been received within the first time threshold and the second input has been received within the second time threshold;
Responsive to determining that said first input has been received within said first time threshold and said second input has been received within said second time threshold, Evaluating the start time; And
Further comprising associating the second input with the first application or the second application based on at least one of the evaluated content and the evaluated start time, ≪ / RTI >
상기 내용은 문법, 철자, 구두법, 포맷, 맥락, 및 해독된 의미 중의 적어도 하나인, 사용자 의도에 따라 사용자 입력 데이터를 복수의 애플리케이션들과 연관시키는 방법.The method according to claim 6,
Wherein the content is at least one of grammar, spelling, punctuation, format, context, and decoded meaning, wherein the user input data is associated with a plurality of applications.
상기 제 2 입력은 터치 입력이고, 상기 방법은,
상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제 2 입력에 대응하는 상기 제 2 애플리케이션의 제 2 사용자 인터페이스 엘리먼트를 식별하는 단계;
상기 제 2 애플리케이션의 상기 식별된 제 2 사용자 인터페이스 엘리먼트가 상기 제 1 애플리케이션의 제 1 사용자 인터페이스 엘리먼트와 일치하는지 여부를 결정하는 단계; 및
상기 식별된 제 2 사용자 인터페이스 엘리먼트가 상기 제 1 사용자 인터페이스 엘리먼트와 일치하는 것으로 결정하는 것에 응답하여, 상기 제 2 입력을 상기 제 1 애플리케이션과 연관시키는 단계를 더 포함하는, 사용자 의도에 따라 사용자 입력 데이터를 복수의 애플리케이션들과 연관시키는 방법.The method according to claim 1,
Wherein the second input is a touch input,
Responsive to determining that the first input has been received within the first time threshold and the second input has been received within the second time threshold, the second user interface element of the second application corresponding to the second input ;
Determining whether the identified second user interface element of the second application matches a first user interface element of the first application; And
Further comprising associating the second input with the first application in response to determining that the identified second user interface element matches the first user interface element, To a plurality of applications.
중재기를 통해, 하나를 초과하는 애플리케이션을 동시에 인보크하는 통지 이벤트를 수신하는 것에 응답하여, 미리 결정된 기준들에 기초하여 상기 무선 통신 디바이스의 디스플레이를 제어하는 상기 복수의 애플리케이션들 중의 제 1 애플리케이션을 결정하는 단계;
상기 복수의 애플리케이션들 중의 제 2 애플리케이션이, 상기 복수의 애플리케이션들 중의 상기 제 1 애플리케이션이 상기 디스플레이를 제어한다는 상기 중재기를 통한 상기 결정을 따르지 않았는지 여부를 결정하는 단계; 및
상기 복수의 애플리케이션들 중의 상기 제 2 애플리케이션이 따르지 않은 것으로 결정하는 것에 응답하여, 상기 제 2 애플리케이션을 종결시키는 단계를 포함하는, 무선 통신 디바이스 상에 상주하는 복수의 애플리케이션들을 제어하는 방법.A method for controlling a plurality of applications resident on a wireless communication device,
Determine a first one of the plurality of applications that controls the display of the wireless communication device based on predetermined criteria, in response to receiving, via the arbiter, a notification event that simultaneously invokes more than one application ;
Determining whether a second one of the plurality of applications has not followed the determination through the arbiter that the first one of the plurality of applications controls the display; And
And terminating the second application in response to determining that the second one of the plurality of applications does not comply with the first application.
중재기를 통해, 하나를 초과하는 애플리케이션을 동시에 인보크하는 통지 이벤트를 수신하는 것에 응답하여, 미리 결정된 기준들에 기초하여 상기 무선 통신 디바이스의 디스플레이를 제어하는 복수의 애플리케이션들 중의 제 1 애플리케이션을 결정하기 위한 수단;
상기 중재기를 통해, 상기 제 1 애플리케이션이 상기 디스플레이를 제어하는 것으로 결정하는 것에 응답하여, 상기 복수의 애플리케이션들에서의 상기 제 1 애플리케이션으로부터 상기 복수의 애플리케이션들에서의 제 2 애플리케이션으로의 상기 디스플레이의 제어에 있어서의 변경을 검출하기 위한 수단;
상기 디스플레이의 상기 제어에 있어서의 상기 검출된 변경 전에 수신된 제 1 입력과, 상기 디스플레이의 상기 제어에 있어서의 상기 검출된 변경 후에 수신된 제 2 입력을 식별하기 위한 수단;
상기 제 1 입력이 상기 디스플레이의 상기 제어에 있어서의 상기 검출된 변경의 제 1 시간 문턱 내에 수신되었는지 여부를 결정하기 위한 수단;
상기 제 2 입력이 상기 디스플레이의 상기 제어에 있어서의 상기 검출된 변경의 제 2 시간 문턱 내에 수신되었는지 여부를 결정하기 위한 수단; 및
상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되지 않았거나 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신되지 않은 것으로 결정하는 것에 응답하여, 상기 제 2 입력을 상기 제 2 애플리케이션과 연관시키기 위한 수단을 포함하는, 무선 통신 디바이스.A wireless communication device,
Determining a first one of a plurality of applications that controls the display of the wireless communication device based on predetermined criteria, in response to receiving, via the arbiter, a notification event that simultaneously invokes more than one application Means for;
In response to determining, by the intermediary, that the first application is to control the display, control of the display from the first application in the plurality of applications to the second application in the plurality of applications Means for detecting a change in the position of the object;
Means for identifying a first input received prior to the detected change in the control of the display and a second input received after the detected change in the control of the display;
Means for determining whether the first input has been received within a first time threshold of the detected change in the control of the display;
Means for determining whether the second input has been received within a second time threshold of the detected change in the control of the display; And
Means for associating the second input with the second application in response to determining that the first input has not been received within the first time threshold or that the second input has not been received within the second time threshold, The wireless communication device.
상기 제 1 입력 및 상기 제 2 입력은 양자 모두, 터치 입력들, 텍스트 입력들, 발성된 입력들, 또는 시각적 입력들 중의 하나인, 무선 통신 디바이스.11. The method of claim 10,
Wherein the first input and the second input are both one of touch inputs, text inputs, voiced inputs, or visual inputs.
상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제 2 입력을 상기 제 1 애플리케이션과 연관시키기 위한 수단을 더 포함하는, 무선 통신 디바이스.11. The method of claim 10,
Further comprising means for associating the second input with the first application in response to determining that the first input has been received within the first time threshold and the second input has been received within the second time threshold Lt; / RTI >
상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제 2 입력을 상기 제 1 애플리케이션 및 상기 제 2 애플리케이션 중의 하나와 연관시키기 위한 사용자 선택 입력을 요청하는 프롬프트를 렌더링하기 위한 수단;
사용자 인터페이스를 통해 상기 사용자 선택 입력을 수신하기 위한 수단; 및
상기 수신된 사용자 선택 입력에 기초하여 상기 제 2 입력을 상기 제 1 애플리케이션 및 상기 제 2 애플리케이션 중의 하나와 연관시키기 위한 수단을 더 포함하는, 무선 통신 디바이스.11. The method of claim 10,
Responsive to determining that the first input has been received within the first time threshold and the second input has been received within the second time threshold, sending the second input to one of the first application and the second application Means for rendering a prompt requesting a user-selected input to associate;
Means for receiving the user selection input via a user interface; And
And means for associating the second input with one of the first application and the second application based on the received user selected input.
상기 제 1 입력은 구어 입력이고;
상기 프롬프트는 제 2 사운드이고; 그리고
상기 무선 통신 디바이스는, 상기 디스플레이의 상기 제어에 있어서의 상기 변경을 검출하기 이전에 제 1 사운드를 렌더링하기 위한 수단을 더 포함하는, 무선 통신 디바이스.14. The method of claim 13,
Wherein the first input is a speech input;
The prompt is a second sound; And
Wherein the wireless communication device further comprises means for rendering a first sound before detecting the change in the control of the display.
상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제 1 입력 및 상기 제 2 입력의 내용을 평가하기 위한 수단;
상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제어에 있어서의 상기 검출된 변경에 관련하여 상기 제 2 애플리케이션의 착수 시간을 평가하기 위한 수단; 및
상기 평가된 내용 및 상기 평가된 착수 시간 중의 적어도 하나에 기초하여 상기 제 2 입력을 상기 제 1 애플리케이션 또는 상기 제 2 애플리케이션과 연관시키기 위한 수단을 더 포함하는, 무선 통신 디바이스.11. The method of claim 10,
Means for evaluating the contents of the first input and the second input in response to determining that the first input has been received within the first time threshold and the second input has been received within the second time threshold;
Responsive to determining that said first input has been received within said first time threshold and said second input has been received within said second time threshold, Means for evaluating start time; And
And means for associating the second input with the first application or the second application based on at least one of the evaluated content and the evaluated start time.
상기 내용은 문법, 철자, 구두법, 포맷, 맥락, 및 해독된 의미 중의 적어도 하나인, 무선 통신 디바이스.16. The method of claim 15,
Wherein the content is at least one of grammar, spelling, punctuation, format, context, and decoded meaning.
상기 제 2 입력은 터치 입력이고, 상기 통신 디바이스는,
상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제 2 입력에 대응하는 상기 제 2 애플리케이션의 제 2 사용자 인터페이스 엘리먼트를 식별하기 위한 수단;
상기 제 2 애플리케이션의 상기 식별된 제 2 사용자 인터페이스 엘리먼트가 상기 제 1 애플리케이션의 제 1 사용자 인터페이스 엘리먼트와 일치하는지 여부를 결정하기 위한 수단; 및
상기 식별된 제 2 사용자 인터페이스 엘리먼트가 상기 제 1 사용자 인터페이스 엘리먼트와 일치하는 것으로 결정하는 것에 응답하여, 상기 제 2 입력을 상기 제 1 애플리케이션과 연관시키기 위한 수단을 더 포함하는, 무선 통신 디바이스.11. The method of claim 10,
Wherein the second input is a touch input,
Responsive to determining that the first input has been received within the first time threshold and the second input has been received within the second time threshold, the second user interface element of the second application corresponding to the second input Means for identifying a user;
Means for determining whether the identified second user interface element of the second application matches a first user interface element of the first application; And
And means for associating the second input with the first application in response to determining that the identified second user interface element matches the first user interface element.
중재기를 통해, 하나를 초과하는 애플리케이션을 동시에 인보크하는 통지 이벤트를 수신하는 것에 응답하여, 미리 결정된 기준들에 기초하여 상기 무선 통신 디바이스의 디스플레이를 제어하는 복수의 애플리케이션들 중의 제 1 애플리케이션을 결정하기 위한 수단;
상기 복수의 애플리케이션들 중의 제 2 애플리케이션이, 상기 복수의 애플리케이션들 중의 상기 제 1 애플리케이션이 상기 디스플레이를 제어한다는 상기 중재기를 통한 상기 결정을 따르지 않았는지 여부를 결정하기 위한 수단; 및
상기 복수의 애플리케이션들 중의 상기 제 2 애플리케이션이 따르지 않은 것으로 결정하는 것에 응답하여, 상기 제 2 애플리케이션을 종결시키기 위한 수단을 포함하는, 무선 통신 디바이스.A wireless communication device,
Determining a first one of a plurality of applications that controls the display of the wireless communication device based on predetermined criteria, in response to receiving, via the arbiter, a notification event that simultaneously invokes more than one application Means for;
Means for determining whether a second one of the plurality of applications has not followed the determination through the arbiter that the first one of the plurality of applications controls the display; And
And means for terminating the second application in response to determining that the second one of the plurality of applications does not comply.
메모리; 및
상기 메모리에 결합된 프로세서를 포함하고, 상기 프로세서는 동작들을 수행하기 위한 프로세서-실행가능 명령들로 구성되고, 상기 프로세서-실행가능 명령들은,
중재기를 통해, 하나를 초과하는 애플리케이션을 동시에 인보크하는 통지 이벤트를 수신하는 것에 응답하여, 미리 결정된 기준들에 기초하여 상기 무선 통신 디바이스의 디스플레이를 제어하는 복수의 애플리케이션들 중의 제 1 애플리케이션을 결정하는 것;
상기 중재기를 통해, 상기 제 1 애플리케이션이 상기 디스플레이를 제어하는 것으로 결정하는 것에 응답하여, 상기 복수의 애플리케이션들에서의 상기 제 1 애플리케이션으로부터 상기 복수의 애플리케이션들에서의 제 2 애플리케이션으로의 상기 디스플레이의 제어에 있어서의 변경을 검출하는 것;
상기 디스플레이의 상기 제어에 있어서의 상기 검출된 변경 전에 수신된 제 1 입력과, 상기 디스플레이의 상기 제어에 있어서의 상기 검출된 변경 후에 수신된 제 2 입력을 식별하는 것;
상기 제 1 입력이 상기 디스플레이의 상기 제어에 있어서의 상기 검출된 변경의 제 1 시간 문턱 내에 수신되었는지 여부를 결정하는 것;
상기 제 2 입력이 상기 디스플레이의 상기 제어에 있어서의 상기 검출된 변경의 제 2 시간 문턱 내에 수신되었는지 여부를 결정하는 것; 및
상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되지 않았거나 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신되지 않은 것으로 결정하는 것에 응답하여, 상기 제 2 입력을 상기 제 2 애플리케이션과 연관시키는 것을 포함하는, 무선 통신 디바이스.A wireless communication device,
Memory; And
And a processor coupled to the memory, the processor configured with processor-executable instructions for performing operations, the processor-
Determining, via the arbiter, a first one of a plurality of applications controlling a display of the wireless communication device based on predetermined criteria, in response to receiving a notification event simultaneously invoking more than one application that;
In response to determining, by the intermediary, that the first application is to control the display, control of the display from the first application in the plurality of applications to the second application in the plurality of applications To detect a change in the content;
Identifying a first input received prior to the detected change in the control of the display and a second input received after the detected change in the control of the display;
Determining whether the first input has been received within a first time threshold of the detected change in the control of the display;
Determining whether the second input has been received within a second time threshold of the detected change in the control of the display; And
The method further comprises associating the second input with the second application in response to determining that the first input has not been received within the first time threshold or that the second input has not been received within the second time threshold Lt; / RTI >
상기 제 1 입력 및 상기 제 2 입력은 양자 모두, 터치 입력들, 텍스트 입력들, 발성된 입력들, 또는 시각적 입력들 중의 하나인, 무선 통신 디바이스.20. The method of claim 19,
Wherein the first input and the second input are both one of touch inputs, text inputs, voiced inputs, or visual inputs.
상기 프로세서는, 상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제 2 입력을 상기 제 1 애플리케이션과 연관시키는 것을 더 포함하는 프로세서-실행가능 명령들로 구성되는, 무선 통신 디바이스.20. The method of claim 19,
Wherein the processor is further configured to associate the second input with the first application in response to determining that the first input has been received within the first time threshold and the second input has been received within the second time threshold ≪ / RTI > further comprising processor-executable instructions.
상기 프로세서는,
상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제 2 입력을 상기 제 1 애플리케이션 및 상기 제 2 애플리케이션 중의 하나와 연관시키기 위한 사용자 선택 입력을 요청하는 프롬프트를 렌더링하는 것;
사용자 인터페이스를 통해 상기 사용자 선택 입력을 수신하는 것; 및
상기 수신된 사용자 선택 입력에 기초하여 상기 제 2 입력을 상기 제 1 애플리케이션 및 상기 제 2 애플리케이션 중의 하나와 연관시키는 것을 더 포함하는 프로세서-실행가능 명령들로 구성되는, 무선 통신 디바이스.20. The method of claim 19,
The processor comprising:
Responsive to determining that the first input has been received within the first time threshold and the second input has been received within the second time threshold, sending the second input to one of the first application and the second application Rendering a prompt requesting a user-selected input to associate;
Receiving the user selection input via a user interface; And
And associating the second input with one of the first application and the second application based on the received user selected input.
상기 제 1 입력은 구어 입력이고;
상기 프롬프트는 제 2 사운드이고; 그리고
상기 프로세서는, 상기 디스플레이의 상기 제어에 있어서의 상기 변경을 검출하기 이전에 제 1 사운드를 렌더링하는 것을 더 포함하는 프로세서-실행가능 명령들로 구성되는, 무선 통신 디바이스.23. The method of claim 22,
Wherein the first input is a speech input;
The prompt is a second sound; And
Wherein the processor is further comprised of processor-executable instructions that further comprise rendering a first sound before detecting the change in the control of the display.
상기 프로세서는,
상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제 1 입력 및 상기 제 2 입력의 내용을 평가하는 것;
상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제어에 있어서의 상기 검출된 변경에 관련하여 상기 제 2 애플리케이션의 착수 시간을 평가하는 것; 및
상기 평가된 내용 및 상기 평가된 착수 시간 중의 적어도 하나에 기초하여 상기 제 2 입력을 상기 제 1 애플리케이션 또는 상기 제 2 애플리케이션과 연관시키는 것을 더 포함하는 프로세서-실행가능 명령들로 구성되는, 무선 통신 디바이스.20. The method of claim 19,
The processor comprising:
Evaluating the contents of the first input and the second input in response to determining that the first input has been received within the first time threshold and the second input has been received within the second time threshold;
Responsive to determining that said first input has been received within said first time threshold and said second input has been received within said second time threshold, Evaluating the start time; And
Further comprising associating the second input with the first application or the second application based on at least one of the evaluated content and the evaluated start time, .
상기 내용은 문법, 철자, 구두법, 포맷, 맥락, 및 해독된 의미 중의 적어도 하나인, 무선 통신 디바이스.25. The method of claim 24,
Wherein the content is at least one of grammar, spelling, punctuation, format, context, and decoded meaning.
상기 제 2 입력은 터치 입력이고, 상기 프로세서는,
상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제 2 입력에 대응하는 상기 제 2 애플리케이션의 제 2 사용자 인터페이스 엘리먼트를 식별하는 것;
상기 제 2 애플리케이션의 상기 식별된 제 2 사용자 인터페이스 엘리먼트가 상기 제 1 애플리케이션의 제 1 사용자 인터페이스 엘리먼트와 일치하는지 여부를 결정하는 것; 및
상기 식별된 제 2 사용자 인터페이스 엘리먼트가 상기 제 1 사용자 인터페이스 엘리먼트와 일치하는 것으로 결정하는 것에 응답하여, 상기 제 2 입력을 상기 제 1 애플리케이션과 연관시키는 것을 더 포함하는 프로세서-실행가능 명령들로 구성되는, 무선 통신 디바이스.20. The method of claim 19,
Wherein the second input is a touch input,
Responsive to determining that the first input has been received within the first time threshold and the second input has been received within the second time threshold, the second user interface element of the second application corresponding to the second input ≪ / RTI >
Determining whether the identified second user interface element of the second application matches the first user interface element of the first application; And
Further comprising associating the second input with the first application in response to determining that the identified second user interface element matches the first user interface element , ≪ / RTI >
메모리; 및
상기 메모리에 결합된 프로세서를 포함하고,
상기 프로세서는 프로세서-실행가능 명령들에 의해,
중재기를 통해, 하나를 초과하는 애플리케이션을 동시에 인보크하는 통지 이벤트를 수신하는 것에 응답하여, 미리 결정된 기준들에 기초하여 상기 무선 통신 디바이스의 디스플레이를 제어하는 복수의 애플리케이션들 중의 제 1 애플리케이션을 결정하는 것;
상기 복수의 애플리케이션들 중의 제 2 애플리케이션이, 상기 복수의 애플리케이션들 중의 상기 제 1 애플리케이션이 상기 디스플레이를 제어한다는 상기 중재기를 통한 상기 결정을 따르지 않았는지 여부를 결정하는 것; 및
상기 복수의 애플리케이션들 중의 상기 제 2 애플리케이션이 따르지 않은 것으로 결정하는 것에 응답하여, 상기 제 2 애플리케이션을 종결시키는 것을 포함하는 동작들을 수행하도록 구성되는, 무선 통신 디바이스.A wireless communication device,
Memory; And
A processor coupled to the memory,
The processor is operable, by processor-executable instructions,
Determining, via the arbiter, a first one of a plurality of applications controlling a display of the wireless communication device based on predetermined criteria, in response to receiving a notification event simultaneously invoking more than one application that;
Determining whether a second one of the plurality of applications has not followed the determination through the arbiter that the first one of the plurality of applications controls the display; And
And terminating the second application in response to determining that the second one of the plurality of applications does not comply.
상기 프로세서-실행가능 소프트웨어 명령들은 프로세서로 하여금,
중재기를 통해, 하나를 초과하는 애플리케이션을 동시에 인보크하는 통지 이벤트를 수신하는 것에 응답하여, 미리 결정된 기준들에 기초하여 무선 통신 디바이스의 디스플레이를 제어하는 복수의 애플리케이션들 중의 제 1 애플리케이션을 결정하는 것;
상기 중재기를 통해, 상기 제 1 애플리케이션이 상기 디스플레이를 제어하는 것으로 결정하는 것에 응답하여, 상기 복수의 애플리케이션들에서의 상기 제 1 애플리케이션으로부터 상기 복수의 애플리케이션들에서의 제 2 애플리케이션으로의 상기 디스플레이의 제어에 있어서의 변경을 검출하는 것;
상기 디스플레이의 상기 제어에 있어서의 상기 검출된 변경 전에 수신된 제 1 입력과, 상기 디스플레이의 상기 제어에 있어서의 상기 검출된 변경 후에 수신된 제 2 입력을 식별하는 것;
상기 제 1 입력이 상기 디스플레이의 상기 제어에 있어서의 상기 검출된 변경의 제 1 시간 문턱 내에 수신되었는지 여부를 결정하는 것;
상기 제 2 입력이 상기 디스플레이의 상기 제어에 있어서의 상기 검출된 변경의 제 2 시간 문턱 내에 수신되었는지 여부를 결정하는 것; 및
상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되지 않았거나 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신되지 않은 것으로 결정하는 것에 응답하여, 상기 제 2 입력을 상기 제 2 애플리케이션과 연관시키는 것을 포함하는 동작들을 수행하게 하도록 구성되는, 비-일시적인 프로세서-판독가능 저장 매체.18. A non-transitory processor-readable storage medium having stored thereon processor-executable software instructions,
The processor-executable software instructions cause the processor to:
Determining a first one of a plurality of applications that controls the display of the wireless communication device based on predetermined criteria in response to receiving, via the arbiter, a notification event that simultaneously invokes more than one application ;
In response to determining, by the intermediary, that the first application is to control the display, control of the display from the first application in the plurality of applications to the second application in the plurality of applications To detect a change in the content;
Identifying a first input received prior to the detected change in the control of the display and a second input received after the detected change in the control of the display;
Determining whether the first input has been received within a first time threshold of the detected change in the control of the display;
Determining whether the second input has been received within a second time threshold of the detected change in the control of the display; And
The method further comprises associating the second input with the second application in response to determining that the first input has not been received within the first time threshold or that the second input has not been received within the second time threshold ≪ / RTI > wherein the processor is configured to perform the following operations.
상기 제 1 입력 및 상기 제 2 입력은 양자 모두, 터치 입력들, 텍스트 입력들, 발성된 입력들, 또는 시각적 입력들 중의 하나인, 비-일시적인 프로세서-판독가능 저장 매체.29. The method of claim 28,
Wherein the first input and the second input are both one of touch inputs, text inputs, voiced inputs, or visual inputs.
상기 저장된 프로세서-실행가능 소프트웨어 명령들은 상기 프로세서로 하여금, 상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제 2 입력을 상기 제 1 애플리케이션과 연관시키는 것을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비-일시적인 프로세서-판독가능 저장 매체.29. The method of claim 28,
Wherein the stored processor-executable software instructions cause the processor to determine whether the first input has been received within the first time threshold and that the second input has been received within the second time threshold, Further comprising associating an input with the first application. ≪ Desc / Clms Page number 24 >
상기 저장된 프로세서-실행가능 소프트웨어 명령들은 상기 프로세서로 하여금,
상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제 2 입력을 상기 제 1 애플리케이션 및 상기 제 2 애플리케이션 중의 하나와 연관시키기 위한 사용자 선택 입력을 요청하는 프롬프트를 렌더링하는 것;
사용자 인터페이스를 통해 상기 사용자 선택 입력을 수신하는 것; 및
상기 수신된 사용자 선택 입력에 기초하여 상기 제 2 입력을 상기 제 1 애플리케이션 및 상기 제 2 애플리케이션 중의 하나와 연관시키는 것을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비-일시적인 프로세서-판독가능 저장 매체.29. The method of claim 28,
The stored processor-executable software instructions cause the processor to:
Responsive to determining that the first input has been received within the first time threshold and the second input has been received within the second time threshold, sending the second input to one of the first application and the second application Rendering a prompt requesting a user-selected input to associate;
Receiving the user selection input via a user interface; And
Further comprising associating the second input with one of the first application and the second application based on the received user selected input. ≪ Desc / Clms Page number 19 >
상기 제 1 입력은 구어 입력이고;
상기 프롬프트는 제 2 사운드이고; 그리고
상기 저장된 프로세서-실행가능 소프트웨어 명령들은 상기 프로세서로 하여금, 상기 디스플레이의 상기 제어에 있어서의 상기 변경을 검출하기 이전에 제 1 사운드를 렌더링하는 것을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비-일시적인 프로세서-판독가능 저장 매체.32. The method of claim 31,
Wherein the first input is a speech input;
The prompt is a second sound; And
Wherein the stored processor-executable software instructions are configured to cause the processor to perform operations that further comprise rendering a first sound prior to detecting the change in the control of the display. A processor-readable storage medium.
상기 저장된 프로세서-실행가능 소프트웨어 명령들은 상기 프로세서로 하여금,
상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제 1 입력 및 상기 제 2 입력의 내용을 평가하는 것;
상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제어에 있어서의 상기 검출된 변경에 관련하여 상기 제 2 애플리케이션의 착수 시간을 평가하는 것; 및
상기 평가된 내용 및 상기 평가된 착수 시간 중의 적어도 하나에 기초하여 상기 제 2 입력을 상기 제 1 애플리케이션 또는 상기 제 2 애플리케이션과 연관시키는 것을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비-일시적인 프로세서-판독가능 저장 매체.29. The method of claim 28,
The stored processor-executable software instructions cause the processor to:
Evaluating the contents of the first input and the second input in response to determining that the first input has been received within the first time threshold and the second input has been received within the second time threshold;
Responsive to determining that said first input has been received within said first time threshold and said second input has been received within said second time threshold, Evaluating the start time; And
Further comprising associating the second input with the first application or the second application based on at least one of the evaluated content and the evaluated start time. Readable storage medium.
상기 내용은 문법, 철자, 구두법, 포맷, 맥락, 및 해독된 의미 중의 적어도 하나인, 비-일시적인 프로세서-판독가능 저장 매체.34. The method of claim 33,
Wherein the content is at least one of grammar, spelling, punctuation, format, context, and decoded meaning.
상기 제 2 입력은 터치 입력이고, 상기 저장된 프로세서-실행가능 소프트웨어 명령들은 상기 프로세서로 하여금,
상기 제 1 입력이 상기 제 1 시간 문턱 내에 수신되었고 상기 제 2 입력이 상기 제 2 시간 문턱 내에 수신된 것으로 결정하는 것에 응답하여, 상기 제 2 입력에 대응하는 상기 제 2 애플리케이션의 제 2 사용자 인터페이스 엘리먼트를 식별하는 것;
상기 제 2 애플리케이션의 상기 식별된 제 2 사용자 인터페이스 엘리먼트가 상기 제 1 애플리케이션의 제 1 사용자 인터페이스 엘리먼트와 일치하는지 여부를 결정하는 것; 및
상기 식별된 제 2 사용자 인터페이스 엘리먼트가 상기 제 1 사용자 인터페이스 엘리먼트와 일치하는 것으로 결정하는 것에 응답하여, 상기 제 2 입력을 상기 제 1 애플리케이션과 연관시키는 것을 더 포함하는 동작들을 수행하게 하도록 구성되는, 비-일시적인 프로세서-판독가능 저장 매체.29. The method of claim 28,
Wherein the second input is a touch input and the stored processor-executable software instructions cause the processor to:
Responsive to determining that the first input has been received within the first time threshold and the second input has been received within the second time threshold, the second user interface element of the second application corresponding to the second input ≪ / RTI >
Determining whether the identified second user interface element of the second application matches the first user interface element of the first application; And
Further comprising associating the second input with the first application in response to determining that the identified second user interface element matches the first user interface element, - Temporary processor-readable storage medium.
상기 프로세서-실행가능 소프트웨어 명령들은 프로세서로 하여금,
중재기를 통해, 하나를 초과하는 애플리케이션을 동시에 인보크하는 통지 이벤트를 수신하는 것에 응답하여, 미리 결정된 기준들에 기초하여 무선 통신 디바이스의 디스플레이를 제어하는 복수의 애플리케이션들 중의 제 1 애플리케이션을 결정하는 것;
상기 복수의 애플리케이션들 중의 제 2 애플리케이션이, 상기 복수의 애플리케이션들 중의 상기 제 1 애플리케이션이 상기 디스플레이를 제어한다는 상기 중재기를 통한 상기 결정을 따르지 않았는지 여부를 결정하는 것; 및
상기 복수의 애플리케이션들 중의 상기 제 2 애플리케이션이 따르지 않은 것으로 결정하는 것에 응답하여, 상기 제 2 애플리케이션을 종결시키는 것을 포함하는 동작들을 수행하게 하도록 구성되는, 비-일시적인 프로세서-판독가능 저장 매체.18. A non-transitory processor-readable storage medium having stored thereon processor-executable software instructions,
The processor-executable software instructions cause the processor to:
Determining a first one of a plurality of applications that controls the display of the wireless communication device based on predetermined criteria in response to receiving, via the arbiter, a notification event that simultaneously invokes more than one application ;
Determining whether a second one of the plurality of applications has not followed the determination through the arbiter that the first one of the plurality of applications controls the display; And
In response to determining that the second one of the plurality of applications does not comply, terminating the second application. ≪ Desc / Clms Page number 19 >
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 (en) | 2013-09-13 | 2014-09-15 | Wireless communication device having deterministic control of foreground access of the user interface |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20170010447A true KR20170010447A (en) | 2017-01-31 |
Family
ID=51660605
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020177001579A KR20170010447A (en) | 2013-09-13 | 2014-09-15 | Wireless communication device having deterministic control of foreground access of the user interface |
KR1020167007714A KR20160055163A (en) | 2013-09-13 | 2014-09-15 | Wireless communication device having deterministic control of foreground access of the user interface |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020167007714A KR20160055163A (en) | 2013-09-13 | 2014-09-15 | Wireless communication device having deterministic control of foreground access of the user interface |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP3044666A1 (en) |
JP (1) | JP2016539432A (en) |
KR (2) | KR20170010447A (en) |
CN (1) | CN105531671A (en) |
WO (1) | WO2015039000A1 (en) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105204743A (en) | 2015-09-28 | 2015-12-30 | 百度在线网络技术(北京)有限公司 | Interaction control method and device for speech and video communication |
AU2017286129B2 (en) * | 2016-06-12 | 2018-12-20 | Apple Inc. | User interface for managing controllable external devices |
CN108099818B (en) * | 2016-11-25 | 2020-12-25 | 比亚迪股份有限公司 | Self-learning method and self-learning system for vehicle configuration information and vehicle |
KR102405752B1 (en) * | 2017-08-23 | 2022-06-08 | 삼성전자주식회사 | Method for controlling the permission of application program and electronic device |
EP3849177A1 (en) | 2018-05-07 | 2021-07-14 | Apple Inc. | User interfaces for viewing live video feeds and recorded video |
JP7271921B2 (en) * | 2018-11-29 | 2023-05-12 | 株式会社リコー | Information processing terminal, program, resource reservation system, control method |
CN109739300B (en) * | 2018-12-25 | 2020-10-30 | 维沃移动通信有限公司 | Antenna control method and terminal |
EP3752917B1 (en) * | 2019-05-06 | 2024-09-18 | Google LLC | Rendering visual components on applications in response to voice commands |
US10904029B2 (en) | 2019-05-31 | 2021-01-26 | Apple Inc. | User interfaces for managing controllable external devices |
JP7347529B2 (en) * | 2019-10-09 | 2023-09-20 | 日本電信電話株式会社 | Operation support system, operation support method, and operation support program |
CN111611040A (en) * | 2020-05-19 | 2020-09-01 | 延锋伟世通电子科技(上海)有限公司 | Display control method, system, medium and terminal of low-configuration vehicle-mounted system |
CN118672765A (en) * | 2020-11-17 | 2024-09-20 | 莫雪华 | System resource allocation method based on big data |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59114631A (en) * | 1982-12-22 | 1984-07-02 | Hitachi Ltd | Terminal control device |
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 (en) * | 2001-06-22 | 2003-01-08 | Sanyo Electric Co Ltd | Portable device |
JP3653467B2 (en) * | 2000-11-30 | 2005-05-25 | 三洋電機株式会社 | Mobile phone |
JP2004005213A (en) * | 2002-05-31 | 2004-01-08 | Toshiba Corp | Information processing device |
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 (en) * | 2008-10-30 | 2013-02-06 | 株式会社エヌ・ティ・ティ・ドコモ | Mobile device and application switching method |
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 |
WO2011125635A1 (en) * | 2010-04-07 | 2011-10-13 | 日本電気株式会社 | Information processing terminal and control method therefor |
CN102662514B (en) * | 2012-03-30 | 2017-03-29 | 中兴通讯股份有限公司 | A kind of method and mobile terminal of control touch screen |
-
2014
- 2014-09-15 KR KR1020177001579A patent/KR20170010447A/en not_active Application Discontinuation
- 2014-09-15 CN CN201480050334.8A patent/CN105531671A/en active Pending
- 2014-09-15 JP JP2016542847A patent/JP2016539432A/en active Pending
- 2014-09-15 WO PCT/US2014/055567 patent/WO2015039000A1/en active Application Filing
- 2014-09-15 EP EP14780937.0A patent/EP3044666A1/en not_active Withdrawn
- 2014-09-15 KR KR1020167007714A patent/KR20160055163A/en active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
CN105531671A (en) | 2016-04-27 |
JP2016539432A (en) | 2016-12-15 |
KR20160055163A (en) | 2016-05-17 |
EP3044666A1 (en) | 2016-07-20 |
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 (en) | Wireless communication device having deterministic control of foreground access of the user interface | |
US11388285B2 (en) | Devices and methods of providing response message in the devices | |
US10970096B2 (en) | Suggesting actions based on machine learning | |
TWI602071B (en) | Method of messaging, non-transitory computer readable storage medium and electronic device | |
KR20210134675A (en) | Method and system for learning and executing instructions through user demonstration | |
US20190268418A1 (en) | Device and method of controlling the device | |
US8819278B2 (en) | System and method for delivering alerts | |
US9436478B2 (en) | Method for setting a value of options of operational environment in a user device and user device adapted thereto | |
US11652857B2 (en) | Computerized system and method for video conferencing priority and allocation using mobile edge computing | |
US20140007115A1 (en) | Multi-modal behavior awareness for human natural command control | |
US9588983B2 (en) | Data classification for adaptive synchronization | |
WO2022057393A1 (en) | Event processing method and apparatus, storage medium, mobile terminal, and computer | |
KR20170008845A (en) | Method and device for processing new message associated with application | |
KR20150104930A (en) | Method and system of supporting multitasking of speech recognition service in in communication device | |
US20150161253A1 (en) | Contextual display apparatus and methods | |
US20170013118A1 (en) | Electronic device and notification method thereof | |
CN116339672A (en) | Audio playing method and related device | |
WO2023024894A1 (en) | Multi-device synchronous playback method and apparatus | |
US20110161971A1 (en) | Method and Data Processing Device for Processing Requests | |
US12126871B1 (en) | Interruption model | |
CN117395569A (en) | Audio playing system, method and terminal equipment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
WITN | Withdrawal due to no request for examination |