Touchscreen keyboard configuration method, apparatus, and computer-readable medium storing program

An input method usable by a terminal including a touch screen display, identifies first touch input locations on a touch screen. The first touch input locations comprise a predetermined number of concurrent multiple touches. A predetermined number of input buttons comprising a predetermined number of areas on the touch screen are associated with corresponding identified first touch input locations. A touch pattern is detected comprising a second touch input of one or more of the predetermined number of input buttons and an alphanumeric input corresponding to the detected touch pattern is processed.

CLAIM OF PRIORITY

This application claims priority under 35 U.S.C. §119(a) to Korean Application Serial No. 10-2012-0151153, which was filed in the Korean Intellectual Property Office on Dec. 21, 2012 the entire content of which is hereby incorporated by reference.

BACKGROUND

1. Technical Field

The present system concerns a touch screen based user interface and data input unit.

2. Description of the Related Art

Known mobile devices store and execute installed applications manufactured by a manufacturer of the device apparatus as well as additional applications downloaded from the Internet, for example. The additional applications may registered on the website that sells applications and tens of thousands to hundreds of thousands of applications are currently available to be provided to a mobile device free of charge or at a cost dependent on type of destination mobile device.

Accordingly, typically hundreds of applications are stored in a mobile device such as a smart phone or a tablet Personal Computer (PC), and shortcut keys for executing the applications are displayed on a display of a touch screen of the mobile device as icons. A user may touch one of the icons displayed on the display of the touch screen to execute a desired application in the mobile device.

A virtual keyboard on the display of the touch screen is a user interface and gateway to the applications and it is desirable to have a user friendly interface supporting quick user navigation to desired applications and functions.

SUMMARY

A system supports accurate key input of characters in response to user touch, reduces keying errors, and recognizes a position of an input button by forming a virtual keyboard for a Braille input on an area where a touch input is made by the user, even in a condition where the user does not see the virtual keyboard.

An input method usable by a terminal including a touch screen display, identifies first touch input locations on a touch screen. The first touch input locations comprise a predetermined number of concurrent multiple touches. A predetermined number of input buttons comprising a predetermined number of areas on the touch screen are associated with corresponding identified first touch input locations. A touch pattern is detected comprising a second touch input of one or more of the predetermined number of input buttons and an alphanumeric input corresponding to the detected touch pattern is processed.

In a feature, a character input mode is provided including an English input mode and a number input mode and the predetermined number of input buttons is set based on a Braille input method and the alphanumeric character is allocated in accordance with a Braille coding. The method identifies an input gesture of a user and processes a function key input corresponding to the input gesture. The input gesture corresponds to at least one of a terminal motion gesture including tilting, rotation, and movement of the terminal, and a touch gesture including a touch input of the touch screen display. The processing of the function key input corresponding to the input gesture comprises processing at least one of a character input mode change function for changing a type of a character to be input, a cursor movement function for moving a position of a cursor, a character input completion function for prompting completion of a character input, a character deletion function for deleting an input character, and an input end function for prompting an end of a character input. The touch gesture is a drag gesture comprising at least one of a single touch and a multi touch, and the processing of the function key input corresponding to the input gesture comprises moving a position of a cursor according to a movement direction and a size of displacement of the touch drag gesture. Also in an embodiment the touch gesture is a drag gesture in which multiple touches move in substantially the same direction, and the processing of the function key input corresponding to the input gesture comprises deleting an input character in a position corresponding to a movement direction and displacement of the touch drag gesture.

In a further feature, the touch gesture is a drag gesture where concurrent touches move in different directions within a predetermined angle range, and the processing of the function key input corresponding to the input gesture comprises ending a standby state for at least one of, an alphanumeric input and a function key input. The touch gesture is a drag gesture where concurrent multiple touches move in different directions beyond the predetermined angle range.

In yet another feature, a terminal apparatus comprises a touch screen display unit, one or more controllers and a memory that stores at least a user interface key input program. The key input program is configured to be executed by the controller and includes instructions for, identifying first touch input locations on a touch screen associated with a predetermined number of input buttons comprising a predetermined number of areas on the touch screen corresponding to the identified first touch input locations and detecting a touch pattern comprising a second touch input of one or more of the predetermined number of input buttons and associating a key input with the detected touch pattern using a predetermined map associating different detected patterns with corresponding respective key inputs.

In yet a further feature, the key input program further includes a command for providing a character input mode including an English input mode and a number input mode. The different detected patterns associated with corresponding respective key inputs are determined based on a Braille coding and the key input program recognizes an input gesture of a user and processes an input corresponding to the input gesture. A motion sensor detects a terminal motion gesture including tilting, rotation, and movement of the terminal apparatus, wherein the input gesture includes the terminal motion gesture. The input gesture includes a touch gesture including a touch input of the touch screen display. The input corresponding to the input gesture corresponds to at least one of a character mode change that changes a type of a character to be input, a cursor movement that moves a position of a cursor, a character input completion prompts completion of a character input, a character deletion that deletes an input character, and an input end prompts end of a character input.

In an additional feature, a computer-readable recording medium stores one or more programs. The one or more programs comprises instructions for:

