KR100942007B1 - 핸드헬드 장치의 입력 요소를 리맵핑하는 방법 - Google Patents

핸드헬드 장치의 입력 요소를 리맵핑하는 방법 Download PDF

Info

Publication number
KR100942007B1
KR100942007B1 KR1020087008212A KR20087008212A KR100942007B1 KR 100942007 B1 KR100942007 B1 KR 100942007B1 KR 1020087008212 A KR1020087008212 A KR 1020087008212A KR 20087008212 A KR20087008212 A KR 20087008212A KR 100942007 B1 KR100942007 B1 KR 100942007B1
Authority
KR
South Korea
Prior art keywords
input element
function
code
physical input
software application
Prior art date
Application number
KR1020087008212A
Other languages
English (en)
Other versions
KR20080042931A (ko
Inventor
로레인 에스 휠러
엘라인 쳰
베스 마커스
Original Assignee
지모트, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 지모트, 인크. filed Critical 지모트, 인크.
Publication of KR20080042931A publication Critical patent/KR20080042931A/ko
Application granted granted Critical
Publication of KR100942007B1 publication Critical patent/KR100942007B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/02Input arrangements using manually operated switches, e.g. using keyboards or dials
    • G06F3/023Arrangements for converting discrete items of information into a coded form, e.g. arrangements for interpreting keyboard generated codes as alphanumeric codes, operand codes or instruction codes
    • G06F3/0238Programmable keyboards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Telephone Function (AREA)

Abstract

핸드헬드 전자 장치상에 배치된 입력 요소를 소프트웨어 애플리케이션에 제공된 미리 로드되거나 또는 미리 할당된 기능(들)과는 상이한 실행 가능 기능으로 리팹핑하는 기술은, 시프팅 또는 인덱스 기능, 또는 특정 특징의 입력과 같은, 적어도 하나의 기능과 연관된, 키, 회전식 다이얼, 또는 버튼과 같은 적어도 하나의 물리적 입력 요소를 포함하는, 소프트웨어 애플리케이션 또는 소프트웨어 애플리케이션 클래스를 위한 구성 셋팅을 수신하는 단계; 그 구성 셋팅에 기초하여, 키보드 장치 드라이버, 장치 레이아웃, 또는 전환계층과 같은 맵핑 기술을 변경하는 단계; 및 소프트웨어 애플리케이션 동작 중, 예컨대, 물리적 입력 요소의 누름 또는 구동과 같은 물리적 입력 요소가 활성화되면, 그 물리적 입력 요소와 연관된 기능을 실행하는 단계를 포함할 수 있다.

Description

핸드헬드 장치의 입력 요소를 리맵핑하는 방법{A METHOD OF REMAPPING THE INPUT ELEMENTS OF A HAND-HELD DEVICE}
본 발명은 핸드헬드 장치의 입력 요소(예, 키 또는 버튼)를 원하는 조작 또는 기능으로 리맵핑하는 것에 관한 것이다.
셀룰러 폰, 개인 휴대용 정보 단말기("PDAs"), 포켓용 개인 컴퓨터, 스마트 폰, 핸드헬드 게임 장치, 바코드 리더기, 원격 제어기, 및 키패드 또는 하나 이상의 입력 요소를 갖는 기타 유사 핸드헬드 입력 장치와 같은 종래의 핸드헬드 전자 장치는, 처리 전력의 비용 절감 및 그와 동시에 소형화된 장치를 원하는 소비자의 요구 증가에 기인하여, 점점 복잡해지고, 물리적으로는 소형화되었다. 키, 버튼, 방향 패드, 터치 패드 또는 스크린, FRS(force sensitive resistor), 및 가속도계와 같은 그러한 핸드헬드 전자 장치상의 입력 요소는, 파워 온 또는 오프, 볼륨 업 또는 다운, 텍스트 입력, 커서 제어, 또는 방향 이동과 같은 특정한 조작 또는 기능을 위해 통상 하드 코딩된다. 예를 들어, 텍스트 입력 기능에 대해, 입력 요소 중 하나는, 사용자가 그 입력 요소를 누를 때, 텍스트 애플리케이션에 문자 2, A, B, 또는 C를 입력하기 위해 하드 코딩되는 동안, 사용자가 눌렀던 다른 입력 요소는, 텍스트 애플리케이션에 문자 3, D, E, 또는 F를 입력하기 위해 하드 코딩될 수 있다. 그러한 전자 장치상에서 구동하는, 심비안, J2ME, 및 윈도우 모바일과 같이 현재 이용 가능한 운영체제들은, 애플리케이션 개발자들로 하여금 하드 코딩된 조작 또는 기능을 무효로하고(override), 상이한 조작 또는 기능을 입력 요소에 할당 (또는 재맵핑)할 수 있도록 하고 있지만, 일반적으로 이러 재맵핑된 입력 요소들은 단일 애플리케이션에서만 적용된다.
도 1a 및 1b는 핸드헬드 전자 장치(100)상의 윈도우 모바일 운영체제 환경의 종래 맵핑 프로세스에 관계된 하드웨어 및 소프트웨어 컴포넌트에 대한 개략도가 도시되어 있다. 도 1a에는 복수의 물리적 입력 요소(104), 키보드 장치 드라이버(108), 및 애플리케이션 소프트웨어(112)를 포함하는 핸드헬드 전자 장치(100)가 도시되어 있다. 셀룰러폰과 같은 몇몇 핸드헬드 전자 장치상에서, "2ABC"로서 라벨링된 입력 요소(106)는 키패드를 형성하는데 사용되는 입력 요소(104) 중 하나일 수 있다. 일반적으로, 물리적 입력 요소(104)는, 키보드 장치 드라이버(108) 맵핑과 소프트웨어 애플리케이션(112) 맵핑의 조합을 통해 사용자 입력 요청으로 맵핑된다. 키보드 장치 드라이버(108)는 통상적으로, 저층, 또는 핸드헬드 전자 장치(100)로부터 스캔 코드를 회수하는 PDD(platform dependent driver)(109), 및 상층, 또는 가상 입력 요소 코드에 스캔 코드를 맵핑하고, 가상 입력 요소 코드에 연관된 문자 데이터를 발생시킨 다음, 키보드 메시지를 패키징하여 그 메시지를 시스템-와이드 메시지 대기행렬에 올리는 MDD(model device driver)(111)를 포함하는 적층형 드라이버로서 구현될 수 있다. 애플리케이션 소프트웨어(112)는 시스템-와이드 메시지 대기행렬로부터 키보드 메시지를 회수하고 그 키보드 메시지에 기초하 여 기능들을 실행한다. 키보드 장치 드라이버(108) 및 애플리케이션 소프트웨어(112)는 통상적으로, 랜덤 액세스 메모리와 같은, 전자 장치(100)상의 메모리(도시안됨)에 저장된다.
도 1b에는 사용자가, 윈도우 모바일, 및 텍스트 애플리케이션 또는 다이얼링 애플리케이션과 같은 현재 이용 가능한 애플리케이션 소프트웨어를 구동하는 핸드헬드 전자 장치상의 물리적 입력 요소(104)를 누를 때의 종래의 맵핑 프로세스가 도시되어 있다. 프로세스 단계(120)에서, 사용자는 스캔 코드를 발생시키는, 입력 요소(106)와 같은 핸드헬드 전자 장치(100)상의 물리적 입력 요소(104)를 누른다. 통상적으로, 키보드 제어기는 핸드헬드 전자 장치(100)상의 버퍼에 스캔 코드를 기록한다. 프로세스 단계(124)에서, 키보드 장치 드라이버(108)는 물리적 입력 요소(106)의 누름을 나타내는 스캔 코드를 가상 입력 요소 코드로 전환(translate) 또는 맵핑한다. 구체적으로, PDD(109)는 버퍼로부터 스캔 코드를 회수하기 위한 인터럽트(interrupt)를 수신하고, MDD(111)는 그 스캔 코드를 가상 입력 요소 코드로 변환한다. 키보드 장치 드라이버(108)는 가상 입력 요소 코드 및 스캔 코드를 갖는 키보드 이벤트 "keybd_event"를 호출한다. 프로세스 단계(130)에서, 애플리케이션 소프트웨어는, 사용자가 특정 물리적 입력 요소를 눌렀다는 통지를 받는다. 구체적으로, 애플리케이션 소프트웨어(112)는 가상 입력 요소 코드 및 스캔 코드를 갖는 키보드 이벤트를 수신한다. 그 다음 애플리케이션 소프트웨어는 통상적으로 가상 입력 요소 코드 및 스캔 코드와 연관된 기능을 실행한다. 예를 들어, 셀룰러폰과 같은 핸드헬드 전자 장치(100)상에서, 폰의 "2ABC" 물리적 입력 요소(106)를 누르 는 것은 PDD(109)에 의해 회수되는 스캔 코드를 발생시킨다. 그 다음, MDD(111)는 "2ABC" 물리적 입력 요소를 누르는 횟수에 따라, (예컨대, 텍스트 애플리케이션의) 문자 데이터 2, A, B, 또는 C를 나타내는 가상 입력 요소 코드로 스캔 코드를 변환하거나 또는 맵핑한다. 키보드 장치 드라이버(108)는 가상 입력 요소 코드 및 스캔 코드를 갖는 "keybd_event"를 호출한다. 텍스트 애플리케이션과 같은 애플리케이션 소프트웨어는 저장 장치의 디스플레이 또는 LCD상의 숫자 "2" 또는 글자 "A", "B", 또는 "C"를 디스플레이하는 것과 같이, 수신된 가상 입력 요소 코드 및 스캔 코드에 기초하여 기능을 실행한다.
핸드헬드 전자 장치상의 물리적 입력 요소는 또한 통상적으로 장치의 하나 이상의 표면상의 미리 결정되고, 고정된 위치에 위치된다. 결과적으로, 그러한 전자 장치는, 데이터 입력(예컨대, 텍스트, 숫자, 및 기능 입력) 및/또는 데이터 입력 및/또는 장치 제어에 사용되는 입력 요소를 위치시키기 위한 장치 표면상의 이용가능한 공간이 계속하여 감소함에 따라, 제어하기 점점 더 어려워지고 불편해지는 장치 제어(예컨대, 게임 플레이 동안의 게임 제어)를 위해 장치와 편안하게 인터페이스하는 사용자의 능력에 의해, 기능 및 효용성에 있어 제한되려는 경향이 있다.
데이터 입력을 위해, 대부분의 종래의 핸드헬드 전자 장치에서, 사용자는 통상적으로, 화음(chordal) 입력 기술, 모달(modal) 입력 기술 및/또는 스마트 키 각각에서 사용되거나 또는 그들의 조합에서 사용되는 소형 키보드 및 키패드를 통해, 또는 온-스크린 키보드 또는 키패드 소프트웨어, 또는 수기(hand-writing) 인식 소 프트웨어의 조합에서 사용되는 터치 스크린을 통해 데이터를 입력한다. 소형 키보드 또는 키패드를 구성하는 입력 요소의 수는 가변적인데, 비록 몇몇 특수화된 Firefly와 같은 핸드헬드 전자 장치가 더 적은 입력 요소를 가지기는 하지만, 통상 대부분의 종래의 핸드헬드 전자 장치상에서 사용되는 키패드는 12 이상의 입력 요소들을 포함한다. 대체로 입력 요소들은 장치의 전면부의 하반부 또는 하반부의 삼분의 일 상에서 위치된다. 그러한 전자 장치로, 사용자는 양손으로 장치를 쥔 채로 자신의 엄지 손가락을 이용하여 데이터를 입력할 수 있거나, 또는 같은 손으로 장치를 쥔 채 그 손의 엄지 손가락을 이용하여 데이터를 입력하거나, 또는 다른 손으로 장치를 붙잡은 채 자신의 손가락을 이용하여 데이터를 입력할 수 있다.
종래의 핸드헬드 전자 장치의 이러한 임의의 데이터 입력 방법 (특히 엄지 손가락을 이용한 입력 방법)은, 특히 셀룰러폰 및 PDA와 같은 소형 핸드헬드 전자 장치에 데이터를 입력하는데 긴 시간을 사용하는 경향이 있는 사용자들에 대한 반복사용 긴장성 손상증후군(RSI)을 가져올 수 있다. 또한, 특히 엄지 손가락을 이용한 입력에 대해, 대부분 물리적으로 소형인 핸드헬드 전자 장치의 사이즈 및 그러한 전자 장치의 전면부 상의 입력 요소의 위치에 기인하여, 종종 사용자의 엄지 손가락은, 장치를 잡고, 같은 엄지 손가락으로, 그 전자 장치의 전면부의 바닥에 위치한 입력 요소, 예를 들어, 키패드 상의 스페이스 키를 나타내는 입력 요소 또는 키패드 상의 글자 P 내지 Y를 나타내는 입력 요소, 또는 QWERTY 키보드를 나타내도록 형성된 입력 요소의 바닥 행에 닿도록 시도할 것을 요구받는다. 이는 실질적으로 사용자의 엄지손가락이 닿기 불편한 위치에 힘을 가할 것을 요구한다.
게임 제어를 위해, 대부분의 핸드헬드 전자 장치에서, 사용자는 통상 장치의 전면부상에 위치되는 소형 키패드 및/또는 방향 패드("D-pad") 상에 있는 것들과 같은, 몇몇 형태의 입력 요소를 사용하여 통상적으로 게임 플레이를 제어한다. 셀룰러폰과 같은 몇몇 핸드헬드 전자 장치상의 게임 제어는 통상적으로, 장치의 사이즈 때문에 한 손을 사용하거나 또는 양 엄지손가락을 최대한으로 사용하지만, PDA 및 종래의 게임 콘솔 제어기와 같은 다른 핸드헬드 전자 장치상의 게임 제어는 통상적으로 양손을 사용한다. 아날로그 입력 요소는 마이크로소프트의 Xbox 또는 소니의 플레이스테이션 2와 같은 PC 및 콘솔 게임 시스템용의 게임 제어기상에 사용되지만, 셀룰러폰과 PDA와 같은 이러한 장치상의 게임 제어와 연관된 입력 요소는 통상적으로 디지털 방식이다. 이와 같은 장치상에서 게임을 플레이하는 동안, 대부분의 셀룰러폰 및 PDA가 아날로그 입력 요소를 사용하지 않는다고 한다면, 사용자는 통상적으로, 좌측 또는 우측으로 사용자의 문자 또는 커서와 같은 다른 제어 대상을 이동시키기 위해, 화살표 키와 같은 특정 입력 요소를 반복적으로 눌러야만 하고, 게임에서 좋은 성적을 거두기 위해서는 통상 입력 요소를 누르는 속도는 빨라야한다. 따라서, 디지털 입력 요소를 갖는 그와 같은 장치에서, 문자, 전달수단(vehicle), 또는 다른 제어 대상의 지속적인 제어를 에뮬레이팅하는 것은 지루하고 어려울 일이 될 수 있다. 게다가, 디러한 핸드헬드 전자 장치상에 데이터를 입력하는 것과 유사한 게임 제어는, 특히 게임 플레이어를 열망하는 사람들에 대해서는 반복성 스트레스 손상을 가져올 수 있다.
본 발명의 발명자들은, 종래의 핸드헬드 전자 장치들이, 다른 이유들 중에서도, 그러한 장치들은 특정 사용자를 위해 최적으로 설계되는 것과는 반대로, 사용자 집단을 위해 통상 설계되기 때문에, 대부분의 사용자가 사용하기에 상대적으로 성가시고, 비효율적이며 불편한 경향이 있다는 사실을 인식했다. 즉, 본 발명의 발명자들은, 사용자에게 부과된 입력 요소 각각에 맵핑된 미리 결정되고, 고정된 조작 또는 기능이, 입력 요소의 미리 결정되고, 고정된 위치와 결합하고, 애플리케이션 소프트웨어 클래스 전반에, 또는 특정 사용자를 위해, 가장 적합하거나 또는 더욱 직관적으로 이해가능한 설계와는 반대로 장치 제조자 및/또는 애플리케이션 개발자가 선호하는 대로 설계된다는 것을 인식했다. 궁극적으로, 본 발명의 발명자들은 공통의 요구사항(예컨대, 게임, 텍스트 입력, 음악 및 스크롤링)을 갖는 특정 애플리케이션 소프트웨어 클래스 및/또는 특정 사용자를 위해 최적화된 핸드헬드 전자 장치상에 입력 요소들을 선택적으로 리-맵핑하기 위한 기술을 개발하였다.
본 명세서에서 설명되는 기술들은, 모든 사용자들이 텍스트 입력(예컨대, 이메일, 워드 프로세싱, 일람표 작성, 접촉, 수행과제), 음악, 네비게이션, 스크롤링, 및 게임 애플리케이션과 같은, 애플리케이션의 특정 클래스 또는 클래스들을 더욱 잘 수행하도록 핸드헬드 전자 장치를 만드는데 사용될 수 있다. 본 명세서에서 설명되는 기술들은 또한, 핸드헬드 전자 장치상에서 이용가능한 각각의 소프트웨어 애플리케이션에 대해 입력 요소의 사용자 지정 맵핑을 생성하는데 사용될 수 있다. 이 사용자 지정 맵핑은, 핸드헬드 장치상에 사용되는 모든 소프트웨어 애플리케이션에, 특정 애플리케이션 클래스나 클래스들, 모든 소프트웨어 애플리케이션의 부집합(subset) 또는 소프트웨어 애플리케이션 클래스 내의 애플리케이션들에, 또는 특정 소프트웨어 애플리케이션에 광범위하게 적용될 수 있다. 맵핑(예컨대, 클래스 지정 및/또는 사용자 지정 맵핑)은 비휘발성 메모리 또는 랜덤 액세스 메모리와 같은 메모리에 저장될 수 있고, 사용자가 사용할 애플리케이션을 선택할 때 시작될 수 있다. 입력 요소의 리-맵핑은 핸드헬드 전자 장치에 접속된 컴퓨터를 통해, 또는 월드와이드웹을 통하는 것과 같이 인터넷을 통해, 또는 다른 통신 모드를 통해 사용자에 의해 직접적으로 핸드헬드 전자 장치상에서 행해질 수 있다.
본 명세서에서 설명되는 기술의 구현은 후속하여 설명되는 특징들의 다양한 조합을 포함할 수 있다.
일 실시예에서, 핸드헬드 전자 장치의 리-맵핑 기술은, 소프트웨어 애플리케이션 또는 소프트웨어 애플리케이션 클래스에 대해, 적어도 하나의 기능과 연관된 적어도 하나의 물리적 입력 요소를 포함할 수 있는 구성 셋팅을 수신하는 단계; 상기 구성 셋팅에 기초하여 맵핑 기능을 변경하는 단계; 및 활성(activation), 예컨대, 소프트웨어 애플리케이션 동작 동안 물리적 입력 요소의 누름 또는 구동시,물리적 입력 요소와 연관된 기능을 실행하는 단계를 포함한다. 맵핑 기능은 키보드 장치 드라이버, 장치 레이아웃 또는 전환계층, 이들의 조합, 또는 다른 맵핑 기능을 포함할 수 있다.
맵핑 기능이 키보드 장치 드라이버를 포함하는 구현에서, 물리적 입력 요소가 활성화되면, 물리적 입력 요소와 연관된 기능을 실행하는 단계는, 스캔 코드를 버퍼에 기록하는 단계, 상기 버퍼로부터 스캔 코드를 회수하는 단계, 상기 회수한 스캔 코드를 변경된 키보드 장치 드라이버를 이용하여 가상 입력 요소 코드로 변환하는 단계, 스캔 코드 및 가상 입력 요소 코드를 갖는 키보드 이벤트를 호출하는 단계, 및 물리적 입력 요소와 연관된 기능인, 키보드 이벤트와 연관된 기능을 실행하는 단계를 포함할 수 있다.
맵핑 기능이 장치 레이아웃을 포함하는 구현에서, 물리적 입력 요소가 활성화되면, 물리적 입력 요소와 연관된 기능을 실행하는 단계는, 스캔 코드를 버퍼에 기록하는 단계, 상기 버퍼로부터 스캔 코드를 회수하는 단계, 상기 회수한 스캔 코드를 변경된 키보드 장치 레이아웃을 이용하여, 가상 입력 요소 코드로 변환하는 단계, 스캔 코드 및 가상 입력 요소 코드를 갖는 키보드 이벤트를 호출하는 단계, 및 물리적 입력 요소와 연관된 기능인, 키보드 이벤트와 연관된 기능을 실행하는 단계를 포함할 수 있다.
맵핑 기능이 전환계층(translation layer)을 포함하는 구현에서, 물리적 입력 요소가 활성화되면, 물리적 입력 요소와 연관된 기능을 실행하는 단계는, 스캔 코드를 버퍼에 기록하는 단계, 상기 버퍼로부터 스캔 코드를 회수하는 단계, 스캔 코드를 원래의 가상 입력 요소 코드로 변환하는 단계, 원래의 가상 입력 요소 코드를 키보드 장치 드라이버의 변경된 전환계층을 이용하여 새로운 입력 요소 코드로 변환하는 단계, 스캔 코드 및 새로운 가상 입력 요소 코드를 갖는 키보드 이벤트를 호출하는 단계, 및 물리적 입력 요소와 연관된 기능인, 키보드 이벤트와 연관된 기능을 실행하는 단계를 포함할 수 있다.
다른 구현에서, 소프트웨어 애플리케이션 또는 소프트웨어 애플리케이션 클래스를 재구성 또는 리맵핑하는 방법은, 핸드헬드 전자 장치상에 배치된 하나 이상의 물리적 입력 요소를 적어도 하나의 제1 실행 가능 기능과 연관시키는 단계, 및 소프트웨어 애플리케이션 또는 소프트웨어 애플리케이션 클래스 내의 소프트웨어 애플리케이션의 동작 동안, 상기 제1 실행 가능 기능이 하나 이상의 물리적 입력 요소가 활성화되면, 개시되는 것으로 구성되도록, 하나 이상의 물리적 입력 요소와 제2 실행 가능 기능과의 연관을, 하나 이상의 물리적 입력 요소와 제1 실행 가능 기능과의 연관으로 형성하는 맵핑 기능을 변경하는 단계를 포함할 수 있다. 제2 실행 가능 기능은 통상적으로, 하나 이상의 물리적 입력 요소를 누르거나 또는 활성화시킬 때, 디폴트 상태에서 실행될 소프트웨어 애플리케이션에 통상 제공되는 디폴트 기능이다.
또 다른 예에서, 하나 이상의 물리적 입력 요소와 연관되는데 이용 가능 기능들을 식별하는, 그래픽 기능을 이용한 사용자 중심의 인터페이스(Graphical User Interface)가 제공될 수 있다. GUI는 또한 사용자가 자신의 물리적 입력 요소를 기능 조합에 적용하기 위해 선택할 수 있는 소프트웨어 애플리케이션을 식별할 수 있다. 일례에서, GUI는, 물리적 입력 요소에 대응하는 입력 요소 아이콘, 및 실행 가능 기능에 대응하는 기능 아이콘을 포함할 수 있다. 그 다음, 사용자는 물리적 입력 요소와 연관되는 기능을 지정할 수 있다.
본 명세서에서 설명되는 기술은 후속하여 설명되는 이점들 중 하나 이상을 제공할 수 있다. 예를 들어, 입력 요소가 장치 제조자가 미리 결정한 똑같은 고정된 위치에 있음에도 불구하고, 특정 사용자, 소프트웨어 애플리케이션, 또는 소프트웨어 애플리케이션 클래스를 위한, 각각의 입력 요소와 연관된 기능 또는 조작이, 사용자가 특정 애플리케이션 사용중 액세스하고 동작하기에 더욱 직관적으로 이해 가능하고 편안한 장치상의 위치에 위치되는 입력 요소로 리맵핑될 수 있기 때문에, 편리하고 빠른 데이터 입력 및 장치 제어가 가능하다. 이는 잠재적으로 반복성 스트레스 손상을 감소시킬 것이다. 또한, 본 명세서에서 설명되는 기술들은, 인터페이스가 상이한 핸드헬드 전자 장치 및 소프트웨어 애플리케이션에 대해 행동하는 방법에 관한 기준을 만드는데 이용될 수 있다. 또한, 더 많은 능력들이 제공될 수 있다. 예를 들어, 셀룰러폰 상에서, 키 패드는 보다 쉬운 스크롤링을 위해 의사 아날로그 제어(pseudo-analog)로서 사용되거나, 또는 D-패드는 게임하기 위한 아날로그 제어를 모방하는데 사용될 수 있다.
하나 이상의 구현에 대한 상세한 설명은 첨부한 도면 및 아래의 설명에서 기술된다. 다른 특징 및 이점들은 본 명세서 및 도면들을 통해, 그리고 청구 범위로부터 명백해질 것이다.
도 1a 및 1b는 핸드헬드 전자 장치상의 종래의 맵핑 프로세서에 포함된 하드웨어 및 소프트웨어 컴포넌트의 개략도이다.
도 2는 개시되는 리맵핑 기술과 함께 사용되는 구성 애플리케이션의 일 구현을 도시한 도면이다.
도 3은 사용자 구성 가능한 키보드 장치 드라이버를 이용하는 리맵핑 기술의 일 구현을 설명하는 흐름도이다.
도 4는 핸드헬드 전자 장치의 장치 레이아웃을 변경하기 위해 구성 소프트웨어를 이용하는 리맵핑 기술의 일 구현을 설명하는 흐름도이다.
도 5는 사용자 구성 가능한 전환계층을 이용하는 리맵핑 기술의 일 구현을 설명하는 흐름도이다.
다양한 도면의 유사한 참조 기호는 유사한 요소를 가리킨다.
본 명세서에서 개시되는 사용자 구성 가능한 리-맵핑 기술은, 심비안 및 J2ME와 같은 시스템을 동작하는 다른 핸드헬드 전자 장치를 이용하여, 그리고 낮은 레벨 또는 중간 레벨의 하드웨어 명령 또는 칩세트 레벨의 명령과 같은 다른 레벨의 명령 세트를 이용하여 용이하고 쉽게 구현될 수 있지만, 본 명세서에서는 윈도우 모바일 운영체제 환경으로 설명된다.
도 2는 개시되는 리맵핑 기술과 함께 사용되는 구성 애플리케이션의 일 구현을 도시한 도면이다. 이 구성 애플리케이션(212)은 메모리 또는 핸드헬드 전자 장치(200)에 존재하거나 또는 그 외부에 있는 다른 컴퓨터 판독 가능한 매체에 존재할 수 있다. 전자 장치(200)는 핸드헬드 전자 장치(200)의 하나 이상의 표면 및 액정 디스플레이(LCD)와 같은 디스플레이(206) 상에 배치된 복수의 물리적 입력 요소(204)들을 포함한다. 구성 애플리케이션(212)은, 물리적 입력 요소(204)에 각각 대응하는 입력 요소 아이콘(204), 특정 입력 요소 아이콘(214)에 대해 사용자에 의해 선택되는 기능을 나타내는 기능 아이콘(216), 예컨대 시프트1, 시프트2, 시프트3, 및 시프트4 기능과 같은 이용 가능 기능들 사이에서 선택하기 위해 사용자에 의 해 사용될 수 있는 스크롤 바 아이콘(218), 및 (각각 "Quilt" 및 "Save"로 라벨링된) 메뉴 아이콘(222, 223)을 포함하는 GUI(213)를 포함한다. 구성 애플리케이션(212)은 선택된 기능을 선택된 물리적 입력 요소(204)로 맵핑하는 것과 같은, 사용자 지정 및/또는 클래스 지정 구성 셋팅을 입력하는데 사용될 수 있다. 대안으로서, 구성 애플리케이션(212)은, 애플리케이션 소프트웨어의 특정 클래스 또는 클래스들에 대한 구성 셋팅이 애플리케이션 개발자에 의해 직접적으로 코딩될 수 있기 때문에, GUI를 포함할 필요는 없다.
이 구현에서, 입력 요소 아이콘(214)은 정적이다, 즉, 아이콘(214)의 명칭 및 외형은 사용자에 의해 변경될 수 없지만, 다른 구현에서, 아이콘(214)의 명칭 및/또는 외형은 동적일 수 있다, 즉, 사용자에 의해 제공된 명칭, 외형, 또는 다른 식별을 반영하기 위해 변경될 수도 있다. 입력 요소 아이콘(214)은, 사용자가 선택한 물리적 입력 요소(204)에 대응하는 버튼 1, 버튼 2, 버튼 3, 및 버튼 4를 포함할 수 있다, 즉, 사용자는 입력 요소 아이콘(214) 각각에 대응시키기 위해 물리적 입력 요소(204) 중 임의의 요소를 선택할 수 있다. 이런 경우, 논의할 목적으로, 사용자가 버튼 1, 버튼 2, 버튼 3, 및 버튼 4에 각각 대응시킬 입력 요소들(204a, 204b, 204c, 및 204d)을 선택한 것으로 가정할 수 있다. 대안으로서, GUI(213)는 더 많거나 또는 더 적은 입력 요소 아이콘들(214)을 포함할 수 있고, 심지어는 사용자가 물리적 입력 요소(204)를 특정 입력 요소 아이콘(214)에 할당할 필요를 부인하는, 핸드헬드 전자 장치(200)상의 각각의 물리적 입력 요소에 대응하는 입력 요소 아이콘(214)을 포함할 수도 있다.
기능 아이콘(216)은, 텍스트 입력 애플리케이션 (예컨대, 이메일, 워드 프로세싱, 일람표 작성, 접촉, 수행과제)에서 특정 입력 요소(204)와 연관된 상이한 문자들을 액세스하는데 사용될 수 있는 시프팅 또는 인덱싱 기능에 대응하는 시프트 1, 시프트2, 시프트3, 및 시프트 4 기능을 포함한다. 예를 들어, 핸드헬드 전자 장치상의 대부분의 키패드에서 발견되는 "9WXYZ"로 라벨링된 입력 요소(204)에 대해, 시프트 1 기능은 숫자 "9"에서 출발하여 좌측에서 우측으로 1 스페이스를 시프팅 또는 인덱싱하는 것을 나타낸다. 이와 유사하게, 시프트 2, 시프트 3, 및 스프트 4는 숫자 "9"에서 시작하여 좌측에서 우측으로 각각 2, 3, 및 4, 스페이스를 시프팅 또는 인덱싱하는 것을 나타낸다. 결과적으로, 텍스트 입력 동안, 문자 "Z"를 입력하기 위해, 사용자는 시프트 4 기능과 연관된 물리적 입력 요소(204), 이 경우에는 물리적 입력 요소(204d)를 누르기만 하면되고, 그 다음, 동시에 또는 사용자가 선택한 미리 결정된 시간 동안, "9WYZ"로 라벨링된 물리적 입력 요소(204)를 누른다. 인덱싱 또는 시프팅 기능을 이용하는 다른 입력 기술뿐만 아니라 이러한 입력 기술은, 본 명세서 전반에서 참조되는 2003년 10월 31일 출원된 공동 계류 출원 제10/699,555의 "Human Interface System"에 더 상세하게 설명된다.
대안으로서, 그 기능 아이콘은, 특정 문자 입력과 같은 텍스트 기능, 통화 시작 또는 종료 또는 전화번호 단축키 다이얼링과 같은 다이얼링 기능, 방향 이동, 발포, 또는 볼륨과 같은 게임 기능, 메뉴 선택 또는 스크롤링 기능, 또는 텍스트 입력 애플리케이션(예컨대, 이메일, 워드 프로세싱, 일람표 작성, 접촉, 수행과제), 게임, 음악, 및 스크롤링과 같은 소프트웨어 애플리케이션과 인터페이싱하기 위 해 사용될 수 있는 물리적 입력 요소(204)가 소프트웨어 애플리케이션의 일부로서 제공되는 임의의 다른 기능은 리맵핑되는 것을 제외한, 임의의 기능일 수 있다.
("Quit"로 라벨링된) 메뉴 아이콘(222)은 물리적 입력 요소(204f)와 연관되지만, 메뉴 아이콘(223)은 물리적 입력 요소(204g)와 연관된다. 사용자는 입력 요소(204f)를 누름으로써 GUI(213)를 종료 또는 퇴장하도록 선택할 수 있다. 유사하게, 사용자는 입력 요소(204g)를 누름으로써 자신의 입력된 구성 셋팅을 세이브하도록 선택할 수 있다.
특정 소프트웨어 애플리케이션을 위해, 특정 소프트웨어 애플리케이션의 클래스 또는 클래스들을 위해, 특정 클래스 내의 소프트웨어 애플리케이션의 부집합을 위해, 또는 핸드헬드 전자 장치(200)상에서 이용가능한 또는 구동하는 모든 소프트웨어 애플리케이션을 위해 선택된 기능들에 물리적 입력 요소(204)를 리맵핑하기 위한, 본 명세서에 기술된 리맵핑 기술들과 함께 사용될 수 있는 사용자 지정 및/또는 클래스 지정 구성 셋팅을 생성하는데 구성 애플리케이션(212)이 사용된다. 사용자 지정 구성 셋팅은 메모리, 또는 예컨대, 사용자 지정 및/또는 클래스 지정 구성 셋팅, 또는 임의의 다른 구성 셋팅과 같은 구성 셋팅과 연관된 소프트웨어 애플리케이션 사용중에 액세스될 수 있는 다른 컴퓨터 판독 가능한 매체에 저장될 수 있다. 이 구성 셋팅들은, 핸드헬드 전자 장치상에, 핸드헬드 전자 장치에 접속된 컴퓨터상에, 또는 월드와이드웹을 통한 것과 같은, 인터넷상에, 또는 몇몇 다른 통신 모드상에, 구성 애플리케이션(212)을 통해, 사용자 또는 애플리케이션 개발자에 의해 직접 입력될 수 있다.
도 3은 사용자 구성 가능한 키보드 장치 드라이버를 이용하는 리맵핑 기술의 구현을 설명하는 흐름도이다. 키보드 드라이버 컴포넌트 MDD의 일부인 구성 가능한 레이아웃 관리자를 생성하기 위해, 사용자 구성 가능한 키보드 장치 드라이버가 도 2를 참조하여 설명된 구성 애플리케이션을 이용함으로써 구현될 수 있다. 즉, 스캔 코드를 가상 입력 요소 코드로 리맵핑하는 소프트웨어 기능은, 구성 애플리케이션을 통해 제공된 새로운 스캔 코드를 포함하는 사용자 지정 구성 셋팅에 기초하여 구성될 수 있다. 일단 사용자가, 상술한 바와 같이 자신의 사용자 지정 구성 셋팅을 입력 및 세이브하면, 그 세이브된 셋팅들은, 연관된 소프트웨어 애플리케이션 사용중에 발생하는 맵핑 프로세스 동안 변경된 키보드 드라이버 컴포넌트 MDD가 액세스하는 윈도우 모바일 등록의 일부로서 저장된다. 이 리맵핑 기술은 다음과 같은 단계들을 포함할 수 있다.
단계(320)에서, 사용자는 핸드헬드 전자 장치(204)상의 물리적 입력 요소(204)를 누른다. 그 다음, 단계(322)에서, 핸드헬드 전자 장치(204)상의 키보드 제어기는 핸드헬드 전자 장치(204)상의 버퍼에 스캔 코드를 기록한다. 단계(325)에서, 키보드 드라이버의 PDD는 버퍼로부터 스캔 코드를 회수하기 위한 인터럽트를 수신한다. 그 다음, 단계(326)에서, 키보드 드라이버의 변경된 MDD는 사용자 지정 구성 셋팅에 대해 윈도우 모바일 등록을 체크한다. 사용자 지정 구성 셋팅이 윈도우 모바일 등록에서 발견되는 경우, 단계(327)에서, 키보드 드라이버의 변경된 MDD는 사용자 지정 구성 셋팅에 기초하여 스캔 코드를 가상 입력 요소 코드로 변환 또는 맵핑하고, 그렇지 않다면, 키보드 드라이버 컴포넌트 MDD는 사용중인 소프트웨 어 애플리케이션의 디폴트 셋팅에 기초하여 스캔 코드를 가상 입력 요소 코드로 전환 또는 맵핑한다. 단계(328)에서, 키보드 장치 드라이버는 가상 입력 요소 코드 및 스캔 코드를 갖는 키보드 이벤트 "keybd_event"를 호출한다. 프로세스 단계(330)에서, 소프트웨어 애플리케이션은 가상 입력 요소 코드 및 스캔 코드를 갖는 키보드 이벤트를 수신한다. 그 다음, 애플리케이션 소프트웨어는 가상 입력 요소 코드와 연관된 기능을 실행한다. 즉, 실행되는 기능은, 사용자에 의해 지정되어 사용자 지정 구성 셋팅의 일부로서 세이브된 기능이다.
도 4는 핸드헬드 전자 장치의 장치 레이아웃을 변경하기 위해, 구성 소프트웨어를 이용하는 리맵핑 기술의 구현을 나타낸 흐름도이다. 장치 레이아웃은 스캔 코드 대 가상 입력 요소 코드 전환을 포함하는 하드웨어 지정 및 언어 지정 키보드 정보이다. 궁극적으로, 핸드헬드 전자 장치에 많은 장치 레이아웃들이 존재할 수 있다. 즉, 동일한 키보드 장치 드라이버는 상이한 언어에 대해 상이한 장치 또는 키보드 레이아웃을 가질 수 있다. 예를 들어, 언어의 문자 및 악센트는 다른 언어와 상이할 수 있지만, 입력 요소 및 하드웨어는 동일하거나 또는 유사하다. 도 2를 참조하여 설명된 구성 소프트웨어는, 키보드 장치 드라이버의 코드 전환을 프로그램에 따라 변경함으로써, 각 핸드헬드 전자 장치에 대한 각 언어에 대해 장치 레이아웃을 변경하는데 사용될 수 있다. 변경된 장치 레이아웃에 기초하여 발생하는 리맵핑 기술 또는 전환 단계는 다음과 같다.
단계(420)에서, 사용자는 핸드헬드 전자 장치(204)상의 물리적 입력 요소(204)를 누른다. 그 다음 단계(422)에서, 핸드헬드 전자 장치(204)상의 키보드 제어기는 핸드헬드 전자 장치(204)상의 버퍼에 스캔 코드를 기록한다. 단계(425)에서, 키보드 드라이버의 PDD는 버퍼로부터 스캔 코드를 회수하기 위한 인터럽트를 수신한다. 그 다음 단계(436)에서, 키보드 드라이버의 MDD는 변경된 장치 레이아웃을 이용하여 스캔 코드를 가상 입력 요소 코드로 변환 또는 전환한다. 다음으로, 단계(428)에서, 키보드 장치 드라이버는 가상 입력 요소 코드 및 스캔 코드를 갖는 키보드 이벤트 "keybd_event"를 호출한다. 전환 단계(430)에서, 소프트웨어 애플리케이션은 가상 입력 요소 코드 및 스캔 코드를 갖는 키보드 이벤트를 수신한다. 그 다음 애플리케이션 소프트웨어는 가상 입력 요소 코드와 연관된 기능을 실행한다. 즉, 실행되는 기능은 사용자에 의해 지정되어 사용자 지정 구성 셋팅 및 변경된 장치 레이아웃으로서 세이브된 기능이다.
도 5는 사용자 구성 가능한 전환계층을 이용하는 리맵핑 기술의 구현을 나타낸 흐름도이다. 사용자 구성 가능한 전환계층은 도 2를 참조하여 설명된 구성 애플리케이션을 사용함으로써 구현될 수 있다. 일반적으로, 이 리맵핑 기술은 물리적 입력 요소(204)의 누름을 가상 입력 요소 코드로 맵핑한 다음, 그 가상 입력 요소 코드를 사용자 지정 가상 입력 요소 코드로 맵핑한다. 리맵핑 기술 단계는 다음과 같다. 단계(520)에서, 사용자는 핸드헬드 전자 장치(204)상의 물리적 입력 요소(204)를 누른다. 그 다음 단계(522)에서, 핸드헬드 전자 장치(204)상의 키보드 제어기는 핸드헬드 전자 장치(204)상의 버퍼에 스캔 코드를 기록한다. 단계(525)에서, 키보드 드라이버 컴포넌트 PDD는 버퍼로부터 스캔 코드를 회수하기 위한 인터럽트를 수신한다. 그 다음 단계(532)에서, 키보드 장치의 MDD는 스캔 코드를 가상 입력 요소 코드로 변환한다. 다음으로, 단계(534)에서, 변경된 키보드 장치의 전환계층은 단계(532)로부터의 가상 입력 요소 코드를 새로운 가상 입력 요소 코드로 변환한다. 단계(528)에서, 키보드 장치 드라이버는 새로운 가상 입력 요소 코드 및 스캔 코드를 갖는 키보드 이벤트 "keybd_event"를 호출한다. 프로세스 단계(530)에서, 소프트웨어 애플리케이션은 새로운 가상 입력 요소 코드 및 스캔 코드를 갖는 키보드 이벤트를 수신한다. 애플리케이션 소프트웨어는 그 새로운 가상 입력 요소 코드와 연관된 기능을 실행한다. 즉, 실행되는 기능은 사용자에 의해 지정되고 사용자 지정 구성 셋팅 중 일부로서 세이브된다.
도 6은 본 명세서에서 기술된 구성 애플리케이션 및 리맵핑 기술이 구현될 수 있는, 셀룰러 네트워크와 같은 시스템의 일부로서 사용되는 핸드헬드 장치를 도시한 블록도이다. 핸드헬드 전자 장치(600)는 버스(602) 또는 정보를 통신하는 다른 통신 메커니즘, 및 정보를 처리하기 위해 버스(602)에 결합된 프로세서(604)를 포함한다. 핸드헬드 전자 장치(600)는 또한 랜덤 액세스 메모리(RAM)와 같은 주기억장치(606) 또는 프로세서(604)에 의해 실행될 명령어 및 정보를 저장하기 위해 버스(602)에 결합된 다른 동적 저장 장치를 포함한다. 주기억장치(606)는 또한 프로세스(604)에 의해 실행된 명령어의 실행 동안 임시 변수 또는 다른 중간단계 정보를 저장하는데 사용될 수 있다. 핸드헬드 전자 장치(600)는 판독 전용 메모리(ROM) (608) 또는 정적 정보 및 프로세서(604)용 명령어를 저장하기 위해 버스(602)에 결합된 다른 정적 저장 장치 또는 비휘발성 메모리를 더 포함한다. 플래시 메모리 장치, 멀티미디어 카드, 또는 시큐어 디지털 카드와 같은 저장 장 치(610)가 제공되어 정보 및 명령어를 저장하기 위해 버스(602)에 결합된다.
핸드헬드 전자 장치(600)는 버스(602) 또는 블루투스와 같은 무선 접속을 통해, 사용자에게 정보를 디스플레이하는 액정 디스플레이(LCD)와 같은 디스플레이(612)에 결합될 수 있다. 키, 버튼, 터치 패드, 터치 스크린, 회전식 다이얼, 가속도계, 방향 패드, 및 압력 감지(예, 힘 감지 저항체 또는 압전기) 요소와 같은 물리적 입력 요소를 포함하는 입력 장치(614)는, 정보 및 프로세서(604)에의 선택 명령을 통신하기 위해 버스(602)에 결합된다. 다른 유형의 사용자 입력 장치는, 방향 정보 및 프로세서(604)로의 선택 명령을 통신하기 위해, 그리고 커서 또는 디스플레이(612)상의 다른 이동(예, 게임 플레이)을 제어하기 위해 마우스, 트랙볼, 가속도계, 키 스위치, 회전식 다이얼, 슬라이더, 또는 방향 패드와 같은 커서 방향 키를 포함할 수 있는 커서 제어(616)이다. 이 입력 장치는 통상적으로 장치가 평면에서 위치를 지정하도록 허용하는 제1 축(예, X) 및 제 2축(예, y)인 2개의 축에서 2개의 자유도를 갖는다. 입력 장치(614)의 입력 요소들은 또한 방향 정보 및 커서 제어를 제공할 수 있다. 디스플레이(612), 입력 장치(614), 및 커서 제어(616) 중 하나 이상은 핸드헬드 전자 장치(600)에 통합될 수 있고 또는 핸드헬드 전자 장치의 외부 장치로 통합될 수 있다.
본 명세서에 기술된 구성 애플리케이션 및 입력 요소 리맵핑 기술은 핸드헬드 전자 장치(600)와 함께 사용될 수 있다. 일 구현에 따라서, 입력 요소 리맵핑은 주기억장치(606)에 저장된 하나 이상의 명령어의 하나 이상의 시퀀스를 실행하는 프로세서(604)에 응답하여 핸드헬드 전자 장치(600)에 의해 제공된다. 이러한 명령 어들은 저장 장치(610) 또는 버퍼 또는 레지스터와 같은 다른 컴퓨터 판독 가능한 매체로부터 주기억장치(606)로 판독될 수 있다. 프로세서(604)는 주기억장치(606)에 저장된 명령어 시퀀스를 실행하여, 본 명세서에 기술된 프로세스 단계들을 수행한다. 대안의 구현에서, 배선에 의해 접속된 회로가 입력 요소 리맵핑 기술을 구현하기 위해 소프트웨어 명령어 대신 또는 그와 조합되어 사용될 수 있다. 따라서, 본 명세서에 기술된 구현들은 하드웨어 회로 및 소프트웨어의 임의의 특정 조합으로 제한되지 않는다.
본 명세서에 사용되는 용어 "컴퓨터 판독 가능한 매체"는, 실행을 위해 프로세서(604)에 명령어를 제공하는데 참여하는 임의의 매체를 언급한다. 그와 같은 매체는, 제한을 두려는 것은 아니지만, 비 휘발성 매체, 휘발성 매체, 및 전송 매체를 포함하는 많은 형태를 취할 수 있다. 예를 들어, 비 휘발성 매체는 플래시 메모리 또는 저장 장치(610)와 같은 광 또는 자기 디스크를 포함한다. 휘발성 매체는 주기억장치(606)와 같은 동적 메모리를 포함한다. 전송 매체는 버스(602)를 포함하는 배선을 포함하여, 구리 배선 및 광 섬유를 포함할 수 있다. 전송 매체는 또한 라디오 파장 및 적외선 데이터 통신 동안에 생성되는 것과 같은, 음파 또는 광파의 형태를 취할 수도 있다.
컴퓨터 판독 가능한 매체의 일반적인 형태는, 예를 들어, 플래시 메모리 장치, SIMM 카드, 하드 디스크 또는 임의의 다른 자기 매체, CD-ROM, DVD, 또는 임의의 다른 광학 매체, RAM, PROM, 및 EPROM, 및 EEPROM, FLASH- EPROM, 또는 임의의 다른 메모리 칩 또는 카트리지, 후에 설명될 반송파, 또는 컴퓨터가 판독할 수 있 는 임의의 다른 매체를 포함한다.
실행하기 위해 하나 이상의 명령어의 하나 이상의 시퀀스를 프로세서(604)에 전달하는데 다양한 형태의 컴퓨터 판독 가능한 매체가 관계할 수 있다. 예를 들어, 명령어들은 초기에 원격 컴퓨터의 자기 디스크 상에 전달될 수 있다. 원격 컴퓨터는 자신의 동적 메모리로 명령어들을 로딩하고, 그 명령어들 및 다른 데이터를 인터넷, 텔레폰 네트워크, 무선 네트워크, 또는 임의의 다른 통신 또는 컴퓨터 네트워크 상으로 전송할 수 있다. 무선 네트워크는 블루투스, WiMax, 네트워크에서 구현되는 다양한 802.11표준, 또는 GSM/GPRS, W-CDMA (UTMS), IS95, CDMA2000 Ix, 또는 CDMA Ix EV-DO 셀룰러 네트워크 또는 임의의 다른 유형의 셀룰러 네트워크를 포함할 수 있다.
핸드헬드 전자 장치(600)는 또한 버스(602)에 결합된 통신 인터페이스(618)를 포함한다. 통신 인터페이스(618)는 로컬 네트워크(622)에 접속되는 네트워크 링크(620)에 결합하는 양방향 데이터 통신을 제공한다. 예를 들어, 통신 인터페이스(618)는 데이터 통신 또는 당업자들에게 알려진 임의의 다른 통신 인터페이스를 제공하기 위한 통합 서비스 디지털 네트워크(ISDN) 카드, 광대역 통합 서비스 디지털 네트워크(B-ISDN), 텔레폰 또는 무선 모뎀일 수 있다. 또 다른 예로서, 통신 인터페이스(618)는 호환 가능한 LAN으로의 데이터 통신 접속을 제공하기 위한 근거리 통신망(LAN) 카드일 수 있다. 무선 링크 또한 구현될 수 있다. 그러한 임의의 구현에서, 통신 인터페이스(618)는 다양한 유형의 정보를 나타내는 디지털 데이터 스트림을 전달하는 전기, 전자기, 또는 광학 신호를 전송 및 수신한다. 예를 들어, 통 신 인터페이스(618)는 명령어 및 원격 컴퓨터에 의해 전송된 데이터를 수신할 수 있다. 통신 인터페이스(618)는 그 명령어 및/또는 데이터를 버스(602)상에 위치시킨다. 버스(602)는 프로세서(604)가 명령어들을 회수하여 실행하는 주기억장치(606)에 데이터를 전달한다. 주기억장치(606)에 의해 수신된 명령어들은 선택적으로 프로세서(604)에 의한 실행 전 또는 후에 저장 장치(610)상에 저장될 수 있다.
네트워크 링크(620)는 통상적으로 하나 이상의 네트워크를 통한 다른 데이터 장치로의 데이터 통신을 제공한다. 예를 들어, 네트워크 링크(620)는, 로컬 네트워크(622)를 통해 호스트 컴퓨터(624)로 또는 인터넷 서비스 제공자(ISP) 626에 의해 동작되는 데이터 장치로의 접속을 제공한다. 그 다음, ISP 626는, 현재는 흔히 "인터넷" 628로서 언급되는 월드와이드 패킷 데이터 통신 네트워크를 통한 데이터 통신 서비스를 제공한다. 로컬 네트워크(622) 및 인터넷(628) 양자는 디지털 데이터 스트림을 전달하는 전기, 전자기 또는 광학 신호를 사용한다. 다양한 네트워크를 통하는 신호 및 네트워크 링크(620) 있고, 핸드헬드 전자 장치(600)와 디지털 데이터를 주고받는 통신 인터페이스(618)를 통하는 신호는 정보를 전송하는 반송파의 예시 형태이다.
핸드헬드 전자 장치(600)는 네트워크(들), 네트워크 링크(620), 및 통신 인터페이스(618)를 통해 메시지를 전송하고, 프로그램 코드를 포함하는 데이터를 수신한다. 인터넷 예를 들어보면, 서버(630)는 애플리케이션 프로그램을 위해 요청된 코드를 인터넷 628, ISP626, 로컬 네트워크(622), 및 통신 인터페이스(618)를 통해 전송할 수 있다. 일 양태에서, 하나의 그와 같은 다운로드된 애플리케이션은 본 명세서에서 기술되는 바와 같이 입력 요소 리맵핑을 제공한다. 프로세서(604)는 수신된 대로, 및/또는 저장 장치(610), 또는 후의 실행을 위해 다른 비 휘발성 저장장치에 저장된 대로 수신된 코드를 실행할 수 있다. 이런 방식으로, 핸드헬드 전자 장치(600)는 반송파 형태로 애플리케이션 코드를 획득할 수 있다.
많은 구현들이 기술되었다. 다른 구현들은 상이한 특징 또는 추가 특징들을 포함할 수 있다. 예를 들어, 몇몇 구현에서, 입력 요소의 구동 또는 활성 시퀀스, 및 구동 간의 타이밍, 또는 입력 요소 누름으로부터의 다른 해석 가능한 조합 또는 구동 정보를 해석함으로써, 물리적 입력 요소들의 조합이 스크롤링과 같은 특정 기능을 수행하도록 맵핑될 수 있다. 즉, 물리적 입력 요소 누름 시퀀스 및 그 입력 요소들 누름 사이의 타이밍은 디지털 제어를 아날로그 제어로 변환하는 기능과 연관될 수 있다.
예를 들어, 종래의 셀룰러 폰 상에서, 폰 상에 키패드를 형성하는 물리적 입력 요소의 열들 중 하나의 열, 예를 들어, 입력요소 2, 5, 8, 및 0을 포함하는 중앙의 열은 스크롤링 기능으로 맵핑될 수 있다. 이러한 구현에서, "8" 입력 요소를 누르는 것은 커서 또는 슬라이더의 아래 방향으로의 스크롤링을 개시할 수 있고, "0" 입력 요소를 누르는 것은 아래 방향 스크롤링의 속도를 증가시킬 수 있다. 유사하게, "5" 입력 요소를 누르는 것은 커서 또는 슬라이더의 위 방향 스크롤링을 개시할 수 있고, "2" 입력 요소를 누르는 것은 위 방향 스크롤링의 속도를 증가시킬 수 있다.
또 다른 예로서, 몇몇 핸드헬드 전자 장치는 GPS 정보를 처리하기 위해 가속도계 및 연관된 회로를 사용한다. 본 명세서에 기술된 리맵핑 기술은 메뉴 영역 내의 네비게이션, 웹 페이지 또는 리스트 내의 네비게이션을 해석하기 위해 물리적 입력 요소 누름과 조합하여 GPS 정보를 이용할 수 있다. 예를 들어, 사용자가 그러한 아래 방향의 장치를 물리적으로 기울이는 것은, 아래 방향으로의 스크롤링 기능과 연관될 수 있고, 반면 사용자가 위 방향의 장치를 물리적으로 기울이는, 것은 위 방향으로의 스크롤링 기능과 연관될 수 있다. 따라서, 다른 구현들은 다음과 같은 청구 범위 내에 있다.

Claims (58)

  1. 핸드헬드 전자 장치를 리맵핑하는 방법에 있어서,
    소프트웨어 애플리케이션 또는 소프트웨어 애플리케이션 클래스를 위한 복수의 구성 셋팅들을 수신하는 단계로서, 상기 구성 셋팅은 적어도 하나의 기능과 연관된 적어도 하나의 물리적 입력 요소를 포함하는 것인, 수신 단계;
    정의된 상기 복수의 구성 셋팅들에 기초하여 맵핑 기능을 변경하는 단계; 및
    상기 소프트웨어 애플리케이션 또는 상기 소프트웨어 애플리케이션 클래스 내의 소프트웨어 애플리케이션의 동작 중 상기 적어도 하나의 물리적 입력 요소가 활성화되면, 상기 적어도 하나의 물리적 입력 요소와 연관된 상기 적어도 하나의 기능을 실행하는 단계
    를 포함하는 핸드헬드 전자 장치의 리맵핑 방법.
  2. 제1항에 있어서, 상기 맵핑 기능은 키보드 장치 드라이버를 포함하는 것인, 핸드헬드 전자 장치의 리맵핑 방법.
  3. 제2항에 있어서, 상기 소프트웨어 애플리케이션 또는 상기 소프트웨어 애플리케이션 클래스 내의 소프트웨어 애플리케이션의 동작 중 상기 적어도 하나의 물리적 입력 요소가 활성화되면, 상기 적어도 하나의 물리적 입력 요소와 연관된 상기 적어도 하나의 기능을 실행하는 단계는,
    상기 소프트웨어 애플리케이션 또는 상기 소프트웨어 애플리케이션 클래스 내의 동작 중 적어도 하나의 물리적 입력 요소가 활성화되면, 버퍼에 스캔 코드를 기록하는 단계;
    상기 버퍼로부터 상기 스캔 코드를 회수하는(retrieving) 단계;
    상기 회수한 스캔 코드를 상기 변경된 키보드 장치 드라이버를 이용하여 가상 입력 요소 코드로 변환하는 단계;
    상기 스캔 코드 및 상기 가상 입력 요소 코드를 갖는 키보드 이벤트를 호출하는 단계; 및
    상기 키보드 이벤트와 연관된 상기 적어도 하나의 기능을 실행하는 단계
    를 포함하는 것인, 핸드헬드 전자 장치의 리맵핑 방법.
  4. 제3항에 있어서, 상기 적어도 하나의 기능은 적어도 하나의 시프팅(shifting) 기능을 포함하는 것인, 핸드헬드 전자 장치의 리맵핑 방법.
  5. 제1항에 있어서, 상기 맵핑 기능은 장치 레이아웃을 포함하는 것인, 핸드헬드 전자 장치의 리맵핑 방법.
  6. 제5항에 있어서, 상기 소프트웨어 애플리케이션 또는 상기 소프트웨어 애플리케이션 클래스 내의 소프트웨어 애플리케이션의 동작 중 상기 적어도 하나의 물리적 입력 요소가 활성화되면, 상기 적어도 하나의 물리적 입력 요소와 연관된 상 기 적어도 하나의 기능을 실행하는 단계는,
    상기 소프트웨어 애플리케이션 또는 상기 소프트웨어 애플리케이션 클래스 내의 소프트웨어 애플리케이션의 동작 중 상기 적어도 하나의 물리적 입력 요소가 활성화되면, 버퍼에 스캔 코드를 기록하는 단계;
    상기 버퍼로부터 상기 스캔 코드를 회수하는 단계;
    상기 회수한 스캔 코드를 상기 변경된 장치 레이아웃을 이용하여 가상 입력 요소 코드로 변환하는 단계;
    상기 스캔 코드 및 상기 가상 입력 요소 코드를 갖는 키보드 이벤트를 호출하는 단계; 및
    상기 키보드 이벤트와 연관된 상기 적어도 하나의 기능을 실행하는 단계
    를 포함하는 것인, 핸드헬드 전자 장치의 리맵핑 방법.
  7. 제6항에 있어서, 상기 적어도 하나의 기능은 적어도 하나의 시프팅 기능을 포함하는 것인, 핸드헬드 전자 장치의 리맵핑 방법.
  8. 제1항에 있어서, 상기 맵핑 기능은 키보드 장치 드라이버의 전환계층(translation layer)인 것인, 핸드헬드 전자 장치의 리맵핑 방법.
  9. 제8항에 있어서, 상기 소프트웨어 애플리케이션 또는 상기 소프트웨어 애플리케이션 클래스 내의 소프트웨어 애플리케이션의 동작 중 상기 적어도 하나의 물 리적 입력 요소가 활성화되면, 상기 적어도 하나의 물리적 입력 요소와 연관된 상기 적어도 하나의 기능을 실행하는 단계는,
    상기 소프트웨어 애플리케이션 또는 상기 소프트웨어 애플리케이션 클래스 내의 소프트웨어 애플리케이션의 동작 중 상기 적어도 하나의 물리적 입력 요소가 활성화되면, 버퍼에 스캔 코드를 기록하는 단계;
    상기 버퍼로부터 상기 스캔 코드를 회수하는 단계;
    상기 스캔 코드를 원래의 가상 입력 요소 코드로 변환하는 단계;
    상기 원래의 가상 입력 요소 코드를 상기 키보드 장치 드라이버의 상기 변경된 전환계층을 이용하여 새로운 입력 요소 코드로 변환하는 단계;
    상기 스캔 코드 및 상기 새로운 가상 입력 요소 코드를 갖는 키보드 이벤트를 호출하는 단계; 및
    상기 키보드 이벤트와 연관된 상기 적어도 하나의 기능을 실행하는 단계
    를 포함하는 것인, 핸드헬드 전자 장치의 리맵핑 방법.
  10. 제9항에 있어서, 상기 적어도 하나의 기능은 적어도 하나의 시프팅 기능을 포함하는 것인, 핸드헬드 전자 장치의 리맵핑 방법.
  11. 핸드헬드 전자 장치상에 배치된 적어도 하나의 물리적 입력 요소를, 소프트웨어 애플리케이션 또는 소프트웨어 애플리케이션 클래스와 연관된 제1 실행 가능기능과 연관시키는 단계;
    상기 소프트웨어 애플리케이션 또는 상기 소프트웨어 애플리케이션 클래스 내의 소프트웨어 애플리케이션의 동작 중 상기 적어도 하나의 물리적 입력 요소가 활성화되면, 상기 제1 실행 가능 기능이 개시되도록 구성하기 위하여, 맵핑 기능 변경은, 상기 적어도 하나의 물리적 입력 요소와 제2 실행 가능 기능과의 연관을, 상기 적어도 하나의 물리적 입력 요소와 상기 제1 실행 가능 기능과의 연관으로 형성하도록 야기시키는 단계
    를 포함하는 방법.
  12. 제11항에 있어서, 상기 맵핑 기능은 키보드 장치 드라이버를 포함하는 것인, 방법.
  13. 제12항에 있어서, 상기 제1 실행 가능 기능은 시프팅 기능을 포함하고, 상기 제2 실행 가능 기능은 상기 소프트웨어 애플리케이션과 연관된 디폴트 기능인 것인, 방법.
  14. 제11항에 있어서, 상기 맵핑 기능은 장치 레이아웃을 포함하는 것인, 방법.
  15. 제14항에 있어서, 상기 제1 실행 가능 기능은 시프팅 기능을 포함하고, 상기 제2 실행 가능 기능은 상기 소프트웨어 애플리케이션과 연관된 디폴트 기능인 것인, 방법.
  16. 제11항에 있어서, 상기 맵핑 기능은 키보드 장치 드라이버의 전환계층인 것인, 방법.
  17. 제16항에 있어서, 상기 제1 실행 가능 기능은 시프팅 기능을 포함하고, 상기 제2 실행 가능 기능은 상기 소프트웨어 애플리케이션과 연관된 디폴트 기능인 것인, 방법.
  18. 복수의 물리적 입력 요소 및 복수의 기능들을 식별하는, 그래픽 기능을 이용한 사용자 중심의 인터페이스(GUI, Graphical User Interface)를 제공하는 단계;
    제1 물리적 입력 요소 및 제1 기능을 식별하는 상기 GUI를 통해 사용자 입력을 수신하는 단계;
    상기 사용자 입력에 기초하여, 키보드 장치 드라이버를 상기 제1 물리적 입력 요소와 제2 기능과의 연관으로부터 상기 제1 물리적 입력 요소와 상기 제1 기능과의 연관으로 변경하는 단계; 및
    상기 제1 물리적 입력 요소가 활성화되면, 상기 제1 기능을 개시하는 단계
    를 포함하는 방법.
  19. 제18항에 있어서, 복수의 물리적 입력 요소 및 복수의 기능들을 식별하는 GUI를 제공하는 단계는 소프트웨어 애플리케이션 클래스를 식별하는 단계를 더 포함하는 것인, 방법.
  20. 제19항에 있어서, 상기 제1 물리적 입력 요소가 활성화되면, 상기 제1 기능을 개시하는 단계는, 상기 소프트웨어 애플리케이션 클래스 내의 소프트웨어 애플리케이션의 동작 중 발생하는 것인, 방법.
  21. 제18항에 있어서, 상기 복수의 기능들은 적어도 하나의 시프팅 기능을 포함하는 것인, 방법.
  22. 제18항에 있어서, 상기 키보드 장치 드라이버는 모델 장치 드라이버를 포함하는 것인, 방법.
  23. 제18항에 있어서, 상기 제1 물리적 입력 요소가 활성화되면, 상기 제1 기능을 개시하는 단계는,
    상기 제1 물리적 입력 요소가 활성화되면, 버퍼에 스캔 코드를 기록하는 단계;
    상기 버퍼로부터 상기 스캔 코드를 회수하는 단계;
    상기 스캔 코드를 상기 변경된 키보드 장치 드라이버를 이용하여 제1 가상 입력 요소 코드로 변환하는 단계;
    상기 스캔 코드 및 상기 제1 가상 입력 요소 코드를 갖는 키보드 이벤트를 호출하는 단계; 및
    상기 키보드 이벤트와 연관된 상기 제1 기능을 실행하는 단계
    를 포함하는 것인, 방법.
  24. 복수의 물리적 입력 요소 및 복수의 기능들을 식별하는 GUI를 제공하는 단계;
    제1 물리적 입력 요소 및 제1 기능을 식별하는, GUI를 통해 사용자 입력을 수신하는 단계;
    장치 레이아웃을 상기 제1 물리적 입력 요소와 제2 기능과의 연관으로부터 상기 제1 물리적 입력 요소와 상기 제1 기능과의 연관으로 변경하는 단계; 및
    상기 제1 물리적 입력 요소가 활성화되면, 상기 제1 기능을 개시하는 단계
    를 포함하는 방법.
  25. 제24항에 있어서, 상기 복수의 물리적 입력 요소 및 복수의 기능들을 식별하는, GUI를 제공하는 단계는, 소프트웨어 애플리케이션 클래스를 식별하는 단계를 더 포함하는 것인, 방법.
  26. 제25항에 있어서, 상기 제1 물리적 입력 요소가 활성화되면, 상기 제1 기능을 개시하는 단계는, 상기 소프트웨어 애플리케이션 클래스 내의 소프트웨어 애플리케이션의 동작 중에 발생하는 것인, 방법.
  27. 제24항에 있어서, 상기 복수의 기능들은 복수의 시프팅 기능을 포함하는 것인, 방법.
  28. 제24항에 있어서, 상기 장치 레이아웃을 상기 제1 물리적 입력 요소와 제2 기능과의 연관으로부터 상기 제1 물리적 입력 요소와 상기 제1 기능과의 연관으로 변경하는 단계는,
    핸드헬드 전자 장치의 장치 레이아웃을 선택하는 단계; 및
    상기 사용자 입력에 기초하여 스캔 코드를 상기 제1 물리적 입력 요소와 연관된 가상 입력 요소 코드 전환으로 변경하는 단계
    를 포함하는 것인, 방법.
  29. 제24항에 있어서, 상기 제1 물리적 입력 요소 코드가 활성화되면, 상기 제1 기능을 개시하는 단계는,
    상기 제1 물리적 입력 요소 코드가 활성화되면, 버퍼에 스캔 코드를 기록하는 단계;
    상기 버퍼로부터 상기 스캔 코드를 회수하는 단계;
    상기 변경된 장치 레이아웃에 기초하여 상기 스캔 코드를 가상 입력 요소 코드로 변환하는 단계;
    상기 스캔 코드 및 상기 가상 입력 요소 코드를 갖는 키보드 이벤트를 호출하는 단계; 및
    상기 키보드 이벤트와 연관된 상기 제1 기능을 실행하는 단계
    를 포함하는 것인, 방법.
  30. 복수의 물리적 입력 요소 및 물리적 기능들을 식별하는 GUI를 제공하는 단계;
    제1 물리적 입력 요소 및 제1 기능을 식별하는 상기 GUI를 통해 사용자 입력을 수신하는 단계;
    원래의 가상 입력 요소 코드의 상기 제1 기능과 연관된 새로운 가상 입력 요소 코드로의 맵핑을 제공하기 위해, 상기 사용자 입력에 기초하여, 키보드 장치 드라이버의 전환계층을 변경하는 단계; 및
    상기 변경된 전환계층에 기초하여, 상기 제1 물리적 입력 요소가 활성화되면, 상기 제1 기능을 개시하는 단계
    를 포함하는 방법.
  31. 제30항에 있어서, 상기 복수의 물리적 입력 요소 및 물리적 기능들을 식별하는 상기 GUI를 제공하는 단계는, 소프트웨어 애플리케이션 클래스를 식별하는 단계를 더 포함하는 것인, 방법.
  32. 제31항에 있어서, 상기 제1 물리적 입력 요소가 활성화되면, 상기 제1 기능을 개시하는 단계는, 상기 소프트웨어 애플리케이션 클래스 내의 소프트웨어 애플 리케이션의 동작 중에 발생하는 것인, 방법.
  33. 제30항에 있어서, 상기 복수의 기능들은 적어도 하나의 시프팅 기능을 포함하는 것인, 방법.
  34. 제30항에 있어서, 상기 변경된 전환계층에 기초하여, 상기 제1 물리적 입력 요소가 활성화되면, 상기 제1 기능을 개시하는 단계는,
    상기 제1 물리적 입력 요소가 활성화되면, 버퍼에 스캔 코드를 기록하는 단계;
    상기 버퍼로부터 스캔 코드를 회수하는 단계;
    상기 스캔 코드를 원래의 가상 입력 요소 코드로 변환하는 단계;
    상기 원래의 가상 입력 요소 코드를 상기 변경된 전환계층을 이용하여 새로운 입력 요소 코드로 변환하는 단계;
    상기 스캔 코드 및 상기 새로운 가상 입력 요소 코드를 갖는 키보드 이벤트를 호출하는 단계; 및
    상기 키보드 이벤트와 연관된 상기 제1 기능을 실행하는 단계
    를 포함하는 것인, 방법.
  35. 핸드헬드 전자 장치상의 복수의 물리적 입력 요소를 리맵핑하는 방법에 있어서,
    복수의 물리적 입력 요소들 중 하나에 각각 대응하는 복수의 입력 요소 아이콘들, 및 복수의 실행 가능 기능들 중 하나에 각각 대응하는 복수의 기능 아이콘들을 포함하는 GUI를 제공하는 단계로서, 상기 복수의 입력 요소 아이콘들 각각은 상기 복수의 기능 아이콘들과 연관되는 것인, GUI 제공 단계;
    상기 GUI를 통해, 상기 복수의 입력 요소 아이콘들 중 하나의 아이콘 및 상기 복수의 기능 아이콘들 중 대응하는 하나의 아이콘을 선택하는 사용자 입력을 수신하는 단계;
    선택된 입력 요소 아이콘에 대응하는 물리적 입력 요소의 맵핑에, 선택된 기능 아이콘에 대응하는 실행 가능 기능을 제공하기 위해, 상기 사용자 입력에 기초하여, 맵핑 기능을 변경하는 단계; 및
    상기 물리적 입력 요소가 활성화되면, 상기 물리적 입력 요소로 맵핑된 상기 실행 가능 기능을 개시하는 단계
    를 포함하는 리맵핑 방법.
  36. 제35항에 있어서, 상기 GUI를 제공하는 단계는, 상기 핸드헬드 전자 장치상에서 동작 가능한 소프트웨어 애플리케이션 클래스에 각각 대응하는, 소프트웨어 애플리케이션 아이콘 클래스를 더 포함하는 것인, 리맵핑 방법.
  37. 제36항에 있어서, 상기 물리적 입력 요소가 활성화되면, 상기 물리적 입력 요소로 맵핑된 상기 실행 가능 기능을 개시하는 단계는, 소프트웨어 애플리케이션 클래스 내의 소프트웨어 애플리케이션의 동작 중에 발생하는 것인, 리맵핑 방법.
  38. 제35항에 있어서, 상기 복수의 실행 가능 기능들은 복수의 시프팅 기능을 포함하는 것인, 리맵핑 방법.
  39. 제35항에 있어서, 상기 맵핑 기능은 키보드 장치 드라이버를 포함하는 것인, 리맵핑 방법.
  40. 제39항에 있어서, 상기 물리적 입력 요소가 활성화되면, 상기 물리적 입력 요소로 맵핑된 상기 실행 가능 기능을 개시하는 단계는,
    상기 물리적 입력 요소가 활성화되면, 버퍼에 스캔 코드를 기록하는 단계;
    상기 버퍼로부터 상기 스캔 코드를 회수하는 단계;
    상기 회수한 스캔 코드를 상기 변경된 키보드 장치 드라이버를 이용하여 가상 입력 요소 코드로 변환하는 단계;
    상기 스캔 코드 및 상기 가상 입력 요소 코드를 갖는 키보드 이벤트를 호출하는 단계; 및
    상기 키보드 이벤트와 연관된 상기 실행 가능 기능을 실행하는 단계
    를 포함하는 것인, 리맵핑 방법.
  41. 제35항에 있어서, 상기 맵핑 기능은 장치 레이아웃을 포함하는 것인, 리맵핑 방법.
  42. 제41항에 있어서, 상기 물리적 입력 요소가 활성화되면, 상기 물리적 입력 요소로 맵핑된 상기 실행 가능 기능을 개시하는 단계는,
    상기 물리적 입력 요소가 활성화되면, 버퍼에 스캔 코드를 기록하는 단계;
    상기 버퍼로부터 상기 스캔 코드를 회수하는 단계;
    상기 회수한 스캔 코드를 상기 변경된 장치 레이아웃을 이용하여 가상의 입력 요소 코드로 변환하는 단계;
    상기 스캔 코드 및 상기 가상 입력 요소 코드를 갖는 키보드 이벤트를 호출하는 단계; 및
    상기 키보드 이벤트와 연관된 상기 실행 가능 기능을 실행하는 단계
    를 포함하는 리맵핑 방법.
  43. 제35항에 있어서, 상기 선택된 입력 요소 아이콘에 대응하는 상기 물리적 입력 요소의 맵핑에, 상기 선택된 기능 아이콘에 대응하는 상기 실행 가능 기능을 제공하기 위해, 상기 사용자 입력에 기초하여, 맵핑 기능을 변경하는 단계는, 원래의 가상 입력 요소 코드의 상기 선택된 기능 아이콘에 대응하는 상기 실행 가능 기능과 연관된 새로운 가상 입력 요소 코드로의 맵핑을 제공하기 위해, 상기 사용자 입력에 기초하여, 키보드 장치 드라이버의 전환계층을 변경하는 단계를 포함하는 것인, 리맵핑 방법.
  44. 제43항에 있어서, 상기 물리적 입력 요소가 활성화되면, 상기 물리적 입력 요소로 맵핑된 상기 실행 가능 기능을 개시하는 단계는,
    상기 물리적 입력 요소가 활성화되면, 버퍼에 스캔 코드를 기록하는 단계;
    상기 버퍼로부터 상기 스캔 코드를 회수하는 단계;
    상기 스캔 코드를 상기 원래의 가상 입력 요소 코드로 변환하는 단계;
    상기 원래의 가상 입력 요소 코드를 상기 변경된 전환계층을 이용하여 상기 새로운 입력 요소 코드로 변환하는 단계;
    상기 스캔 코드 및 상기 새로운 가상 입력 요소 코드를 갖는 키보드 이벤트를 호출하는 단계; 및
    상기 키보드 이벤트와 연관된 기능으로서, 상기 기능 아이콘에 대응하는 상기 실행 가능 기능을 실행하는 단계
    를 포함하는 것인, 리맵핑 방법.
  45. 제44항에 있어서, 상기 물리적 입력 요소의 활성화는, 스타일러스(stylus) 또는 사용자의 손가락이나 엄지로 상기 물리적 입력 요소를 누르는 것을 포함하는 것인, 리맵핑 방법.
  46. 핸드헬드 전자 장치상의 복수의 물리적 입력 요소 중 하나를 소프트웨어 애플리케이션과 연관된 복수의 실행 가능 기능들 중 하나에 리맵핑하는 하나 이상의 명령어 시퀀스가 저장되어 있는 컴퓨터 판독 가능한 매체로서, 하나 이상의 프로세서에 의한 상기 하나 이상의 명령어 시퀀스의 실행은,
    상기 복수의 물리적 입력 요소들 중 하나의 요소에 대응하는, 상기 복수의 실행 가능 기능들 중 하나의 기능의 사용자 선택을 수신하는 단계;
    상기 선택된 실행 가능 기능을 상기 대응하는 물리적 입력 요소에 맵핑하기 위해, 상기 사용자 입력에 기초하여, 맵핑 기능을 변경하는 단계; 및
    상기 대응하는 물리적 입력 요소가 활성화되면, 상기 선택된 실행 가능 기능을 개시하는 단계
    를 포함하는 동작들을 상기 하나 이상의 프로세서들이 수행하게 하는 것인, 컴퓨터 판독 가능한 매체.
  47. 제46항에 있어서, 복수의 물리적 입력 요소 및 복수의 실행 가능 기능들을 식별하는 GUI를 제공하는 단계를 더 포함하는 컴퓨터 판독 가능한 매체.
  48. 제47항에 있어서, 상기 GUI는,
    상기 복수의 물리적 입력 요소들 중 하나에 각각 대응하는 복수의 입력 요소 아이콘; 및
    복수의 실행 가능 기능들 중 하나에 각각 대응하는 복수의 기능 아이콘들을 포함하고, 상기 복수의 입력 요소 아이콘 각각은 상기 복수의 기능 아이콘과 연관되는 것인, 컴퓨터 판독 가능한 매체.
  49. 제48항에 있어서, 상기 GUI를 제공하는 단계는, 상기 핸드헬드 전자 장치상에서 동작 가능한 소프트웨어 애플리케이션 클래스에 각각 대응하는, 소프트웨어 애플리케이션 아이콘 클래스를 식별하는 단계를 포함하는 것인, 컴퓨터 판독 가능한 매체.
  50. 제49항에 있어서, 상기 대응하는 물리적 입력 요소가 활성화되면, 상기 선택된 실행 가능 기능을 개시하는 단계는, 상기 소프트웨어 애플리케이션 클래스 내의 소프트웨어 애플리케이션의 동작 중에 발생하는 것인, 컴퓨터 판독 가능한 매체.
  51. 제46항에 있어서, 상기 복수의 실행 가능 기능들은 복수의 시프팅 기능들을 포함하는 것인, 컴퓨터 판독 가능한 매체.
  52. 제46항에 있어서, 상기 맵핑 기능은 키보드 장치 드라이버를 포함하는 것인, 컴퓨터 판독 가능한 매체.
  53. 제52항에 있어서, 상기 대응하는 물리적 입력 요소가 활성화되면, 상기 선택된 실행 가능 기능을 개시하는 단계는,
    상기 물리적 입력 요소가 활성화되면, 버퍼에 스캔 코드를 기록하는 단계;
    상기 버퍼로부터 상기 스캔 코드를 회수하는 단계;
    상기 회수한 스캔 코드를 상기 변경된 키보드 장치 드라이버를 이용하여 가상 입력 요소 코드로 변환하는 단계;
    상기 스캔 코드 및 상기 가상 입력 요소 코드를 갖는 키보드 이벤트를 호출하는 단계; 및
    상기 키보드 이벤트와 연관된 상기 선택된 실행 가능 기능을 실행하는 단계
    를 포함하는 것인, 컴퓨터 판독 가능한 매체.
  54. 제46항에 있어서, 상기 맵핑 기능은 장치 레이아웃을 포함하는 것인, 컴퓨터 판독 가능한 매체.
  55. 제54항에 있어서, 상기 대응하는 물리적 입력 요소가 활성화되면, 상기 선택된 실행 가능 기능을 개시하는 단계는,
    상기 물리적 입력 요소가 활성화되면, 버퍼에 스캔 코드를 기록하는 단계;
    상기 버퍼로부터 상기 스캔 코드를 회수하는 단계;
    상기 회수한 스캔 코드를 상기 변경된 장치 레이아웃을 이용하여 가상 입력 요소 코드로 변환하는 단계;
    상기 스캔 코드 및 상기 가상 입력 요소 코드를 갖는 키보드 이벤트를 호출하는 단계; 및
    상기 키보드 이벤트와 연관된 상기 선택된 실행 가능 기능을 실행하는 단계
    를 포함하는 것인, 컴퓨터 판독 가능한 매체.
  56. 제46항에 있어서, 상기 선택된 실행 가능 기능을 상기 대응하는 물리적 입력 요소에 맵핑하기 위해, 상기 사용자 입력에 기초하여, 맵핑 기능을 변경하는 단계는, 원래의 가상 입력 요소 코드의 상기 선택된 실행 가능 기능과 연관된 새로운 가상 입력 요소 코드로의 맵핑을 제공하기 위해, 상기 사용자 입력에 기초하여, 키보드 장치 드라이버의 전환계층을 변경하는 단계를 포함하는 것인, 컴퓨터 판독 가능한 매체.
  57. 제56항에 있어서, 상기 물리적 입력 요소가 활성화되면, 상기 물리적 입력 요소로 맵핑된 상기 실행 가능 기능을 개시하는 단계는,
    상기 물리적 입력 요소가 활성화되면, 버퍼에 스캔 코드를 기록하는 단계;
    상기 버퍼로부터 상기 스캔 코드를 회수하는 단계;
    상기 스캔 코드를 상기 원래의 가상 입력 요소 코드로 변환하는 단계;
    상기 원래의 가상 입력 요소 코드를 상기 변경된 전환계층을 이용하여 상기 새로운 입력 요소 코드로 변환하는 단계;
    상기 스캔 코드 및 상기 새로운 가상 입력 요소 코드를 갖는 키보드 이벤트를 호출하는 단계; 및
    상기 키보드 이벤트와 연관된 상기 선택된 실행 가능 기능을 실행하는 단계
    를 포함하는 것인, 컴퓨터 판독 가능한 매체.
  58. 제46항에 있어서, 상기 물리적 입력 요소의 활성화는 상기 물리적 입력 요소 를 누르는 단계를 포함하는 것인, 컴퓨터 판독 가능한 매체.
KR1020087008212A 2005-09-06 2006-09-05 핸드헬드 장치의 입력 요소를 리맵핑하는 방법 KR100942007B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/221,412 US7669770B2 (en) 2005-09-06 2005-09-06 Method of remapping the input elements of a hand-held device
US11/221,412 2005-09-06

Publications (2)

Publication Number Publication Date
KR20080042931A KR20080042931A (ko) 2008-05-15
KR100942007B1 true KR100942007B1 (ko) 2010-02-12

Family

ID=37734971

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087008212A KR100942007B1 (ko) 2005-09-06 2006-09-05 핸드헬드 장치의 입력 요소를 리맵핑하는 방법

Country Status (7)

Country Link
US (1) US7669770B2 (ko)
EP (1) EP1922601A2 (ko)
JP (1) JP2009507452A (ko)
KR (1) KR100942007B1 (ko)
CN (1) CN101297261A (ko)
CA (1) CA2621742A1 (ko)
WO (1) WO2007030466A2 (ko)

Families Citing this family (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100617821B1 (ko) * 2005-02-24 2006-08-28 삼성전자주식회사 사용자 인터페이스 장치 및 방법
US8775964B2 (en) * 2005-03-23 2014-07-08 Core Wireless Licensing, S.a.r.l. Method and mobile terminal device for mapping a virtual user input interface to a physical user input interface
US8689147B2 (en) * 2005-10-07 2014-04-01 Blackberry Limited System and method for using navigational and other commands on a mobile communication device
US8142287B2 (en) * 2005-10-11 2012-03-27 Zeemote Technology Inc. Universal controller for toys and games
KR100882324B1 (ko) * 2006-04-06 2009-02-11 (주)모비언스 키보드 지원 문자 입력 장치
JP4386059B2 (ja) * 2006-09-26 2009-12-16 コニカミノルタビジネステクノロジーズ株式会社 画像処理装置、情報送信方法及び画像処理システム
US20080165035A1 (en) * 2007-01-10 2008-07-10 Bhella Kenneth S Method and System for Customizing Keyboard Map Variants
KR101135898B1 (ko) * 2007-12-05 2012-04-13 삼성전자주식회사 리모트 컨트롤러 및 그 제어방법과 이를 가지는영상처리장치
US20090187847A1 (en) 2008-01-18 2009-07-23 Palm, Inc. Operating System Providing Consistent Operations Across Multiple Input Devices
US8281046B2 (en) 2008-07-03 2012-10-02 Steelseries Aps System and method for distributing user interface device configurations
US7925797B2 (en) * 2008-07-03 2011-04-12 Steelseries Hq System and method for distributing user interface device configurations
US8402391B1 (en) * 2008-09-25 2013-03-19 Apple, Inc. Collaboration system
US8930655B2 (en) * 2009-01-19 2015-01-06 Microsoft Corporation Transient storage device configuration silo
ES2360711B1 (es) * 2009-02-25 2012-05-08 Telefónica, S.A. Método y sistema y para la adaptación y telegestión de terminales móviles.
US20100269038A1 (en) * 2009-04-17 2010-10-21 Sony Ericsson Mobile Communications Ab Variable Rate Scrolling
JP4528866B1 (ja) * 2009-04-28 2010-08-25 株式会社東芝 電子機器
US20120007887A1 (en) 2010-07-08 2012-01-12 Shih-Min Chou Digital manipulator for inverter and image display method for digital manipulator
US20120079532A1 (en) * 2010-09-29 2012-03-29 Sony Corporation Techniques for developing a television user interface for a secondary device
US20120079533A1 (en) * 2010-09-29 2012-03-29 Sony Corporation Techniques for developing a customized television user interface for a secondary device
US8479994B2 (en) * 2011-09-14 2013-07-09 Metrologic Instruments, Inc. Individualized scanner
US9354748B2 (en) 2012-02-13 2016-05-31 Microsoft Technology Licensing, Llc Optical stylus interaction
CN103294977A (zh) * 2012-03-01 2013-09-11 鑫铨电脑股份有限公司 手持式电子装置
US9426905B2 (en) 2012-03-02 2016-08-23 Microsoft Technology Licensing, Llc Connection device for computing devices
USRE48963E1 (en) 2012-03-02 2022-03-08 Microsoft Technology Licensing, Llc Connection device for computing devices
US9064654B2 (en) 2012-03-02 2015-06-23 Microsoft Technology Licensing, Llc Method of manufacturing an input device
US9075566B2 (en) 2012-03-02 2015-07-07 Microsoft Technoogy Licensing, LLC Flexible hinge spine
US8873227B2 (en) 2012-03-02 2014-10-28 Microsoft Corporation Flexible hinge support layer
US9360893B2 (en) 2012-03-02 2016-06-07 Microsoft Technology Licensing, Llc Input device writing surface
US9870066B2 (en) 2012-03-02 2018-01-16 Microsoft Technology Licensing, Llc Method of manufacturing an input device
US9298236B2 (en) 2012-03-02 2016-03-29 Microsoft Technology Licensing, Llc Multi-stage power adapter configured to provide a first power level upon initial connection of the power adapter to the host device and a second power level thereafter upon notification from the host device to the power adapter
US9134807B2 (en) 2012-03-02 2015-09-15 Microsoft Technology Licensing, Llc Pressure sensitive key normalization
US20130300590A1 (en) 2012-05-14 2013-11-14 Paul Henry Dietz Audio Feedback
US9302182B2 (en) * 2012-05-23 2016-04-05 Side-Kick Ltd Method and apparatus for converting computer games between platforms using different modalities
US20130346636A1 (en) * 2012-06-13 2013-12-26 Microsoft Corporation Interchangeable Surface Input Device Mapping
US9459160B2 (en) 2012-06-13 2016-10-04 Microsoft Technology Licensing, Llc Input device sensor configuration
US9063693B2 (en) 2012-06-13 2015-06-23 Microsoft Technology Licensing, Llc Peripheral device storage
US9684382B2 (en) 2012-06-13 2017-06-20 Microsoft Technology Licensing, Llc Input device configuration having capacitive and pressure sensors
US9073123B2 (en) 2012-06-13 2015-07-07 Microsoft Technology Licensing, Llc Housing vents
TW201407433A (zh) * 2012-08-09 2014-02-16 jin-xiong Chu 觸摸式旋鈕開關
US8964379B2 (en) 2012-08-20 2015-02-24 Microsoft Corporation Switchable magnetic lock
US9268364B2 (en) 2012-08-31 2016-02-23 Trewgrip, Llc Ergonomic data entry device
US9176538B2 (en) 2013-02-05 2015-11-03 Microsoft Technology Licensing, Llc Input device configurations
US10578499B2 (en) 2013-02-17 2020-03-03 Microsoft Technology Licensing, Llc Piezo-actuated virtual buttons for touch surfaces
US9448631B2 (en) 2013-12-31 2016-09-20 Microsoft Technology Licensing, Llc Input device haptics and pressure sensing
US20150202533A1 (en) * 2014-01-21 2015-07-23 Nvidia Corporation Mapping touchscreen gestures to ergonomic controls across application scenes
US10120420B2 (en) 2014-03-21 2018-11-06 Microsoft Technology Licensing, Llc Lockable display and techniques enabling use of lockable displays
US9436295B2 (en) * 2014-03-28 2016-09-06 Intel Corporation Alternate dynamic keyboard for convertible tablet computers
CN105224858A (zh) 2014-06-05 2016-01-06 阿里巴巴集团控股有限公司 一种密码输入界面显示方法及系统
US10146330B2 (en) 2014-06-18 2018-12-04 Matthew Swan Lawrence Systems and methods for character and command input
US10324733B2 (en) 2014-07-30 2019-06-18 Microsoft Technology Licensing, Llc Shutdown notifications
US9424048B2 (en) 2014-09-15 2016-08-23 Microsoft Technology Licensing, Llc Inductive peripheral retention device
US9250712B1 (en) * 2015-03-20 2016-02-02 Hand Held Products, Inc. Method and application for scanning a barcode with a smart device while continuously running and displaying an application on the smart device display
US10222889B2 (en) 2015-06-03 2019-03-05 Microsoft Technology Licensing, Llc Force inputs and cursor control
US10416799B2 (en) 2015-06-03 2019-09-17 Microsoft Technology Licensing, Llc Force sensing and inadvertent input control of an input device
CN105068081A (zh) * 2015-08-31 2015-11-18 江苏徕兹光电科技股份有限公司 测距仪及测距仪的控制方法
CN105430141A (zh) * 2015-12-02 2016-03-23 海南易建科技股份有限公司 一种肩咪快捷按键功能实现方法及智能对讲机
WO2017121049A1 (en) 2016-01-15 2017-07-20 Findpiano Information Technology (Shanghai) Co., Ltd. Piano system and operating method thereof
CN106981278B (zh) * 2016-01-15 2021-09-24 森兰信息科技(上海)有限公司 一种智能钢琴大屏显示系统功能操控方法及系统
US10061385B2 (en) 2016-01-22 2018-08-28 Microsoft Technology Licensing, Llc Haptic feedback for a touch input device
WO2017188839A1 (en) * 2016-04-28 2017-11-02 Yota Devices Ipr Limited Mobile device comprising display and a hardware power button
US10086267B2 (en) 2016-08-12 2018-10-02 Microsoft Technology Licensing, Llc Physical gesture input configuration for interactive software and video games
US10286304B2 (en) * 2016-08-30 2019-05-14 Microsoft Technology Licensing, Llc Controller having accessory connectors for externalizing controls
US20180143800A1 (en) * 2016-11-22 2018-05-24 Microsoft Technology Licensing, Llc Controls for dictated text navigation
KR102539578B1 (ko) * 2018-02-19 2023-06-05 삼성전자주식회사 어플리케이션의 기능을 매핑하는 방법 및 그 전자 장치
US11216065B2 (en) * 2019-09-26 2022-01-04 Lenovo (Singapore) Pte. Ltd. Input control display based on eye gaze
US11158308B1 (en) * 2019-11-27 2021-10-26 Amazon Technologies, Inc. Configuring natural language system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0251477A2 (en) * 1986-05-30 1988-01-07 Texas Instruments Incorporated Electronic calculator having function keys with programmable labels
US6615299B1 (en) * 2000-01-31 2003-09-02 Intel Corporation Dynamically translating commands from an input device into commands understandable by an application
US20050093846A1 (en) * 2003-10-31 2005-05-05 Beth Marcus Human interface system

Family Cites Families (69)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4912462A (en) * 1982-07-29 1990-03-27 Sharp Kabushiki Kaisha Letter input device for electronic word retrieval device
US4891777A (en) * 1983-05-11 1990-01-02 The Laitram Corporation Single hand keyboard arrays providing alphanumeric capabilities from twelve keys
GB8423427D0 (en) * 1984-09-17 1984-10-24 Jones P S Music synthesizer
JPS62258136A (ja) * 1986-04-30 1987-11-10 Mazda Motor Corp エンジンの燃料供給制御装置
US4896554A (en) * 1987-11-03 1990-01-30 Culver Craig F Multifunction tactile manipulatable control
AU6416390A (en) 1989-09-28 1991-04-28 Kurt W. Biller Data input keyboard
US6005496A (en) * 1991-04-10 1999-12-21 Kinesis Corporation Ergonomic keyboard apparatus
US5189416A (en) * 1991-04-29 1993-02-23 Walker-Estes Corporation Chordal keyboard method and apparatus
US5365589A (en) * 1992-02-07 1994-11-15 Gutowitz Howard A Method and apparatus for encryption, decryption and authentication using dynamical systems
JP3199130B2 (ja) * 1992-03-31 2001-08-13 パイオニア株式会社 3次元座標入力装置
AR247303A1 (es) 1992-08-21 1994-11-30 Gilligan Federico Gustavo Y Fa Nuevo teclado de computacion
US5824931A (en) * 1993-03-12 1998-10-20 Musacus International Limited Electronic information aid
US5432510A (en) * 1993-03-22 1995-07-11 Matthews; Walter S. Ambidextrous single hand chordic data management device
US5612690A (en) 1993-06-03 1997-03-18 Levy; David Compact keypad system and method
US5973621A (en) * 1993-06-03 1999-10-26 Levy; David Compact keyed input device
US5473325A (en) * 1993-08-11 1995-12-05 Mcalindon; Peter J. Ergonomic human-computer interface apparatus and method
US5523754A (en) * 1993-09-20 1996-06-04 International Business Machines Corporation Method and apparatus for automatic keyboard configuration by layout
US5515305A (en) * 1993-12-09 1996-05-07 Dell Usa, L.P. PDA having chord keyboard input device and method of providing data thereto
WO1995032461A1 (en) * 1994-05-23 1995-11-30 Australian Institute Of Marine Science A human/machine interface for computing devices
US5782642A (en) * 1995-12-19 1998-07-21 Goren; Michael Interactive video and audio display system network interactive monitor module interface
US6184804B1 (en) * 1996-01-26 2001-02-06 Orang-Otang Computers, Inc. Key palette
GB2314179B (en) * 1996-06-12 1998-05-20 John Quentin Phillipps Portable electronic apparatus
US5859629A (en) * 1996-07-01 1999-01-12 Sun Microsystems, Inc. Linear touch input device
US6297752B1 (en) * 1996-07-25 2001-10-02 Xuan Ni Backside keyboard for a notebook or gamebox
US6115028A (en) * 1996-08-22 2000-09-05 Silicon Graphics, Inc. Three dimensional input system using tilt
US6232956B1 (en) * 1997-02-27 2001-05-15 Spice Technologies, Inc. OHAI technology user interface
DE19718711C1 (de) * 1997-05-02 1998-12-03 Easyphone Gmbh Mobilfunkgerät mit verringertem Tastensatz
US6084576A (en) * 1997-09-27 2000-07-04 Leu; Neng-Chyang User friendly keyboard
TW401598B (en) * 1997-11-27 2000-08-11 United Microelectronics Corp The manufacture method of hemispherical grain silicon (HSG-Si)
DE19757933A1 (de) 1997-12-27 1998-10-01 Lei Sun Ergonomische, drahtlose, multifunktionale und kompakte Eingabe- und Anzeigevorrichtung
US6919879B2 (en) * 1998-06-26 2005-07-19 Research In Motion Limited Hand-held electronic device with a keyboard optimized for use with the thumbs
US6512511B2 (en) * 1998-07-20 2003-01-28 Alphagrip, Inc. Hand grippable combined keyboard and game controller system
US6760013B2 (en) * 1998-07-20 2004-07-06 Alphagrip, Inc. Hand held gaming and data entry system
US6219731B1 (en) * 1998-12-10 2001-04-17 Eaton: Ergonomics, Inc. Method and apparatus for improved multi-tap text input
USRE43082E1 (en) * 1998-12-10 2012-01-10 Eatoni Ergonomics, Inc. Touch-typable devices based on ambiguous codes and methods to design such devices
US6320942B1 (en) * 1998-12-31 2001-11-20 Keytouch Corporation Directionally-mapped, keyed alpha-numeric data input/output system
US6377685B1 (en) * 1999-04-23 2002-04-23 Ravi C. Krishnan Cluster key arrangement
US6606486B1 (en) * 1999-07-29 2003-08-12 Ericsson Inc. Word entry method for mobile originated short messages
US6865718B2 (en) * 1999-09-29 2005-03-08 Microsoft Corp. Accelerated scrolling
US6909424B2 (en) * 1999-09-29 2005-06-21 Gateway Inc. Digital information appliance input device
US6542091B1 (en) * 1999-10-01 2003-04-01 Wayne Allen Rasanen Method for encoding key assignments for a data input device
US6498601B1 (en) 1999-11-29 2002-12-24 Xerox Corporation Method and apparatus for selecting input modes on a palmtop computer
US6654733B1 (en) * 2000-01-18 2003-11-25 Microsoft Corporation Fuzzy keyboard
US6573844B1 (en) * 2000-01-18 2003-06-03 Microsoft Corporation Predictive keyboard
US20030083114A1 (en) * 2000-04-13 2003-05-01 Daniel Lavin Hardware configuration for a navigation control unit for a wireless computer resource access device, such as a wireless web content access device
US6741235B1 (en) * 2000-06-13 2004-05-25 Michael Goren Rapid entry of data and information on a reduced size input area
JP2002099378A (ja) * 2000-09-25 2002-04-05 Misawa Homes Co Ltd キー入力プログラム配信システム、サーバおよび携帯機器
US6520699B2 (en) * 2001-02-16 2003-02-18 Toshiyasu Abe Keyboard
US6738045B2 (en) * 2001-02-26 2004-05-18 Microsoft Corporation Method and system for accelerated data navigation
US20020163504A1 (en) * 2001-03-13 2002-11-07 Pallakoff Matthew G. Hand-held device that supports fast text typing
JP2002315076A (ja) * 2001-04-12 2002-10-25 Nec Corp 携帯電話機を用いた入力装置
US7072975B2 (en) * 2001-04-24 2006-07-04 Wideray Corporation Apparatus and method for communicating information to portable computing devices
US6541715B2 (en) * 2001-05-24 2003-04-01 Philip Swanson Alphanumeric keyboard for hand-held electronic devices
GB0116083D0 (en) * 2001-06-30 2001-08-22 Koninkl Philips Electronics Nv Text entry method and device therefor
AU2002354677A1 (en) 2001-07-12 2003-01-29 Gary L. Friedman Portable, hand-held electronic input device and combination with a personal digital device
US20040196265A1 (en) 2001-07-17 2004-10-07 Nohr Steven P. System and method for finger held hardware device
US20030048205A1 (en) * 2001-08-10 2003-03-13 Junru He 3D electronic data input device with key mapping card
DE10144634A1 (de) 2001-09-11 2003-04-10 Trw Automotive Electron & Comp Bediensystem
KR20070039178A (ko) * 2001-09-20 2007-04-11 유비, 인크. 유니버설 키보드를 이용하는 무선통신 장치
JP2003099704A (ja) * 2001-09-21 2003-04-04 Mitsubishi Electric Corp 振動パターンをプログラミング可能なハンディターミナル装置およびハンディターミナル装置用アプリケーション・ソフトウェア
FI115861B (fi) 2001-11-12 2005-07-29 Myorigo Oy Menetelmä ja laite palautteen generoimiseksi
US8176432B2 (en) * 2001-11-20 2012-05-08 UEI Electronics Inc. Hand held remote control device having an improved user interface
EP1466416A4 (en) 2001-12-18 2009-05-27 Nokia Corp REMOVABLE HOUSING COVER FOR A PORTABLE RADIOCOMMUNICATION DEVICE
US6947028B2 (en) * 2001-12-27 2005-09-20 Mark Shkolnikov Active keyboard for handheld electronic gadgets
US20030193418A1 (en) * 2002-04-10 2003-10-16 Xiaodong Shi Method and Apparatus To Input Text On Devices Requiring A Small Keypad
BR0311243A (pt) * 2002-05-23 2005-05-10 Digit Wireless Llc Teclados e comutadores de teclas
DE10229068B3 (de) 2002-06-28 2004-02-05 Fujitsu Siemens Computers Gmbh PDA (Personal Digital Assistant) mit Touch-Screen Display
US6998871B2 (en) * 2002-11-29 2006-02-14 Sigmatel, Inc. Configurable integrated circuit for use in a multi-function handheld device
US20040208681A1 (en) * 2003-04-19 2004-10-21 Dechene Joseph Fernand Computer or input device with back side keyboard

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0251477A2 (en) * 1986-05-30 1988-01-07 Texas Instruments Incorporated Electronic calculator having function keys with programmable labels
US6615299B1 (en) * 2000-01-31 2003-09-02 Intel Corporation Dynamically translating commands from an input device into commands understandable by an application
US20050093846A1 (en) * 2003-10-31 2005-05-05 Beth Marcus Human interface system

Also Published As

Publication number Publication date
WO2007030466A3 (en) 2007-05-10
CA2621742A1 (en) 2007-03-15
US20070051792A1 (en) 2007-03-08
US7669770B2 (en) 2010-03-02
CN101297261A (zh) 2008-10-29
KR20080042931A (ko) 2008-05-15
WO2007030466A2 (en) 2007-03-15
JP2009507452A (ja) 2009-02-19
EP1922601A2 (en) 2008-05-21

Similar Documents

Publication Publication Date Title
KR100942007B1 (ko) 핸드헬드 장치의 입력 요소를 리맵핑하는 방법
JP5717670B2 (ja) ヒューマンインターフェース入力アクセラレーションシステム
KR101188484B1 (ko) 핸드-헬드 전자 장치에 사용하기 위한 휴먼 인터페이스 및입력 시스템
US20060123359A1 (en) Portable electronic device having user interactive visual interface
US20050140653A1 (en) Character key incorporating navigation control
KR101250888B1 (ko) 구성가능한 키패드들을 제공하기 위한 표준화된 방법 및 시스템들
US9477321B2 (en) Embedded navigation assembly and method on handheld device
US8780046B2 (en) Device and method for application navigation enhancement on a handheld electronic device
KR100967321B1 (ko) 속기 키보드의 키 및 문자 매핑 방법 및 장치
KR20080097563A (ko) 키보드 시스템 및 그의 동작 방법
EP1524587A1 (en) Device having a joystick keypad
EP2077485B1 (en) Embedded navigation assembly and method on handheld device
EP2034397B1 (en) Device and method for application navigation enhancement on a handheld electronic device
EP1538515B1 (en) Character key incorporating navigation control
EP2073104B1 (en) Trackball input for handheld electronic device
CA2646985C (en) Wheeled user input device in cooperation with a handheld electronic communication device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130117

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140120

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150123

Year of fee payment: 6