identifying first touch input locations on a touch screen and comprising a predetermined number of concurrent multiple touches; associating input buttons in areas on the touch screen with corresponding identified first touch input locations; and detecting a touch pattern comprising a second touch input of one or more of the predetermined number of input buttons and processing an alphanumeric input corresponding to the detected touch pattern.

DETAILED DESCRIPTION

Hereinafter, specific exemplary embodiments of the system will be described with reference to the accompanying drawings. The same reference numerals represented in each of the drawings indicate the elements that perform substantially the same functions.

While terms including ordinal numbers, such as “first” and “second,” etc., may be used to describe various components, such components are not limited by the above terms. The terms are used merely for the purpose to distinguish an element from the other elements. For example, a first element could be termed a second element, and similarly, a second element could be also termed a first element without departing from the scope. As used herein, the singular forms are intended to include the plural forms as well, unless the context clearly indicates otherwise.

FIG. 1Ashows a mobile apparatus100that may be connected with an external device (not shown) by using an external device connector such as a sub communication module130, a connector165, and an earphone connecting jack167. The “external device” may include various devices attached to or detached from the apparatus100through a wire, such as an earphone, an external speaker, a Universal Serial Bus (USB) memory, a charger, a cradle/dock, a Digital Multimedia Broadcasting (DMB) antenna, a mobile payment related device, a health management device (blood sugar tester or the like), a game machine, a car navigation device and the like. Further, the “external device” may include a Bluetooth communication device, a short distance communication device such as a Near Field Communication (NFC) device, a WiFi Direct communication device, and a wireless Access Point (AC) which may be wirelessly connected to the apparatus100. In addition, the external device may include another device, a mobile phone, a smart phone, a tablet PC, a desktop PC, and a server.

Apparatus100includes a display unit190and a display controller195. Further, the apparatus100includes a controller110, a mobile communication module120, a sub communication module130, a multimedia module140, a camera module150, a GPS module155, an input/output module160, a sensor module170, a storage unit175, and a power supplier180. The sub communication module130includes at least one of a wireless LAN module131and a short distance communication module132, and the multimedia module140includes at least one of a broadcasting communication module141, an audio reproduction module142, and a video reproduction module143. The camera module150includes at least one of a first camera151and a second camera152. The input/output module160includes at least one of a button161, a microphone162, a speaker163, a vibration motor164, a connector165, and a keypad166.

The controller110may include a CPU111, a Read Only Memory (ROM)112storing a control program for controlling the apparatus100, and a Random Access Memory (RAM)113used as a storage area for storing a signal or data input from the outside of the apparatus100or for an operation performed in the apparatus100. The CPU111includes a single core, a dual core, a triple core, or a quadruple core. The CPU111, the ROM112, and the RAM113may be mutually connected to each other through an internal bus. The controller110may control the mobile communication module120, the sub communication module130, the multimedia module140, the camera module150, the GPS module155, the input/output module160, the sensor module170, the storage unit175, the power supplier180, the display unit190, and the display controller195.

The mobile communication module120enables the apparatus100to be connected with an external device through mobile communication by using one antenna or a plurality of antennas (not shown) according to a control of the controller110. The mobile communication module120transmits/receives a wireless signal for a voice call, a video call, a Short Message Service (SMS), or a Multimedia Message Service (MMS) to/from a mobile phone (not shown), a smart phone (not shown), a tablet PC, or another device (not shown) using a phone number input into the apparatus100. The sub communication module130may include at least one of the wireless LAN module131and the short distance communication module132. For example, the sub communication module130may include the wireless LAN module131, the near field communication module132, or both the wireless LAN module131and the near field communication module132.

The wireless LAN module131may be Internet-connected in a place where a wireless Access Point (AP) (not shown) is installed according to a control of the controller110. The wireless LAN module131supports a wireless LAN standard (IEEE802.11x) of the Institute of Electrical and Electronics Engineers (IEEE). The short distance communication module13210may wirelessly perform short distance communication between the apparatus100and an image forming apparatus (not shown) according to a control of the controller110. A short distance communication scheme may include Bluetooth, Infrared Data Association (IrDA) communication, WiFi-Direct communication, Near Field Communication (NFC) and the like. The apparatus100may include at least one of the mobile communication module120, the wireless LAN module131, and the short distance communication module132. For example, the apparatus100may include a combination of the mobile communication module120, the wireless LAN module131, and the short distance communication module132according to a capability thereof.

The multimedia module140may include the broadcasting communication module141, the audio reproduction module142, or the video reproduction module143. The broadcasting communication module141may receive a broadcasting signal (for example, a TV broadcasting signal, a radio broadcasting signal, or a data broadcasting signal) and broadcasting supplement information (for example, Electric Program Guide: EPG or Electric Service Guide: ESG) output from a broadcasting station through a broadcasting communication antenna (not shown) according to a control of the controller110. The audio reproduction module142may reproduce a digital audio file (for example, a file having a file extension of mp3, wma, ogg, or way) stored or received according to a control of the controller110. The video reproduction module143may reproduce a digital video file (for example, a file having a file extension of mpeg, mpg, mp4, avi, mov, or mkv) stored or received according to a control of the controller110. The video reproduction module143may reproduce the digital audio file.

The multimedia module140may include the audio reproduction module142or the video reproduction module143and exclude the broadcasting communication module141. Further, the audio reproduction module142or the video reproduction module143of the multimedia module140may be included in the controller110. The camera module150may include at least one of the first camera151and the second camera152for acquiring a still image or a video in response to control of the controller110. Further, the first camera151or the second camera152may include an auxiliary light source (for example, a flash (not shown) providing light required for the photographing. The first camera151may be disposed on a front surface of the apparatus100, and the second camera152may be disposed on a back surface of the apparatus100. Alternatively, the first camera151and the second camera152are closely located to each other (for example, an interval between the first camera151and the second camera152is larger than 1 cm and smaller than 8 cm) and acquire a three dimensional still image or a three dimensional video.

The GPS module155may receive radio waves from a plurality of GPS satellites (not shown) in Earth's orbit and calculate a position of the apparatus100by using Time of Arrival from the GPS satellites to the apparatus100. The input/output module160may include at least one of a plurality of buttons161, the microphone162, the speaker163, the vibration motor164, the connector165, and the keypad166. The buttons161may be formed on a front surface, a side surface, or a back surface of a housing of the apparatus100, and may include a power/lock button (not shown) and a volume button (not shown). Further, the buttons161may include at least one of a menu button, a home button, a back button, and a search button161. Although it is described as an example that the buttons161are separately arranged at the outside of the housing of the apparatus100in hardware, the buttons are not limited thereto. The buttons161may be displayed on an area of the display unit190in a form of icons or UI elements, or implemented by virtual buttons configured to perform functions pre-allocated by a selection of the corresponding area.

The microphone162receives a voice or a sound to generate an electrical signal in response to control of the controller110. The speaker163may output sounds corresponding to various signals (for example, a wireless signal, a broadcasting signal, a digital audio file, a digital video file, taking a picture or the like) of the mobile communication module120, the sub communication module130, the multimedia module140, or the camera module150to the outside of the apparatus100in response to control of the controller110. The speaker163may output a sound (for example, button tone corresponding to a phone call or ringing tone) corresponding to a function performed by the apparatus100. One or more speakers163may be located in the housing of the apparatus100.

The vibration motor164may convert an electrical signal to a mechanical vibration according to a control of the controller110. For example, when the apparatus100in a vibration mode receives a voice call from another device (not shown), the vibration motor164is operated. One or more vibration motors164may be formed within the housing of the apparatus100. The vibration motor164may operate in response to a touch action of the user made on the touch screen or successive motions of the touch on the display unit190. The connector165may be used as an interface for connecting the apparatus100with an external device (not shown) or a power source (not shown). The apparatus100may transmit or receive data stored in the storage unit175of the apparatus100to or from an external device (not shown) through a wired cable connected to the connector165according to a control of the controller110. Further, the apparatus100may receive power from a power source (not shown) through the wired cable connected to the connector165or charge a battery (not shown) by using the power source.

The keypad166may receive a key input from the user to control the apparatus100. The keypad166includes a physical keypad (not shown) formed in the apparatus100or a virtual keypad (not shown) displayed on the display unit190. The physical keypad (not shown) formed in the apparatus100may be omitted. An earphone (not shown) may be inserted into the earphone connecting jack167to be connected with apparatus100. A stylus pen168may be inserted into the apparatus100to be stored in the apparatus100, and withdrawn and detached from the apparatus100when being used. A pen attachment/detachment recognition switch169operating in accordance with attachment or detachment of the stylus pen168is located at one area within the apparatus100into which the stylus pen168is inserted, and thus signals corresponding to the attachment and the detachment of the stylus pen168may be provided to the controller110. The pen attachment/detachment recognition switch169is located at one area into which the stylus pen168is inserted to directly or indirectly contact the stylus pen168when the stylus pen168is mounted. Accordingly, the pen attachment/detachment recognition switch169generates a signal corresponding to the attachment or the detachment of the stylus pen168based on the direct or indirect contact with the stylus pen168and provides the generated signal to the controller110.

The sensor module170includes at least one sensor for detecting a state of the apparatus100. For example, the sensor module170may include a proximity sensor for detecting whether the user approaches the apparatus100, an illuminance sensor (not shown) for detecting an amount of ambient light of the apparatus100, a motion sensor (not shown) for detecting an operation (for example, a rotation of the apparatus100, or an acceleration or a vibration applied to the apparatus100) of the apparatus100, a geo-magnetic sensor (not shown) for detecting a point of the compass by using the Earth's magnetic field, a gravity sensor for detecting an action direction of the gravity, and an altimeter for measuring an atmospheric pressure to detect an altitude. At least one sensor may detect a state, generate a signal corresponding to the detection, and transmit the signal to the controller110.

The storage unit175may store an input/output signal or data corresponding to the operation of the communication module120, the sub communication module130, the multimedia module140, the camera module150, the GPS module155, the input/output module160, the sensor module170, or the display unit190. The storage unit175may store a control program and applications for controlling the apparatus100or the controller110. The term “storage unit” includes the storage unit175, the ROM112and the RAM113within the controller110, or a memory card (not shown) (for example, an SD card or a memory stick) installed in the apparatus100. The storage unit may include a non-volatile memory, a volatile memory, a Hard Disk Drive (HDD), or a Solid State Drive (SSD).

The storage unit175may store program commands for processing steps included in a key input method, that is, a step of identifying a first touch input in areas preset for the key input, a step of generating input buttons including virtual buttons in the areas where the first touch input has been generated, and a step of processing a key input corresponding to a second touch input generated by the input button. The controller110reads the program commands for executing the key input method and controls hardware components included in the apparatus100based on the program commands. Further, the controller110may temporarily or continuously store data generated while the program commands are executed in the storage unit175, display a UI required for performing the key input method on the display unit190, or receive an input through the displayed UI. The power supplier180may supply power to one or more batteries (not shown) arranged at the housing of the apparatus100according to a control of the controller110. The one or more batteries (not shown) supply power to the apparatus100. Further, the power supplier180may supply power input from an external power source (not shown) through a wired cable connected to the connector165to the apparatus100. In addition, the power supplier180may supply power wirelessly input from the external power source through a wireless charging technology to the apparatus100.

The display controller195receives different information (for example, information generated to perform a call, data transmission, broadcasting, photography) processed by the controller110, converts the received different information to data which can be displayed by the display unit190, and provides the data to the display unit190. The display unit190displays the data received from the display controller195. For example, the display unit190may display a User Interface (UI) or a Graphic User Interface (GUI) related to a call in a call mode. The display unit190may include at least one of a liquid crystal display, a thin film transistor-liquid crystal display, an organic light-emitting diode, a flexible display, a 3D display, and an electrophoretic display.

Further, the display unit190may be used as an input device as well as an output device, and accordingly, may include a touch screen panel. In addition, the display unit190may transmit an analog signal corresponding to at least one touch input through the UI or the GUI to the display controller195. The display unit190may detect one or more touches input through a user's body (for example, fingers including a thumb) or a touchable input means (for example, a stylus pen). The display unit190may receive successive motions of the touch among the one or more touches and transmit an analog signal corresponding to the successive motions to the display controller195. The display unit190may detect one or more touches in a resistive type, a capacitive type, an infrared type, or an acoustic wave type.

The touch according to the present invention is not limited to the contact between the display unit190and the user's body or the touchable input means, and may include a non-contact (for example, a detectable interval between the display unit190and the user's body or the touchable input means is smaller than or equal to 1 mm) The detectable interval on the display unit190may be changed according to a capability or a structure of the apparatus100. Particularly, the display unit190may output different values (for example, including current values) detected by a touch event and a hovering event so that the touch event by a contact with the user's body or the touchable input unit and the input event (for example, the hovering event) in a noncontact state can be distinguishably detected. Further, it is preferable that the display unit190differently outputs detected values (for example, current values) based on a distance between the display unit190and a space where the hovering event is generated.

The display controller195converts an analog signal received from the display unit190to a digital signal (for example, X and Y coordinates) and transmits the converted digital signal to the controller110. The controller110may control the display unit190by using the digital signal received from the display controller195. For example, the controller110may allow a short-cut icon (not shown) displayed on the display unit190to be selected or executed in response to a touch event or a hovering event. Further, the display controller195may be included in the controller110. The screen controller195may identify a distance between a space where the hovering event is generated and the display unit190by detecting a value (for example, a current value) output through the display unit190, convert the identified distance value to a digital signal (for example, a Z coordinate), and provide the converted digital signal to the controller110.

Further, the display unit190may include two or more touch screen panels which can detect touches or approaches of the user's body and the touchable input unit in order to sequentially or simultaneously receive inputs by the user's body and the touchable input unit. The two or more touch screen panels provide different output values to the display controller195, and the display controller195may differently recognize the values input into the two or more touch screen panels to distinguish whether the input from the touch screen is an input by the user's body or an input by the touchable input unit.

FIG. 1Bis a front perspective view of the mobile apparatus andFIG. 1Cis a rear perspective view of the mobile apparatus. Referring toFIGS. 1B and 1C, the display unit190is disposed on a center of a front surface100aof the apparatus100. The display unit190has a large size to occupy most of the front surface100aof the apparatus100.FIG. 1Bshows an example where a main home screen is displayed on the display unit190. The main home screen is a screen displayed when power is turned on or after a screen lock is released and is first displayed on the display unit190. Further, when the apparatus100has different home screens of several pages, the main home screen may be a first home screen or a preset home screen of the home screens of several pages. Short-cut icons191-1,191-2, and191-3for executing frequently used applications, a main menu switching key191-4, time, weather and the like may be displayed on the home screen. The main menu switching key191-4displays a menu screen on the display unit190. Further, a status bar192which shows a status of the apparatus100such as a battery charging status, intensity of a received signal, and a current time may be formed on an upper end of the display unit190. As functions (for example, inputting a caller's number in a call application, inputting text in a text message application, inputting text in an Instant Message (IM) application, and inputting a character (or number) in a search application) are executed, the controller110may provide the UI, the virtual buttons, or the key input window provided by the key input method to the display unit190, and the display unit190may display the UI, the virtual buttons, or the key input window provided by the key input method.

A home button161a, a menu button161b, and a back button161cmay be formed below the display unit190. The home button161a, the menu button161b, and the back button161care located below the display unit190as separated hardware keys as illustrated inFIG. 1B, but the keys of the present invention are not limited thereto. For example, the home button161a, the menu button161b, and the back button161cmay be located at an area of the display unit190, for example, below the shortcut icons191-1,191-2, and191-3as virtual buttons such as icons or UIs to perform functions of the home button161a, the menu button161b, and the back button161c. The home button161adisplays the main home screen on the display unit190. For example, when the home button161ais pressed in a state where a home screen different from the main home screen or the menu screen is displayed on the display unit190, the main home screen may be displayed on the display unit190. Further, when the home button161ais pressed while applications are executed on the display unit190, the main home screen illustrated inFIG. 1Bmay be displayed on the display unit190. In addition, the home button161amay be used to display recently used applications or a task manager on the display unit190.

The menu button161bprovides a connection menu which can be used on the display unit190. The connection menu includes a widget addition menu, a background changing menu, a search menu, an editing menu and an environment setup menu, for example. The back button161cmay display the screen which was executed just before the currently executed screen or end the most recently used application. The first camera151, an illumination sensor170a, and a proximity sensor170bmay be disposed on edges of the front surface100aof the apparatus100. The second camera152, the flash153, and the speaker163may be disposed on a rear surface100cof the apparatus100. For example, a power/reset button161d, a volume button161b, a terrestrial DMB antenna141afor reception of broadcasting, and one or more microphones162may be disposed on a side surface100bof the apparatus100. The DMB antenna141amay be fixed to the apparatus100or may be formed to be detachable from the apparatus100. Further, the connector165is formed on a lower side surface of the apparatus100. A plurality of electrodes are formed in the connector165, and the connector165may be connected to an external device through a wire. The earphone connecting jack167may be formed on an upper side surface of the apparatus100. An earphone may be inserted into the earphone connecting jack167. The stylus pen168and a hole that stores the stylus pen168may be located at a lower side surface of the apparatus100. The stylus pen168may be inserted into the apparatus100to be stored in the apparatus100, and withdrawn and detached from the apparatus100when being used.

Programs are performed through different computer means and recorded in a computer-readable medium. The computer-readable medium may include a program command, a data file, and a data structure individually or a combination thereof stored in the storage unit175of the apparatus100, and the program command may be temporarily stored in the RAM113included in the controller110. Accordingly, the controller110may control hardware components included in the apparatus100in accordance with program commands, temporarily or continuously store data generated and provide a UI required for executing the methods.

FIG. 2shows a flowchart of a method of operation of a key input method where in step S201first touch inputs are identified in a preset number of areas for key input. In step S202input buttons are generated in the areas where the first touch inputs have been generated, respectively, and in step S203a key input is processed corresponding to second touch inputs generated using the input buttons. When the first touch input by a touch input medium (for example, a user's finger) is generated on a touch screen display in step S201, the terminal initiates an operation of the key input method and determines whether the number of areas where the first touch inputs have been generated correspond to the preset number for the key input. When the first touch inputs corresponding to the preset number for the key input are generated, the terminal identifies coordinates of areas where the first touch inputs have been generated.

For example, in step S201, the terminal identifies that the first touch inputs are generated in areas311a˜b,312a˜b,313a˜b,314a˜b,315a˜b, and316a˜billustrated inFIGS. 3A and 3B, or areas311c˜d,312c˜d,313c˜d,314c˜d,315c˜d,316c˜d,317c˜d, and318c˜dillustrated inFIGS. 3C and 3Dand identifies that the number of areas where the first touch inputs have been generated corresponds to the preset number (for example, six or eight) for the Braille input, so as to detect coordinate values of the areas where the first touch inputs have been generated.

In step S202, the terminal sets input buttons corresponding to the areas where the first touch inputs have been generated such that the user in a specific class can more accurately perform the Braille input. For example, the terminal generates an input button411in an area within a preset radius400based on a point401where the first touch input has been generated as illustrated inFIG. 4A. Further, with respect to a plurality of points401,402,403,404,405, and406where the first touch inputs have been generated, the terminal generates a plurality of input buttons411,412,413,414,415, and416in the same way. The input button411is variably generated on the touch screen display in accordance with the first touch input by the user, and may be implemented by a virtual button such as a UI element or an icon formed by a predetermined program command.

The terminal sets the input buttons411,412,413,414,415, and416to have areas within the predetermined radius400based on the points401,402,403,404,405, and406where the first touch inputs have been generated. Thereby users in a specific class such as blind people can more accurately perform Braille input without separately detecting or recognizing Braille areas preset during a terminal manufacturing step. For example, the area of the input button within the predetermined radius400based on the point401where the first touch input has been generated may have a quadrangular shape or an oval shape having predetermined directivity in consideration of a characteristic of the touch input by the user as well as a circular shape. As illustrated inFIG. 4B, the terminal may divide the touch screen display into the number of areas where the first touch inputs have been generated based on the points401,402,403,404,405, and406where the first touch inputs have been generated, and set the areas including the points401,402,403,404,405, and406as the input buttons421,422,423,424,425, and426, respectively. Further, shapes or positions of the areas of the set input buttons may be changed according to a third touch input or several consecutive touch inputs by the user. As the user continues the touch input, a position of the touch input for a specific input button may be moved, and the terminal may track a position movement of the touch input by using a heuristic algorithm and differently change the shape or position of the area of a set input button.

In step S202, the terminal may set and display the area corresponding to the input button to be distinguishable from a background screen of the terminal such that the user can easily identify the input button. In addition, the terminal may provide proper vibration feedback or voice feedback to the area corresponding to the input button so that the user can identify the input. The terminal generates the input button in an area based on the first touch input generated in the area, thereby a key input can be conveniently and accurately performed without identification of a preset key area by the user. Braille is more likely to be used by users in a specific class (for example, blind people) having relatively poor sight, and thus the user in the specific class may see not all information displayed on the touch screen display. Accordingly, the user in the specific class having relatively poor sight has a difficulty in activating a mode (particularly, Braille input mode) for key input. Switching to a Braille input mode is advantageously achieved through generating the first touch input on the touch screen display using a touch input medium (for example, a user's finger). In response to first touch inputs on the touch screen display, the terminal identifies whether the number of areas where the first touch inputs have been generated corresponds to the preset number for Braille input. As the first touch inputs corresponding to the preset number of the Braille input are generated, the terminal may automatically switch to a mode for Braille input (Braille input mode). Accordingly, the user in the specific class having relatively poor sight may perform the key input more conveniently without complex interaction.

Further, the terminal configures a fixed preset Braille input virtual keyboard having a Braille input button on the touch screen display. A user in the specific class may have difficulty in distinguishing a preset Braille area and the system enables Braille input more conveniently and accurately without separately detecting or recognizing a preset Braille area. The terminal may also preset and store key input based on a preset input method. Further, when a second touch input is generated via an input button, the terminal may process the corresponding key input based on the preset key input in step S203. In steps S201and S202, since the first touch input is made using both hands of the user, six, eight, or ten touch inputs may be simultaneously made. Further, since the input button is generated in the areas where the first touch inputs have been generated, there may be six, eight, or ten input buttons, for example. The system provides six, eight, or ten input buttons that can be differently combined, for example. Further, Braille made for the special purpose of recognizing characters by blind people may advantageously use 6 Braille or 8 Braille.

For example, when the number of input buttons set in steps S201and S202is six, the terminal may determine the preset input method as a6Braille input method. That is, in step S202, the terminal matches the preset input buttons (for example, input buttons411,412,413,414,415, and416) with first to sixth Braille areas511,512,513,514,515, and516(seeFIG. 5) included in 6 Braille input areas. For example, the terminal may perform the setting as illustrated inFIGS. 6A to 6C. Since positions of the input buttons are changed whenever the input buttons are set, the terminal may match the input buttons with the Braille areas in response to relative positions or arrangement types of the set input buttons. Further, the terminal may transmit feedback of whether the set input buttons are matched with the Braille areas or a matching state to the user. For example, the terminal may provide voice guidance of “6 Braille input method has been set”, and make a request for identifying whether the input buttons are correctly matched with the Braille areas through voice guidance of “input “a””. When the user inputs “a” according to the voice guidance but the key input according to existing mapping does not correspond to “a”, the mapping with the input buttons may be set again by rotating the Braille areas. When the terminal randomly maps the input buttons and the Braille areas and then the input of “a” received from the user does not correspond to a first Braille input511but corresponds to a sixth Braille input516, the mapping may be made again by rotating the Braille areas by 180 degrees without changing positions of the input buttons. Further, the mapping between the input buttons and the Braille areas may be automatically modified by the terminal or may be modified by a control by the user. As a second touch input event is generated on the touch screen display by the user, a key input among the first, second, third, fourth, fifth, or sixth Braille area511,512,513,514,515, and516of the 6 key input areas is identified. Further, an area corresponding to a key input of the 6 Braille input method (FIGS. 6A to 6C) is identifies. For example, when the second touch input is generated in the input button411corresponding to the first Braille511, the terminal identifies the input of a letter “a”. When the second touch input is generated in the input button411corresponding to the first Braille511and the input button413corresponding to the third Braille513, the terminal identifies the input of a letter “b”.

In another example, when the number of input buttons set in step S202is eight, the terminal may set the preset input method as an 8 Braille input method. That is, the terminal matches the input buttons set in step S202with first to eighth Braille areas711,712,713,714,715,716,717, and718(seeFIG. 7) included in 8 Braille input areas. A second touch input is identified in an area comprising the first, second, third, fourth, fifth, sixth, seventh, or eighth Braille area711,712,713,714,715,716,717, or718of the8Braille input areas. A point where the second touch input event has been generated enables identification of the corresponding key input (seeFIGS. 8A and 8B). For example, when the second touch input is generated in the input button corresponding to the first Braille711, the terminal identifies the input of a letter “a”. When the second touch input is generated in the input button corresponding to the first Braille711and the input button corresponding to the seventh Braille717, the terminal identifies the input of a letter “A”. The Braille input method may be performed in a plurality of modes, and key inputs may be differently recognized and processed according to each of the modes. For example, the 6 Braille input method may include an English input mode, a number/special character input mode, and a Korean input mode. When the second touch input is generated in the input button411corresponding to the first Braille511, it may be identified and processed that a letter “a” is input in the English input mode and a number “1” is input in the number/special character input mode. The system detects a touch pattern comprising a touch input of one or more predetermined number of input buttons and associates an alphanumeric character with the detected touch pattern using a predetermined map associating different detected patterns with corresponding respective characters.

As described above, the Braille input method including the plurality of modes may be set to be in a default mode (for example, English mode) when being operated, and may switch between the plurality of modes by a gesture input described below. The key input method may include a step for an operation of processing the input gesture. The operation of processing the input gesture may be performed after the switching to the key input mode in step S201and before the end of the key input method, and may be initiated by a preset gesture input to perform the input gesture.

FIG. 9is a flowchart of a method of sequential operation for processing an input gesture of the key input method. The terminal first identifies the generation of an input gesture event having a predetermined pattern in step S901and initiates the operation for processing the input gesture. The input gesture has a predetermined pattern and may be a motion gesture identified using a motion sensor of the terminal or a touch gesture input through the touch screen display included in the terminal In step S901, when it is detected that a sensor value input from the motion sensor is equal to or larger than a preset motion gesture threshold, the terminal determines that a motion gesture event has been generated. Further, when it is detected that movement displacement of a drag gesture input through the touch screen display is equal to or larger than a preset touch gesture threshold, the terminal determines that a touch gesture event has been generated.

In step S902, the terminal determines whether the input gesture corresponds to the predetermined pattern. For example, the predetermined pattern may include motion gestures and touch gestures shown in a Table ofFIG. 10. The motion gesture may include tilting, movement and rotation, for example of the terminal As illustrated inFIG. 11A, the tilting may include gestures in which the terminal moves in a first direction1101such that an upper edge of the terminal is pushed, a second direction1102such that the upper edge of the terminal is pulled, a third direction1103such that a left edge of the terminal is pulled, and a fourth direction1104such that a right edge of the terminal is pulled. As illustrated inFIG. 11B, the movement may include gestures in which the terminal moves in a direction1111(for example, an up direction) opposite to the ground, in a direction1112(for example, a down direction) toward the ground, in a left direction1113, and a right direction1114. Further, as illustrated inFIG. 11C, the rotation may include gestures in which the terminal moves clockwise1121and counterclockwise1122.

The touch gesture may include a single touch drag and a multi touch drag. The single touch drag may include a drag gesture input by a single touch input as illustrated inFIGS. 12A to 12D, and the multi touch drag may include a drag gesture input in which a plurality of touch inputs move in the same direction (seeFIGS. 12E to 12H) and a drag gesture input in which a plurality of touch inputs move in different directions (seeFIGS. 121 and 12J) as illustrated inFIGS. 12E to 12J. When the input gesture corresponds to the gesture shown in the Table ofFIG. 10, the terminal identifies a key input corresponding to the input gesture and performs an operation for processing the corresponding key input in step S903. For example, when a tilting motion gesture is generated by an action of tilting the terminal in the first direction1101, the terminal may process an enter key input. When a tilting motion gesture is generated by an action of tilting the terminal in the second direction1102, the terminal may process an input of changing the input mode (for example, English input mode, number/special character mode, and Korean input mode). Further, when a tilting motion gesture is generated by an action of tilting the terminal in the third direction1103, the terminal may process a space key input. When a tilting motion gesture is generated by an action of tilting the terminal in the fourth direction1104, the terminal may process a backspace key input. In addition, when a motion gesture is generated by a terminal movement, the terminal moves a position of a cursor within a character input window in proportion to a movement direction and a size of movement displacement of the terminal

Meanwhile, when the single touch drag is generated, the terminal moves the cursor in a direction corresponding to the direction of the single touch drag within a character input window, and a movement degree of the cursor is reflected in proportion to a size of movement displacement For example, as illustrated inFIG. 12A, as a single touch1200ais dragged in a left direction1201a, the terminal may move the cursor existing in a character input window1205ain a left direction1202acorresponding to the drag direction, and determine a movement degree1204aof the cursor in proportion to a length1203aby which the drag of the single touch1200ahas been input. Similarly, as illustrated inFIG. 12B, as a single touch1200bis dragged in a right direction1201b, the terminal may move the cursor existing in a character input window1205bin a right direction1202b, and determine a movement degree1204bof the cursor in proportion to a length1203bby which the drag of the single touch1200bhas been input. A single touch drag may be input in different directions and the cursor may be moved in accordance with the single touch drag input in the different directions. For example, as illustrated inFIGS. 12C and 12D, even though single touch drags1200cand1200dare input in diagonal directions, the terminal may move cursors1202cand1202dwithin character input windows1205cand1205din accordance with progress directions1201cand1201dand progress lengths1203cand1203dof the single touch drags in the same way as described above.

Further, when a multi touch drag moving in the same direction is generated, the terminal may delete characters existing in the corresponding areas while moving the cursor in a direction corresponding to the direction of the multi touch drag. For example, as illustrated inFIG. 12E, as a multi touch1200eis dragged in a left direction1201e, the terminal may delete an input character existing in the corresponding area while moving the cursor existing in a character input window1200ein a left direction1202ecorresponding to the drag direction. The terminal may determine a movement degree1204eof the cursor within the input window in proportion to a length1203eby which the drag of the multi touch1200ehas been input. Similarly, as illustrated inFIG. 12F, as a multi touch1200fis dragged in a right direction1201f, the terminal may reflect a movement degree1204fof the cursor in proportion to a length1203fby which the multi touch1200fhas been input and delete an input character existing in the corresponding area while moving the cursor existing in a character input window1200fin a right direction1202f. A cursor may be moved in accordance with the multi touch drag input in different directions. For example, as illustrated inFIGS. 12G and 12H, even though multi touch drags1200gand1200hare input in diagonal directions, the terminal may delete input characters within character input windows1205gand1205hin accordance with progress directions1201gand1201hand progress lengths1203gand1203hof the multi touch drags in the same way as described above.

Further, the terminal may end the key input method with the input of the multi touch drag moving in different directions. For example, as illustrated inFIG. 13A, as a first multi touch input1301ais dragged in a first direction1303aand a second multi touch input1302ais dragged in a second direction1304aopposite to the first direction1303a, the terminal may end the key input method.

Similarly, as illustrated inFIG. 13B, as a first multi touch input130lb is dragged in a first direction1303band a second multi touch input1302bis dragged in a second direction1304bopposite to the first direction1303b, the terminal may end the key input method. Different modifications can be applied. For example, as the first multi touch input1301aand the second multi touch input1302aare input in facing directions toward a center of the touch screen display as illustrated inFIG. 13A, or as the first multi touch input1301band the second multi touch input1302bare input in crossing directions toward a center of the touch screen display as illustrated inFIG. 13B, the terminal may end the key input method.

It is apparent that the key input by the input gesture can be differently modified by those skilled in the art in consideration of user's convenience. It will be appreciated that the exemplary embodiments of the system may be implemented in a form of hardware, software, or a combination of hardware and software. Such software may be stored, for example, in a volatile or non-volatile storage device such as a ROM, a memory such as a RAM, a memory chip, a memory device, or a memory IC, or a recordable optical or magnetic medium such as a CD, a DVD, a magnetic disk, or a magnetic tape, regardless of its ability to be erased or its ability to be re-recorded. It can be also appreciated that the memory included in the mobile terminal is one example of machine-readable devices suitable for storing a program including instructions that are executed by a processor device to thereby implement embodiments of the present invention. Accordingly, the present invention includes a program for a code implementing the apparatus and method described in the appended claims of the specification and a machine (a computer or the like)-readable storage medium for storing the program. Moreover, such a program as described above can be electronically transferred through an arbitrary medium such as a communication signal transferred through cable or wireless connection. Moreover, the above-described mobile terminal can receive the program from a program provision device which is connected thereto in a wired or wireless manner, and store the program.

A program providing apparatus may include a program including instructions to perform a preset contents protection method, a memory for storing information required for the contents protection method, a communication unit for performing wired or wireless communication, and a controller for controlling program transmission. When receiving a request for providing the program from a portable terminal, the program providing apparatus may provide the program to the portable terminal through a wire or wirelessly. Further, even when there is no request for providing the program from the portable terminal, for example, when the portable terminal is located within a particular place, the program providing apparatus may provide the program to the portable terminal through a wire or wirelessly.

The above-described embodiments can be implemented in hardware, firmware or via the execution of software or computer code that can be stored in a recording medium such as a CD ROM, a Digital Versatile Disc (DVD), a magnetic tape, a RAM, a floppy disk, a hard disk, or a magneto-optical disk or computer code downloaded over a network originally stored on a remote recording medium or a non-transitory machine readable medium and to be stored on a local recording medium, so that the methods described herein can be rendered via such software that is stored on the recording medium using a general purpose computer, or a special processor or in programmable or dedicated hardware, such as an ASIC or FPGA. As would be understood in the art, the computer, the processor, microprocessor controller or the programmable hardware include memory components, e.g., RAM, ROM, Flash, etc. that may store or receive software or computer code that when accessed and executed by the computer, processor or hardware implement the processing methods described herein. In addition, it would be recognized that when a general purpose computer accesses code for implementing the processing shown herein, the execution of the code transforms the general purpose computer into a special purpose computer for executing the processing shown herein. The functions and process steps herein may be performed automatically or wholly or partially in response to user command. An activity (including a step) performed automatically is performed in response to executable instruction or device operation without user direct initiation of the activity. No claim element herein is to be construed under the provisions of 35 U.S.C. 112, sixth paragraph, unless the element is expressly recited using the phrase “means for.”