WO2024258185A1 - 어플리케이션의 실행 화면 내에 데이터를 삽입하는 전자 장치 및 방법과, 기록매체 - Google Patents

어플리케이션의 실행 화면 내에 데이터를 삽입하는 전자 장치 및 방법과, 기록매체 Download PDF

Info

Publication number
WO2024258185A1
WO2024258185A1 PCT/KR2024/008072 KR2024008072W WO2024258185A1 WO 2024258185 A1 WO2024258185 A1 WO 2024258185A1 KR 2024008072 W KR2024008072 W KR 2024008072W WO 2024258185 A1 WO2024258185 A1 WO 2024258185A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
application
input
electronic device
execution screen
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/KR2024/008072
Other languages
English (en)
French (fr)
Inventor
소상훈
김현호
김필준
박영하
정혜순
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from KR1020230094929A external-priority patent/KR20240175651A/ko
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Priority to CN202480039348.3A priority Critical patent/CN121693717A/zh
Priority to EP24737665.0A priority patent/EP4498218A4/en
Publication of WO2024258185A1 publication Critical patent/WO2024258185A1/ko
Priority to US19/395,705 priority patent/US20260072585A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/04817Interaction 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 using icons
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
    • G06F3/0486Drag-and-drop
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04883Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures for inputting data by handwriting, e.g. gesture or text
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/0487Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
    • G06F3/0488Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
    • G06F3/04886Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures by partitioning the display area of the touch-screen or the surface of the digitising tablet into independently controllable areas, e.g. virtual keyboards or menus
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces

Definitions

  • the present disclosure relates to an electronic device and method for inserting data into an execution screen of an application, and to a recording medium.
  • one embodiment of the present disclosure may provide a method for an electronic device to input an image into an execution screen of an application, including: an operation of receiving at least one user input for inputting an image into an execution screen of the application; an operation of identifying a first image input method corresponding to the at least one user input; an operation of identifying the image and an input location of the image on the execution screen based on the at least one user input; and an operation of identifying whether the application supports the first image input method; an operation of identifying a second image input method supported by the application when the application does not support the first image input method; an operation of generating code of a framework for inputting the image into the execution screen of the application using the second image input method based on the image and the input location; and an operation of providing the generated code of the framework to the application.
  • one embodiment of the present disclosure may provide an electronic device for inputting an image into an execution screen of an application, including: a display; a memory for storing commands; and at least one processor operatively connected to the display and the memory and executing the commands, wherein the at least one processor, by executing the commands, receives at least one user input for inputting an image into an execution screen of the application, identifies a first image input method corresponding to the at least one user input, identifies the image and an input location of the image on the execution screen based on the at least one user input, identifies whether the application supports the first image input method, and if the application does not support the first image input method, identifies a second image input method supported by the application, and generates code of a framework for inputting the image into the execution screen of the application using the second image input method based on the image and the input location, and provides the generated code of the framework to the application.
  • one embodiment of the present disclosure can provide a computer-readable recording medium having recorded thereon a program for executing a method for inputting an image into an execution screen of an application, the method including: receiving at least one user input for inputting an image into an execution screen of the application; identifying a first image input method corresponding to the at least one user input; identifying the image and an input location of the image on the execution screen based on the at least one user input; and identifying whether the application supports the first image input method; identifying a second image input method supported by the application when the application does not support the first image input method; generating code of a framework for inputting the image into the execution screen of the application using the second image input method based on the image and the input location; and providing the generated code of the framework to the application.
  • one embodiment of the present disclosure may provide a method for an electronic device to input an image into an execution screen of an application, including: receiving at least one user input for inputting an image into an execution screen of an application; identifying a first image input method corresponding to the at least one user input; identifying whether the application supports the first image input method; identifying a second image input method supported by the application when the application does not support the first image input method; and inputting the image into the application through the second image input method using code of a framework for inputting the image into the execution screen of the application through the second image input method.
  • FIG. 2 is a flowchart of a method for inputting an image into an execution screen of an application according to one embodiment of the present disclosure.
  • FIG. 3 is a flowchart of a method for an electronic device to input an image into an application based on a user input of an image via a keyboard according to one embodiment of the present disclosure.
  • FIG. 4a is a drawing showing an example of an execution screen of an application according to one embodiment of the present disclosure.
  • FIG. 4b is a drawing showing an example of displaying an execution screen of an application and an execution screen of a keyboard application according to one embodiment of the present disclosure.
  • FIG. 4c is a diagram showing an example in which an image list is displayed within an execution screen of a keyboard application according to one embodiment of the present disclosure, and an image selected from the image list is displayed within an input field.
  • FIG. 4d is a drawing showing an example of an image being input into an execution screen of an application according to one embodiment of the present disclosure.
  • FIG. 5 is a flowchart of a method for an electronic device to input an image into an application based on a user input of dragging and dropping an image according to one embodiment of the present disclosure.
  • FIG. 6 is a diagram showing an example of an image being input into an application when a user input of drag and drop is received according to one embodiment of the present disclosure.
  • FIG. 7 is a flowchart of a method for an electronic device to input an image into an application based on a user input for pasting an image according to one embodiment of the present disclosure.
  • FIG. 8 is a diagram illustrating an example of an image being input into an application when a user input for pasting an image is received according to one embodiment of the present disclosure.
  • FIG. 9 is a block diagram of an electronic device within a network environment according to various embodiments.
  • FIG. 10 is a diagram illustrating a software stack of an electronic device according to one embodiment of the present disclosure.
  • An embodiment of the present disclosure may be represented by functional block configurations and various processing steps. Some or all of these functional blocks may be implemented by various numbers of hardware and/or software configurations that execute specific functions.
  • the functional blocks of the present disclosure may be implemented by one or more microprocessors, or by circuit configurations for a given function.
  • the functional blocks of the present disclosure may be implemented by various programming or scripting languages.
  • the functional blocks may be implemented by an algorithm that executes on one or more processors.
  • the present disclosure may employ conventional techniques for electronic environment settings, signal processing, and/or data processing, etc. Terms such as “mechanism,” “element,” “means,” and “configuration” may be used broadly and are not limited to mechanical and physical configurations.
  • connecting lines or connecting members between components depicted in the drawings are only illustrative of functional connections and/or physical or circuit connections. In an actual device, connections between components may be represented by various functional connections, physical connections, or circuit connections that may be replaced or added.
  • FIG. 1 is a diagram illustrating an overview of an electronic device inputting an image into an execution screen of an application according to one embodiment of the present disclosure.
  • an electronic device (100) may, when a user input for inputting an image into an execution screen of an application (e.g., application (946) of FIG. 9) is received and the application does not support an image input method corresponding to the user input, input the image into the execution screen of the application through another image input method.
  • an application e.g., application (946) of FIG. 9
  • the application may display an image on the execution screen of the application according to the second image input method based on the provided code. Additionally, for example, to convert an image input method (e.g., from a first image input method to a second image input method), the application can be enabled to display an image in the second image input method on the application's execution screen by obtaining (e.g., editing, generating, adding) source code from an area other than the framework in the software stack.
  • obtaining e.g., editing, generating, adding
  • the electronic device (100) may be, but is not limited to, a smart phone, a tablet PC, a PC, a smart TV, a mobile phone, a PDA (personal digital assistant), a laptop, a media player, a micro server, a GPS (global positioning system) device, an e-book reader, a digital broadcasting terminal, a navigation device, a kiosk, an MP3 player, a digital camera, a home appliance, and other mobile or non-mobile computing devices.
  • the electronic device (100) may be a wearable device such as a watch or glasses having a display.
  • the electronic device (100) is not limited thereto, and the electronic device (100) may include all types of devices capable of displaying an execution screen of an application through a display and receiving user input.
  • an image may be any of various types of images, such as still images, moving images, GIF images, images with sound, emoticons, emojis, etc.
  • an embodiment of the present disclosure may be applied even when inputting data files other than images.
  • the operations may be performed sequentially, but are not necessarily performed sequentially.
  • the order of the operations may be changed, and at least two operations may be performed in parallel.
  • an electronic device may input an image within the execution screen of an application in response to a user input attempting to input an image using an image input method not supported by the application.
  • an electronic device (100) may receive a user input for inputting an image into an execution screen of an application.
  • the user input for inputting an image into an execution screen of the application may be a user input for inserting and displaying an image into an execution screen of the application.
  • the electronic device (100) may receive one or more user inputs for inputting an image into an execution screen of the application.
  • one or more user inputs for inputting an image into the execution screen may be user input via a first image input method.
  • the first image input method may include at least one of a method for inputting an image selected from a list of images displayed via a keyboard, a method for inputting an image by drag & drop, or a method for inputting an image by copy & paste, for example.
  • a method of inputting an image selected from a list of images displayed via a keyboard may include an input method of displaying an image via a keyboard application and the user selecting the displayed image, and may include touch input via the user's finger or a stylus pen.
  • the first image input method is not limited thereto, and may be various image input methods for inputting an image to the display.
  • the first image input method may be an input method according to a user input for an image displayed in various ways on the display of the electronic device (100), and may include, for example, a drag and drop for an image, a touch selection for an image, a copy and paste input for an image, and the like.
  • the user input may be a selection input for an image displayed within the execution screen of the application as well as a keyboard application.
  • the user input may include user input for selecting an input field of the application, user input for calling up the image list from a keyboard application that is activated upon selection of the input field, and user input for selecting an image from the image list.
  • the user input may include a user input of selecting an input field of the application, a user input of calling an image list from a keyboard application that is activated according to the selection of the input field, and a user input of selecting an image from the image list and dragging and dropping the selected image onto the execution screen of the application.
  • the user input may include a user input of selecting an image from the execution screen of another application and dragging and dropping the selected image onto the execution screen (e.g., an input field) of the application.
  • the user input may include at least one of a user input of selecting (e.g., long-touching) a specific location on the execution screen of the application (e.g., an input field on the execution screen of the application), a user input of selecting a paste item from a menu displayed according to the selection of the specific location, a user input of selecting a clipboard item from a menu displayed according to the selection of the specific location, or a user input of selecting an image in the clipboard.
  • the image to be pasted may be an image copied in various situations.
  • the copied image may be an image stored in the memory (clipboard) through a user input of long-pressing an image on the execution screen of the specific application or other input, and an image displayed on the application and another application (e.g., an Internet browser) may be copied.
  • another application e.g., an Internet browser
  • the electronic device (100) can identify an image and/or an input location of an image.
  • the electronic device (100) can identify an image selected by a user input and/or a portion of an execution screen of an application on which the selected image is to be displayed.
  • the electronic device (100) can identify an image selected by the user input from the image list of the keyboard application as an image to be input by the application.
  • the electronic device (100) can identify the image selected by the user input in operation 200 as an image to be displayed on the execution screen of the application.
  • the electronic device (100) can identify an input field of the application, or a part of the execution screen of the application where an input value through the input field is displayed (e.g., an area other than the input field on the execution screen of the application) as an input location of the image.
  • the input area of the image can be one of the distinct areas within the GUI that constitutes the execution screen of the application.
  • the input area of the image can include an input field area, a data display area, etc. within the GUI of the execution screen of the application.
  • the electronic device (100) can identify the dragged & dropped image as an image to be input into the application.
  • the electronic device (100) can identify a part of an execution screen of the application including a location where the image is dropped as an input location of the image.
  • the electronic device (100) can identify a GUI area including a dropped location (e.g., an input field area of the application, a data display area, etc.) as an input location of the image, for example, based on coordinate values of the location where the image is dropped.
  • the electronic device (100) can identify the copied image as an image to be input into the application. In addition, the electronic device (100) can identify the location where the image is to be pasted as the input location of the image.
  • the electronic device (100) can determine whether the application supports the first image input method.
  • the electronic device (100) can determine whether the application supports the first image input method by identifying at least one image input method supported by the application and determining whether at least one identified image input method is the first image input method corresponding to the user input.
  • an application may support only some of the following methods: inputting an image selected from a list of images displayed via a keyboard; inputting an image by drag &drop; and inputting an image by copy & paste. Accordingly, a first image input method corresponding to a user input may not be included in the input methods supported by the application.
  • the electronic device (100) may determine whether the application has a keyboard handler, a graphic handler for drag & drop, and/or a graphic handler for copy & paste, but is not limited thereto.
  • the electronic device (100) may determine an image input method supported by the application through various methods other than the method of determining whether the application has a handler.
  • the electronic device (100) may identify a second image input method supported by the application in operation 240. According to one embodiment, the electronic device (100) may check whether there is a bypass path for the first image input method, and if there is a bypass path, select an input method of the bypass path (e.g., the second image input method). According to one embodiment, even before receiving a user input, the electronic device (100) may perform an operation of identifying an image input method supported by the application in advance when executing the application.
  • the electronic device (100) can identify that the application supports a method of inputting an image by drag & drop, and/or a method of inputting an image by copy & paste.
  • the electronic device (100) can identify that the application supports a method of inputting an image selected from a list of images displayed via a keyboard and/or a method of inputting an image by copy & paste.
  • the electronic device (100) can identify that the application supports a method of inputting an image selected from a list of images displayed via a keyboard and/or a method of inputting an image by drag & drop.
  • the electronic device (100) may obtain a code of a framework for inputting an image using a second image input method.
  • the electronic device (100) may obtain a code of a framework for inputting an image using the second image input method based on link information of an image to be input into an execution screen of an application and an input location within the execution screen of the application where the image is to be input.
  • the link information of the image may include, for example, URI (uniform resource identifier) information of the image.
  • the link information of the image may include, for example, a location of an image stored in the electronic device, a location of an image stored in a clipboard, a web address of the image, and the like.
  • the framework may identify whether the application does not support an image handler according to a specified input method at the framework level, and code for connecting the specified input method to another input method may already be generated at the framework level. Accordingly, the electronic device (100) may select a code of a framework that has already been generated, and may obtain a code of a framework for inputting an image using a second image input method so that the image (e.g., link information of the image) input using the first image input method is included in the selected code and transmitted.
  • the electronic device (100) may select a code of a framework that has already been generated, and may obtain a code of a framework for inputting an image using a second image input method so that the image (e.g., link information of the image) input using the first image input method is included in the selected code and transmitted.
  • the electronic device (100) can obtain a code of a framework for dragging and dropping an image.
  • the electronic device (100) can obtain a code for registering a DragListener for a portion of an area where an image is to be input within the execution screen of the application.
  • the code of a framework for dragging and dropping images can be obtained by editing at least part of the code in Table 1 below.
  • the code below (e.g. pseudo code) can be used to obtain the code of the framework for dragging and dropping an image.
  • a second image input method supported by an application and different from the first image input method is a method of inputting an image by drag and drop
  • the electronic device (100) can convert a user's input into a user input of the drag and drop method, which is the second image input method. For example, if a user input occurs to select an image from a list of images displayed through a keyboard, which is the first image input method, the image can be input by the drag and drop method supported by the application.
  • the electronic device (100) can obtain a code of a framework for copying and pasting an image.
  • the electronic device (100) can obtain a code of a framework for overriding an image pasting operation for a portion of an area where an image is to be input within an execution screen of the application.
  • the code of a framework for copying and pasting images can be obtained by editing at least part of the code in Table 2 below.
  • code below e.g. pseudo code
  • the code below can be used to obtain the code of the framework for copying and pasting images, for example.
  • the electronic device (100) can convert a user's input into a user input by the copy and paste method, which is the second image input method. For example, if a user input occurs to select an image from a list of images displayed through a keyboard, which is the first image input method, the image can be input by the copy and paste method supported by the application.
  • a second image input method supported by an application and different from the first image input method is a method of inputting an image selected from a list of images displayed via a keyboard
  • the electronic device (100) can obtain a code of a framework for inputting an image selected from a list of images displayed via the keyboard.
  • the electronic device (100) can obtain a code of a framework for overriding InputConnection in order to input an image into a portion of an execution screen of the application where an image is to be input.
  • the code of a framework for inputting an image via a keyboard can be obtained.
  • the code below (e.g. pseudo code) can be used to obtain the code of a framework for inputting an image via a keyboard.
  • a second image input method supported by an application and different from the first image input method is a method of inputting an image selected from an image list displayed via a keyboard
  • the electronic device (100) can convert a user input into a user input by the input method, such as an image selected from an image list displayed via the keyboard, which is the second image input method.
  • the image can be input by inputting an image selected from an image list displayed via the keyboard supported by the application.
  • the electronic device (100) can display an image on the execution screen of the application through the second image input method.
  • the electronic device (100) can display the image at a specific location on the execution screen of the application through the second image input method by using the code of the framework obtained in operation 250.
  • the code of the framework obtained in operation 250 can be transmitted to the application, and the application can display the image on the execution screen of the application through the second image input method based on the transmitted code of the framework.
  • the electronic device (100) can check whether there is a bypass route of the first image input method, and if there is a bypass route, select an input method of the bypass route (e.g., the second image input method), and display the image through the selected second image input method.
  • operations 230, 240, 250, and 260 have been described above as separate operations, they are not limited thereto. At least two or more of actions 230, 240, 250 and 260 may be performed as one action by the electronic device (100).
  • the electronic device (100) can input an image into the execution screen of the application according to the first image input method.
  • the electronic device (100) may input a data file other than an image into the execution screen of the application.
  • the image input method may be a data input method, and the code of the framework for inputting the data may be obtained.
  • data entry operations based on user input can be performed without modifying the code of the application by modifying or selecting the code of the framework for another data input method, thereby improving the user experience.
  • FIG. 3 is a flowchart of a method for an electronic device to input an image into an application based on a user input of an image via a keyboard according to one embodiment of the present disclosure.
  • the operations may be performed sequentially, but are not necessarily performed sequentially.
  • the order of the operations may be changed, and at least two operations may be performed in parallel.
  • operations 300 to 370 may be understood to be performed in a processor (e.g., processor (920) of FIG. 9) of an electronic device (e.g., electronic device (100) of FIG. 1 and/or electronic device (901) of FIG. 9).
  • a processor e.g., processor (920) of FIG. 9
  • an electronic device e.g., electronic device (100) of FIG. 1 and/or electronic device (901) of FIG. 9).
  • the first image input method may be a method of inputting an image selected from a list of images displayed via a keyboard.
  • an electronic device (100) may receive a user input for selecting an input field of an application.
  • the input field of the application may be at least a part of a graphical user interface (GUI) for receiving user input for the application.
  • GUI graphical user interface
  • the input field may be, for example, a field for receiving a user's keyboard input by being linked to a keyboard application.
  • a method of inputting an image selected from a list of images displayed via a keyboard may include an input method of displaying an image via a keyboard application and the user selecting the displayed image, and may include touch input via the user's finger or a stylus pen.
  • the first image input method is not limited thereto, and may be various image input methods for inputting an image to the display.
  • the first image input method may be an input method according to a user input for an image displayed in various ways on the display of the electronic device (100), and for example, the user input may be a selection input for an image displayed within the execution screen of the application as well as a keyboard application.
  • the electronic device (100) when a user input for selecting an input field is received, can identify whether some areas near the input field of the application support a method of inputting an image by drag and drop. For example, the electronic device (100) can search for some areas near the input field of the application that support a DragListener operation. In addition, the electronic device (100) can, for example, store a Listener of the searched areas for the system for an image input operation according to the drag and drop input method. When the user selects the input field, the electronic device (9100) can improve the response speed of the electronic device (100) to the user's image input by identifying and storing the Listener of the draggable View in advance.
  • the electronic device (100) may display an execution screen of a keyboard application. As an input field of the application is selected, the electronic device (100) may display the execution screen of the keyboard application on the screen of the electronic device (100).
  • the electronic device (100) can identify an image to be input and an input location of the image according to a user input for the keyboard application.
  • the electronic device (100) can identify an image to be input and an input location of the image within the execution screen of the application according to a user input for the keyboard application.
  • the electronic device (100) can receive a user input for selecting an object for displaying a list of images within the execution screen of the keyboard application, and can receive a user input for selecting an image to be input into the application from the displayed image list.
  • the electronic device (100) can identify an image selected from the image list as an image to be input into the application.
  • the electronic device (100) can identify a part of the execution screen of the application, where an input field and/or a value entered into the input field is to be input, as an input location of the image.
  • the input area of the image can be one of the distinct areas within the GUI that constitutes the execution screen of the application.
  • the input area of an image may include an input field area, a data display area, etc. within the GUI of the application's execution screen.
  • the electronic device (100) can determine whether the application supports an image input method via a keyboard. For example, the electronic device (100) can determine whether the application includes a handler for a keyboard. However, the present invention is not limited thereto, and the electronic device (100) can determine the image input method supported by the application through various methods other than the method of determining whether the application has a handler.
  • the electronic device (100) may identify some areas that support the second image input method within the execution screen of the application. For example, the electronic device (100) may identify some areas that support a method of inputting an image via drag and drop within the execution screen of the application. According to one embodiment, even before receiving a user input, the electronic device (100) may perform an operation of identifying an image input method supported by the application in advance when executing the application.
  • the electronic device (100) can identify whether some areas near an input field of an application support a method of inputting an image by drag and drop. For example, in operation 340, the electronic device (100) can search in advance some areas near an input field of an application that support a DragListener operation. In addition, the electronic device (100) can, for example, store a Listener of the searched some areas in advance for the system for an image input operation according to the drag and drop input method. Accordingly, the electronic device (100) can more quickly identify some areas that support a method of inputting an image by drag and drop, and can improve the response speed of the electronic device (100) to a user's image input.
  • the electronic device (100) may obtain a code of a framework for inputting an image using the second image input method.
  • the framework may identify whether an image handler according to an input method specified for each application is not supported at the framework level, and a code for connecting the specified input method to another input method may already be generated at the framework level. Accordingly, the electronic device (100) may select a code of a framework that has already been generated, and may obtain a code of a framework for inputting an image using the second image input method so that the selected code may contain and transmit an image input using the first image input method.
  • the electronic device (100) may obtain a code of a framework level for the second image input method, for example, in a software stack such as FIG.
  • the framework may provide functions and architectures necessary for the operation of the application.
  • a View System (11) within the framework (10) of the software stack of FIG. 10 may provide multiple views to the application.
  • the multiple views can be UI components such as icons, texts, images, etc.
  • the View System (11) can provide functions for changing the image input method.
  • the View / TextView of the View System (11) can provide a method for changing the image input event of the corresponding view to an input event of another image input method.
  • the electronic device (100) can obtain a code of a framework for dragging and dropping an image.
  • the electronic device (100) can obtain a code for a graphic handler of drag and drop.
  • the electronic device (100) can obtain a code for registering a DragListener for a portion of an area in which an image is to be input within the execution screen of the application.
  • an image and an input location of the image identified from a user input inputted by a keyboard input method can be used as the source data and destination of the DragListener, and the application can input an image into the execution screen of the application by dragging and dropping by performing a drop action (ACTION_DROP) based on the source data and destination values of the DragListener.
  • ACTION_DROP drop action
  • the performance of at least one action among other types of actions can be omitted.
  • the electronic device (100) can obtain a code of a framework for copying and pasting an image.
  • the electronic device (100) can obtain a code for a graphic handler for copying and pasting.
  • the electronic device (100) can obtain a code of a framework for overriding an image pasting operation for a portion of an image to be input within an execution screen of an application.
  • the application can also be enabled to display an image in the second image input method on the application's execution screen by obtaining (e.g., editing, generating, adding) source code from an area other than the framework in the software stack.
  • the electronic device (100) may provide the code of the framework to the application. Based on the code of the provided framework, the application may display an image at a specific location within the execution screen of the application through the second image input method.
  • the electronic device (100) can input an image into the execution screen of the application in operation 370.
  • the electronic device (100) may input a data file other than an image into the execution screen of the application.
  • the image input method may be a data input method, and a code of a framework for inputting data may be generated.
  • the data entry operation based on user input can be performed without modifying the code of the application by modifying or selecting the code of the framework for another data input method, thereby improving the user experience.
  • FIG. 4a is a drawing showing an example of an execution screen of an application according to one embodiment of the present disclosure.
  • the execution screen of the application may include an input field (40), and the electronic device (100) may receive a user input for selecting the input field (40).
  • the application may be a messenger application, and the electronic device (100) may receive a user input for selecting an input field (40) for entering text into the messenger application.
  • the present invention is not limited thereto, and the application may be various applications that allow image input via a keyboard, as well as a messenger application.
  • the application may be a mail application, a word application, a note application, a game application, a chat application, but is not limited thereto. Additional examples such as these)
  • FIG. 4b is a drawing showing an example of displaying an execution screen of an application and an execution screen of a keyboard application according to one embodiment of the present disclosure.
  • the electronic device (100) can display an execution screen (41) of a keyboard application on the screen of the electronic device (100).
  • the keyboard application can be a keyboard application pre-installed in the terminal, such as Google Keyboard, Samsung Keyboard, etc., or a keyboard application downloaded and installed through an application store.
  • an object (42) for inputting an image through the keyboard application can be included in the execution screen (41) of the keyboard application.
  • the electronic device (100) can receive a user input for selecting an object (42) in the execution screen (41) of the keyboard application.
  • FIG. 4c is a diagram showing an example in which an image list is displayed within an execution screen of a keyboard application according to one embodiment of the present disclosure, and an image selected from the image list is displayed within an input field.
  • the electronic device (100) can identify that the image input method via the keyboard is not supported by the application.
  • the identifying operation can be performed when the input field is selected, and can be performed, for example, when receiving a user input for selecting an object (42) within the execution screen (41) of the keyboard application of FIG. 4B, or when receiving a user input for selecting an image (45).
  • the electronic device (100) can search for some area (44) within the execution screen of the application that supports the input method of drag and drop.
  • an image list (43) may be displayed within the execution screen of the keyboard application.
  • the electronic device (100) may receive a user input for selecting an image (45) from among the images within the image list (43).
  • the image may include various types of images, such as still images, moving images, GIF images, images with sound, emoticons, and emojis.
  • the images in the image list (43) cannot be displayed.
  • the images in the image list (43) are not displayed, and the area where the images are to be displayed may be displayed with, for example, a hatching or gray color.
  • the images can be input by bypassing them via another input method supported by the application, and thus, as in FIG. 4c, the images in the image list (43) can be displayed as if the application is an application that supports the image input method via the keyboard.
  • the image (45) when the image (45) is selected in the identification number 7 of FIG. 4c, the image (45) can be input and displayed in the input field (49).
  • the electronic device (100) can obtain link information of the image (45) and identify the location on the screen of the input field (49) that supports drag and drop. Based on the link information of the image (45) and the location on the screen of the input field (49), the electronic device (100) can obtain a code of a framework for image input of drag and drop.
  • the electronic device (100) can provide the obtained code to the application, and the application can cause the image (45) to be displayed in the input field (49) based on the received code.
  • the image (45) displayed within the input field (49) may be displayed in a smaller size than the image (45) displayed within the image list (43).
  • FIG. 4d is a drawing showing an example of an image being input into an execution screen of an application according to one embodiment of the present disclosure.
  • the electronic device (100) can obtain link information of the image (45) and identify the location on the screen of a portion (44) that supports drag and drop.
  • the electronic device (100) can obtain a code of a framework for image input of drag and drop based on the link information of the image (45) and the location on the screen of the portion (44).
  • the electronic device (100) can provide the generated code to the application, and the application can cause the image (45) to be displayed in the portion (44) based on the received code.
  • the image (45) when an image (45) is selected from the image list (43) at identification number 7 in Fig. 4c, the image (45) may be displayed in an input field (49) as in identification number 8 in Fig. 4c and ultimately input into the application through additional input from the user (e.g., user input selecting a transmit button), or the image may be directly input into a certain area (44) as in Fig. 4d.
  • FIG. 5 is a flowchart of a method for an electronic device to input an image into an application based on a user input of dragging and dropping an image according to one embodiment of the present disclosure.
  • the operations may be performed sequentially, but are not necessarily performed sequentially.
  • the order of the operations may be changed, and at least two operations may be performed in parallel.
  • operations 500 to 570 may be understood to be performed in a processor (e.g., processor (920) of FIG. 9) of an electronic device (e.g., electronic device (100) of FIG. 1 and/or electronic device (901) of FIG. 9).
  • a processor e.g., processor (920) of FIG. 9
  • an electronic device e.g., electronic device (100) of FIG. 1 and/or electronic device (901) of FIG. 9).
  • the first image input method may be a method of inputting an image according to a user input of dragging and dropping an image.
  • an electronic device (100) can display an execution screen of a first application and an execution screen of a second application together.
  • the electronic device (100) can display an image within the execution screen of the second application, and the electronic device (100) can display the execution screen of the first application and the execution screen of the second application together on the screen of the electronic device (100) so that an image within the execution screen of the second application can be dragged and dropped onto the execution screen of the first application.
  • the electronic device (100) may receive a user input for dragging and dropping an image within an execution screen of a second application to an execution screen of a first application.
  • the electronic device (100) may receive a user input for selecting an image within an execution screen of the second application, dragging the selected image to an execution screen of the first application, and dropping the dragged image to the execution screen of the first application.
  • the electronic device (100) can identify an image to be input into the execution screen of the first application and an input location of the user input based on a user input of dragging and dropping.
  • the electronic device (100) can identify an image that is a target of the user input of dragging and dropping.
  • the electronic device (100) can identify an input location where the image is to be input within the execution screen of the first application based on a location where the dragged image is dropped.
  • the input location where the image is to be input may be a portion of the execution screen of the first application.
  • the electronic device (100) may determine whether the first application supports an image input method through a drag-and-drop user input. For example, the electronic device (100) may determine whether the first application has a graphic handler for drag-and-drop.
  • the electronic device (100) can identify some area within the execution screen of the first application that supports the second image input method.
  • an electronic device (100) may obtain code of a framework for inputting an image using a second image input method.
  • the framework can identify whether the application does not support an image handler according to a specified input method at the framework level, and code for connecting the specified input method to another input method may already be generated at the framework level. Accordingly, the electronic device (100) can select a code of a framework that has already been generated, and obtain a code of a framework for inputting an image using a second image input method so that the image input using the first image input method is contained in the selected code and transmitted.
  • the electronic device (100) can obtain a code of a framework for copying and pasting an image.
  • the electronic device (100) can obtain a code for a graphic handler for copy and paste.
  • the electronic device (100) can obtain a code of a framework for overriding an image pasting operation for a portion of an image to be input within an execution screen of the first application.
  • the electronic device (100) may generate a code of a framework for inputting an image selected from a list of images displayed via the keyboard. For example, the electronic device (100) may generate a code for a keyboard handler for image input via the keyboard. For example, the electronic device (100) may generate a code of a framework for overriding InputConnection for inputting an image into a portion of an area where an image is to be input within the execution screen of the first application.
  • the electronic device (100) may provide the code of the framework to the first application. Based on the code of the provided framework, the first application may display an image at a specific location within the execution screen of the first application through the second image input method.
  • the electronic device (100) can input the image into the execution screen of the first application in operation 570.
  • the electronic device (100) may input a data file other than an image into the execution screen of the application.
  • the image input method may be a data input method, and a code of a framework for inputting data may be generated.
  • the data entry operation based on user input can be performed without modifying the code of the application by modifying or generating the code of the framework for another data entry method, thereby improving the user experience.
  • FIG. 6 is a diagram showing an example of an image being input into an application when a user input of drag and drop is received according to one embodiment of the present disclosure.
  • an execution screen (60) of a first application and an execution screen (62) of a second application may be displayed on the screen of the electronic device (100).
  • the first application may be an application for sending a message
  • the second application may be an application for Internet browsing.
  • the electronic device (100) can display the execution screen (60) of the first application and the execution screen (62) of the second application together through a multi-window.
  • the electronic device (100) can receive a user input for dragging and dropping an image (63) in the execution screen (62) of the second application to an input field (61) in the execution screen (60) of the first application.
  • the electronic device (100) can identify in advance whether it supports the image input method of dragging and dropping before receiving the user input for dragging and dropping, but is not limited thereto.
  • the electronic device (100) can obtain link information of the image (63) as the image (63) is dropped into the input field (61) in the execution screen (60) of the first application, and identify the location of the input field (61) on the screen as a part of the execution screen (60) of the first application that supports the image input method via the keyboard.
  • the electronic device (100) can generate a code of a framework for image input in the image input method via the keyboard based on the link information of the image (63) and the input field (61).
  • the electronic device (100) can provide the generated code to the first application, and the first application can cause the image (63) to be displayed in the input field (61) based on the received code. In this way, the present disclosure can improve the user experience by enabling image pasting by changing the intermediate operation of the framework without modifying the code of the application.
  • the image (63) displayed within the input field (61) may be displayed in a smaller size than the image (63) displayed within the execution screen (62) of the second application.
  • FIG. 7 is a flowchart of a method for an electronic device to input an image into an application based on a user input for pasting an image according to one embodiment of the present disclosure.
  • the operations may be performed sequentially, but are not necessarily performed sequentially.
  • the order of the operations may be changed, and at least two operations may be performed in parallel.
  • operations 700 to 760 may be understood to be performed in a processor (e.g., processor (920) of FIG. 9) of an electronic device (e.g., electronic device (100) of FIG. 1 and/or electronic device (901) of FIG. 9).
  • a processor e.g., processor (920) of FIG. 9
  • an electronic device e.g., electronic device (100) of FIG. 1 and/or electronic device (901) of FIG. 9.
  • the first image input method may be a method of inputting an image according to a user input of pasting an image.
  • the electronic device (100) may receive a user input for pasting an image on an execution screen of an application. For example, if a user input for selecting a location to input an image (e.g., long touch, right click) within the execution screen of the application is received, the electronic device (100) may display a menu including an object for pasting. For example, even if the application does not support a function for pasting an image, it may support a function for pasting text, and in this case, based on a user input (e.g., long touch, right click) to the execution screen of the application, the electronic device (100) may display a menu including an object for pasting.
  • a user input for selecting a location to input an image e.g., long touch, right click
  • the electronic device (100) may display a menu including an object for pasting.
  • the electronic device (100) may receive a user input for selecting an object for pasting and display a list of images stored in a clipboard.
  • the electronic device (100) may receive a user input for selecting an image from the clipboard.
  • the images stored in the clipboard may be images stored in the clipboard by at least one other application, based on user input to at least one other application.
  • the electronic device (100) can identify an image to be input and an input location based on a user input.
  • the electronic device (100) can identify an image selected from a list of images stored in a clipboard.
  • the input location of the image can be identified based on a user input for selecting a location to input an image within an execution screen of an application (e.g., long touch, right click).
  • the electronic device (100) may determine whether the application supports an image input method via pasting of an image. For example, the electronic device (100) may determine whether the application including the input location of the image has a graphic handler for pasting.
  • the electronic device (100) can identify some area within the execution screen of the application that supports the second image input method.
  • an electronic device (100) may generate code of a framework for inputting an image using a second image input method.
  • the electronic device (100) can generate a code of a framework for dragging and dropping an image.
  • the electronic device (100) can generate a code for a graphic handler of drag and drop.
  • the electronic device (100) can generate a code for registering a DragListener for a certain area where an image is to be input within the execution screen of the application.
  • the electronic device (100) may generate a code of a framework for inputting an image selected from a list of images displayed via the keyboard. For example, the electronic device (100) may generate a code for a keyboard handler for image input via the keyboard. For example, the electronic device (100) may generate a code of a framework for overriding InputConnection for inputting an image into a portion of an application's execution screen where an image is to be input.
  • the electronic device (100) may provide a code of a framework to an application. Based on the code of the provided framework, the application may display an image at a specific location within the execution screen of the application through a second image input method.
  • the electronic device (100) can input the image into the execution screen of the application in operation 760.
  • the electronic device (100) may input a data file other than an image into the execution screen of the application.
  • the image input method may be a data input method, and a code of a framework for inputting data may be generated.
  • data entry operations based on user input can be performed without modifying the code of the application by modifying or generating the code of the framework for another data entry method, thereby improving the user experience.
  • FIG. 8 is a diagram illustrating an example of an image being input into an application when a user input for pasting an image is received according to one embodiment of the present disclosure.
  • an image list (80) stored in a clipboard may be displayed on the execution screen of the application, and the electronic device (100) may receive a user input for selecting an image (82) in the image list (80).
  • the images in the image list (80) stored in the clipboard may be images copied in advance by the user.
  • the electronic device (100) may obtain link information of the image (82) when the image (82) in the image list (80) is selected, and identify a location where the image (82) is to be input on the execution screen of the application.
  • the electronic device (100) may generate a code of a framework for image input of drag-and-drop based on the link information of the image (82) and the location where the image (82) is to be input.
  • the electronic device (100) may provide the generated code to the application, and the application may cause the image (82) to be displayed on the execution screen of the application based on the received code.
  • the electronic device (100) may input a data file other than an image into the execution screen of the application.
  • the image input method may be a data input method, and a code of a framework for inputting data may be generated.
  • a method for an electronic device to input an image into an execution screen of an application may include: receiving at least one user input for inputting an image into the execution screen of the application (e.g., operation 200); identifying a first image input method corresponding to the at least one user input (e.g., operation 210); identifying the image and an input location of the image on the execution screen based on the at least one user input (e.g., operation 220); identifying whether the application supports the first image input method (e.g., operation 230); identifying a second image input method supported by the application when the application does not support the first image input method (e.g., operation 240); generating code of a framework for inputting the image into the execution screen of the application using the second image input method based on the image and the input location (e.g., operation 250); and providing the generated code of the framework to the application (e.g., operation 260).
  • the image can be input into the execution screen of the application by using the generated code of the framework by the application.
  • the operation of identifying the second image input method supported by the application may identify whether a portion of the execution screen corresponding to the input location supports the second image input method.
  • the two image input methods can be selected from among a plurality of image input methods supported by the application.
  • the at least one user input may include a user input of selecting an input field of the application.
  • the application in response to receiving user input selecting the input field, the application may identify whether the application supports the first image input method.
  • the second image input method includes a method of inputting an image by drag and drop, and an operation of identifying the second image input method supported by the application may identify whether a portion of the execution screen corresponding to the input location supports a function of recognizing drag and drop.
  • the second image input method supported by the application can be identified by identifying whether the function of recognizing the drag and drop is supported for a plurality of partial areas within the execution screen.
  • the second image input method may include a method of inputting an image by copy and paste.
  • the first image input method may include at least one of a method of inputting an image selected from a list of images displayed via a keyboard running on the application, a method of inputting an image by drag & drop, or a method of inputting an image by copy & paste.
  • the second image input method may be an input method different from the first image input method among a method of inputting an image selected from a list of images displayed through a keyboard running for the application, a method of inputting an image by drag & drop, or a method of inputting an image by copy & paste.
  • FIG. 9 is a block diagram of an electronic device (901) in a network environment (900) according to various embodiments.
  • the electronic device (901) may communicate with the electronic device (902) via a first network (998) (e.g., a short-range wireless communication network), or may communicate with the electronic device (904) or the server (908) via a second network (999) (e.g., a long-range wireless communication network).
  • the electronic device (901) may communicate with the electronic device (904) via the server (908).
  • the electronic device (901) may include a processor (920), a memory (930), an input module (950), an audio output module (955), a display module (960), an audio module (970), a sensor module (976), an interface (977), a connection terminal (978), a haptic module (979), a camera module (980), a power management module (988), a battery (989), a communication module (990), a subscriber identification module (996), or an antenna module (997).
  • the electronic device (901) may omit at least one of these components (e.g., the connection terminal (978)), or may have one or more other components added.
  • some of these components e.g., the sensor module (976), the camera module (980), or the antenna module (997) may be integrated into one component (e.g., the display module (960)).
  • the processor (920) may control at least one other component (e.g., a hardware or software component) of the electronic device (901) connected to the processor (920) by executing, for example, software (e.g., a program (940)), and may perform various data processing or calculations.
  • the processor (920) may store a command or data received from another component (e.g., a sensor module (976) or a communication module (990)) in the volatile memory (932), process the command or data stored in the volatile memory (932), and store result data in the nonvolatile memory (934).
  • the processor (920) may include a main processor (921) (e.g., a central processing unit or an application processor) or an auxiliary processor (923) (e.g., a graphics processing unit, a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor) that can operate independently or together with the main processor (921).
  • a main processor e.g., a central processing unit or an application processor
  • an auxiliary processor e.g., a graphics processing unit, a neural processing unit (NPU), an image signal processor, a sensor hub processor, or a communication processor
  • the auxiliary processor (923) may be configured to use less power than the main processor (921) or to be specialized for a given function.
  • the auxiliary processor (923) may be implemented separately from the main processor (921) or as a part thereof.
  • the auxiliary processor (923) may control at least a portion of functions or states associated with at least one of the components of the electronic device (901) (e.g., the display module (960), the sensor module (976), or the communication module (990)), for example, on behalf of the main processor (921) while the main processor (921) is in an inactive (e.g., sleep) state, or together with the main processor (921) while the main processor (921) is in an active (e.g., application execution) state.
  • the auxiliary processor (923) e.g., an image signal processor or a communication processor
  • the auxiliary processor (923) may include a hardware structure specialized for processing artificial intelligence models.
  • the artificial intelligence models may be generated through machine learning. Such learning may be performed, for example, in the electronic device (901) on which the artificial intelligence is performed, or may be performed through a separate server (e.g., the server (908)).
  • the learning algorithm may include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but is not limited to the examples described above.
  • the artificial intelligence model may include a plurality of artificial neural network layers.
  • the artificial neural network may be one of a deep neural network (DNN), a convolutional neural network (CNN), a recurrent neural network (RNN), a restricted Boltzmann machine (RBM), a deep belief network (DBN), a bidirectional recurrent deep neural network (BRDNN), deep Q-networks, or a combination of two or more of the above, but is not limited to the examples described above.
  • the artificial intelligence model may additionally or alternatively include a software structure.
  • the memory (930) can store various data used by at least one component (e.g., the processor (920) or the sensor module (976)) of the electronic device (901).
  • the data can include, for example, software (e.g., the program (940)) and input data or output data for commands related thereto.
  • the memory (930) can include a volatile memory (932) or a nonvolatile memory (934).
  • the program (940) may be stored as software in memory (930) and may include, for example, an operating system (942), middleware (944), or an application (946).
  • the input module (950) can receive commands or data to be used for components of the electronic device (901) (e.g., processor (920)) from an external source (e.g., a user) of the electronic device (901).
  • the input module (950) can include, for example, a microphone, a mouse, a keyboard, a key (e.g., a button), or a digital pen (e.g., a stylus pen).
  • the audio output module (955) can output an audio signal to the outside of the electronic device (901).
  • the audio output module (955) can include, for example, a speaker or a receiver.
  • the speaker can be used for general purposes such as multimedia playback or recording playback.
  • the receiver can be used to receive an incoming call. According to one embodiment, the receiver can be implemented separately from the speaker or as a part thereof.
  • the display module (960) can visually provide information to an external party (e.g., a user) of the electronic device (901).
  • the display module (960) can include, for example, a display, a holographic device, or a projector and a control circuit for controlling the device.
  • the display module (960) can include a touch sensor configured to detect a touch, or a pressure sensor configured to measure a strength of a force generated by the touch.
  • the audio module (970) can convert sound into an electrical signal, or vice versa, convert an electrical signal into sound. According to one embodiment, the audio module (970) can obtain sound through the input module (950), or output sound through an audio output module (955), or an external electronic device (e.g., an electronic device (902)) (e.g., a speaker or a headphone) directly or wirelessly connected to the electronic device (901).
  • an electronic device e.g., an electronic device (902)
  • a speaker or a headphone directly or wirelessly connected to the electronic device (901).
  • the sensor module (976) can detect an operating state (e.g., power or temperature) of the electronic device (901) or an external environmental state (e.g., user state) and generate an electrical signal or data value corresponding to the detected state.
  • the sensor module (976) can include, for example, a gesture sensor, a gyro sensor, a barometric pressure sensor, a magnetic sensor, an acceleration sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biometric sensor, a temperature sensor, a humidity sensor, or an illuminance sensor.
  • the interface (977) may support one or more designated protocols that may be used to directly or wirelessly connect the electronic device (901) with an external electronic device (e.g., the electronic device (902)).
  • the interface (977) may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.
  • HDMI high definition multimedia interface
  • USB universal serial bus
  • SD card interface Secure Digital Card
  • connection terminal (978) may include a connector through which the electronic device (901) may be physically connected to an external electronic device (e.g., the electronic device (902)).
  • the connection terminal (978) may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (e.g., a headphone connector).
  • the haptic module (979) can convert an electrical signal into a mechanical stimulus (e.g., vibration or movement) or an electrical stimulus that a user can perceive through a tactile or kinesthetic sense.
  • the haptic module (979) can include, for example, a motor, a piezoelectric element, or an electrical stimulation device.
  • the camera module (980) can capture still images and moving images.
  • the camera module (980) can include one or more lenses, image sensors, image signal processors, or flashes.
  • the power management module (988) can manage power supplied to the electronic device (901).
  • the power management module (988) can be implemented as, for example, at least a part of a power management integrated circuit (PMIC).
  • PMIC power management integrated circuit
  • the battery (989) can power at least one component of the electronic device (901).
  • the battery (989) can include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.
  • the communication module (990) may support establishment of a direct (e.g., wired) communication channel or a wireless communication channel between the electronic device (901) and an external electronic device (e.g., the electronic device (902), the electronic device (904), or the server (908)), and performance of communication through the established communication channel.
  • the communication module (990) may operate independently from the processor (920) (e.g., the application processor) and may include one or more communication processors that support direct (e.g., wired) communication or wireless communication.
  • the communication module (990) may include a wireless communication module (992) (e.g., a cellular communication module, a short-range wireless communication module, or a global navigation satellite system (GNSS) communication module) or a wired communication module (994) (e.g., a local area network (LAN) communication module or a power line communication module).
  • a wireless communication module 992
  • GNSS global navigation satellite system
  • a wired communication module e.g., a local area network (LAN) communication module or a power line communication module.
  • any of these communication modules may communicate with an external electronic device (904) via a first network (998) (e.g., a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)) or a second network (999) (e.g., a long-range communication network such as a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a LAN or WAN)).
  • a first network e.g., a short-range communication network such as Bluetooth, wireless fidelity (WiFi) direct, or infrared data association (IrDA)
  • a second network 999
  • a long-range communication network such as a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a LAN or WAN)
  • a single component e.g., a single chip
  • the wireless communication module (992) may use subscriber information (e.g., an international mobile subscriber identity (IMSI)) stored in the subscriber identification module (996) to identify or authenticate the electronic device (901) within a communication network such as the first network (998) or the second network (999).
  • subscriber information e.g., an international mobile subscriber identity (IMSI)
  • IMSI international mobile subscriber identity
  • the wireless communication module (992) can support a 5G network after a 4G network and next-generation communication technology, for example, NR access technology (new radio access technology).
  • the NR access technology can support high-speed transmission of high-capacity data (eMBB (enhanced mobile broadband)), terminal power minimization and connection of multiple terminals (mMTC (massive machine type communications)), or high reliability and low latency (URLLC (ultra-reliable and low-latency communications)).
  • eMBB enhanced mobile broadband
  • mMTC massive machine type communications
  • URLLC ultra-reliable and low-latency communications
  • the wireless communication module (992) can support, for example, a high-frequency band (e.g., mmWave band) to achieve a high data transmission rate.
  • a high-frequency band e.g., mmWave band
  • the wireless communication module (992) may support various technologies for securing performance in a high-frequency band, such as beamforming, massive multiple-input and multiple-output (MIMO), full dimensional MIMO (FD-MIMO), array antenna, analog beam-forming, or large scale antenna.
  • the wireless communication module (992) may support various requirements specified in the electronic device (901), an external electronic device (e.g., the electronic device (904)), or a network system (e.g., the second network (999)).
  • the wireless communication module (992) may support a peak data rate (e.g., 20 Gbps or more) for eMBB realization, a loss coverage (e.g., 164 dB or less) for mMTC realization, or a U-plane latency (e.g., 0.5 ms or less for downlink (DL) and uplink (UL) respectively, or 1 ms or less for round trip) for URLLC realization.
  • a peak data rate e.g., 20 Gbps or more
  • a loss coverage e.g., 164 dB or less
  • U-plane latency e.g., 0.5 ms or less for downlink (DL) and uplink (UL) respectively, or 1 ms or less for round trip
  • the antenna module (997) can transmit or receive signals or power to or from the outside (e.g., an external electronic device).
  • the antenna module (997) can include an antenna including a radiator formed of a conductor or a conductive pattern formed on a substrate (e.g., a PCB).
  • the antenna module (997) can include a plurality of antennas (e.g., an array antenna).
  • at least one antenna suitable for a communication method used in a communication network, such as the first network (998) or the second network (999) can be selected from the plurality of antennas by, for example, the communication module (990).
  • a signal or power can be transmitted or received between the communication module (990) and the external electronic device through the selected at least one antenna.
  • another component e.g., a radio frequency integrated circuit (RFIC)
  • RFIC radio frequency integrated circuit
  • the antenna module (997) can form a mmWave antenna module.
  • the mmWave antenna module can include a printed circuit board, an RFIC positioned on or adjacent a first side (e.g., a bottom side) of the printed circuit board and capable of supporting a designated high frequency band (e.g., a mmWave band), and a plurality of antennas (e.g., an array antenna) positioned on or adjacent a second side (e.g., a top side or a side) of the printed circuit board and capable of transmitting or receiving signals in the designated high frequency band.
  • a first side e.g., a bottom side
  • a plurality of antennas e.g., an array antenna
  • peripheral devices e.g., a bus, a general purpose input and output (GPIO), a serial peripheral interface (SPI), or a mobile industry processor interface (MIPI)
  • GPIO general purpose input and output
  • SPI serial peripheral interface
  • MIPI mobile industry processor interface
  • commands or data may be transmitted or received between the electronic device (901) and an external electronic device (904) via a server (908) connected to a second network (999).
  • Each of the external electronic devices (902, or 904) may be the same or a different type of device as the electronic device (901).
  • all or part of the operations executed in the electronic device (901) may be executed in one or more of the external electronic devices (902, 904, or 908).
  • the electronic device (901) may, instead of or in addition to executing the function or service itself, request one or more external electronic devices to perform at least a part of the function or service.
  • One or more external electronic devices that receive the request may execute at least a part of the requested function or service, or an additional function or service related to the request, and transmit the result of the execution to the electronic device (901).
  • the electronic device (901) may process the result as it is or additionally and provide it as at least a part of a response to the request.
  • cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology may be used.
  • the electronic device (901) may provide an ultra-low latency service by using, for example, distributed computing or mobile edge computing.
  • the external electronic device (904) may include an IoT (Internet of Things) device.
  • the server (908) may be an intelligent server using machine learning and/or a neural network.
  • the external electronic device (904) or the server (908) may be included in the second network (999).
  • the electronic device (901) can be applied to intelligent services (e.g., smart home, smart city, smart car, or healthcare) based on 5G communication technology and IoT-related technology.
  • the electronic device (901) of FIG. 9 may be the electronic device (100) of FIGS. 1 to 8, and the processor (920) of FIG. 9 may perform the operations of the electronic device (100) described in FIGS. 1 to 8.
  • the processor (920) may receive a user input for inputting an image into the execution screen of the application.
  • the user input for inputting an image into the execution screen of the application may be a user input for inserting and displaying an image into the execution screen of the application.
  • the processor (920) may receive one or more user inputs for inputting an image into the execution screen of the application.
  • the processor (920) can identify a first image input method corresponding to the user input.
  • the first image input method corresponding to the user input can include, for example, at least one of a method of inputting an image selected from a list of images displayed via a keyboard, a method of inputting an image by drag & drop, or a method of inputting an image by copy & paste.
  • the user input may include user input for selecting an input field of the application, user input for calling up the image list from a keyboard application that is activated upon selection of the input field, and user input for selecting an image from the image list.
  • the user input may include a user input of selecting an image and dragging and dropping the selected image onto the execution screen of the application.
  • the user input may include at least one of a user input of selecting a specific location on the execution screen of the application (e.g., long touch), a user input of selecting a paste item from a menu displayed according to the selection of the specific location, a user input of selecting a clipboard item from a menu displayed according to the selection of the specific location, or a user input of selecting an image in the clipboard.
  • a user input of selecting a specific location on the execution screen of the application e.g., long touch
  • a user input of selecting a paste item from a menu displayed according to the selection of the specific location e.g., a user input of selecting a clipboard item from a menu displayed according to the selection of the specific location
  • a user input of selecting an image in the clipboard e.g., long touch
  • the processor (920) can identify an image and an input location of the image.
  • the processor (920) can identify an image selected by a user input and a portion of an area on the execution screen of an application where the selected image is to be displayed.
  • the processor (920) may identify an image selected from the list of images of the keyboard application as an image to be input into the application.
  • the processor (920) may identify an input field of the application, or a portion of an execution screen of the application where an input value via an input field is displayed, as an input location of the image.
  • the processor (920) can identify the dragged and dropped image as an image to be input into the application.
  • the processor (920) can identify a part of the execution screen of the application including the location where the image is dropped as the input location of the image.
  • the processor (920) can identify the copied image as an image to be input into the application. In addition, the processor (920) can identify the location where the image is to be pasted as the input location of the image.
  • the processor (920) may determine whether the application supports the first image input method. For example, the application may support only some of the methods of inputting an image selected from a list of images displayed via a keyboard, inputting an image by drag & drop, and inputting an image by copy & paste. Accordingly, the first image input method corresponding to the user input may not be included in the input methods supported by the application. For example, the processor (920) may determine whether the application has a keyboard handler, a graphical handler for drag & drop, and/or a graphical handler for copy & paste.
  • the processor (920) may identify a second image input method supported by the application.
  • the processor (920) can identify that the application supports a method of inputting an image by drag & drop, and/or a method of inputting an image by copy & paste.
  • the processor (920) can identify that the application supports a method of inputting an image selected from a list of images displayed via a keyboard and/or a method of inputting an image by copy & paste.
  • the processor (920) can identify that the application supports a method of inputting an image selected from a list of images displayed via a keyboard and/or a method of inputting an image by drag & drop.
  • the processor (920) may obtain a code of a framework for inputting an image using the second image input method.
  • the processor (920) may obtain a code of a framework for inputting an image using the second image input method based on link information of an image to be input into an execution screen of an application and an input location within the execution screen of the application where the image is to be input.
  • the link information of the image may include, for example, URI (uniform resource identifier) information of the image.
  • the processor (920) can obtain a code of a framework for dragging and dropping an image.
  • the processor (920) can obtain a code for registering a DragListner for a portion of an area where an image is to be input within the execution screen of the application.
  • the processor (920) can obtain code of a framework for dragging and dropping an image by editing at least a portion of the code of Table 1.
  • the processor (920) can obtain a code of a framework for copying and pasting an image.
  • the processor (920) can obtain a code of a framework for overriding an image pasting operation for a portion of an image to be input within an execution screen of the application.
  • the processor (920) can obtain code of a framework for copying and pasting an image by editing at least a portion of the code of Table 2.
  • a second image input method supported by an application and different from the first image input method is a method of inputting an image selected from a list of images displayed via a keyboard
  • the processor (920) may obtain a code of a framework for inputting an image selected from a list of images displayed via the keyboard.
  • the processor (920) may obtain a code of a framework for overriding InputConnection in order to input an image into a portion of an execution screen of the application where an image is to be input.
  • the processor (920) can obtain code of a framework for inputting an image via a keyboard by editing at least a portion of the code of Table 3.
  • the processor (920) can provide the code of the framework to the application. Based on the code of the provided framework, the application can display an image at a specific location within the execution screen of the application through the second image input method.
  • the processor (920) may input an image into the execution screen of the application according to the first image input method.
  • the electronic device (100) may input a data file other than an image into the execution screen of the application.
  • the image input method may be a data input method, and the code of the framework for inputting the data may be obtained.
  • the image can be input into the execution screen of the application by using the acquired code of the framework by the application.
  • the at least one processor may, by executing the instructions, identify whether a portion of the execution screen corresponding to the input location supports the second image input method.
  • the two image input methods can be selected from among a plurality of image input methods supported by the application.
  • the at least one user input may include a user input of selecting an input field of the application.
  • the at least one processor may, by executing the instructions, identify whether the application supports the first image input method in response to receiving a user input selecting the input field.
  • the second image input method includes a method of inputting an image by drag and drop
  • the at least one processor can identify, by executing the commands, whether a portion of the execution screen corresponding to the input location supports a function of recognizing drag and drop.
  • the second image input method supported by the application can be identified by identifying whether the function of recognizing the drag and drop is supported for a plurality of partial areas within the execution screen.
  • the second image input method may include a method of inputting an image by copy and paste.
  • a computer-readable recording medium having recorded thereon a program for executing a method for inputting an image into an execution screen of an application, the method comprising: receiving at least one user input for inputting an image into an execution screen of an application; identifying a first image input method corresponding to the at least one user input; identifying the image and an input location of the image on the execution screen based on the at least one user input; identifying whether the application supports the first image input method; identifying a second image input method supported by the application when the application does not support the first image input method; acquiring code of a framework for inputting the image into the execution screen of the application using the second image input method based on the image and the input location; and providing the acquired code of the framework to the application.
  • the electronic devices according to various embodiments disclosed in this document may be devices of various forms.
  • the electronic devices may include, for example, portable communication devices (e.g., smartphones), computer devices, portable multimedia devices, portable medical devices, cameras, wearable devices, or home appliance devices.
  • portable communication devices e.g., smartphones
  • computer devices portable multimedia devices
  • portable medical devices e.g., cameras
  • wearable devices e.g., smart watch devices
  • home appliance devices e.g., smartphones
  • the electronic devices according to embodiments of this document are not limited to the above-described devices.
  • first, second, or first or second may be used merely to distinguish the corresponding component from other corresponding components and do not limit the corresponding components in any other respect (e.g., importance or order).
  • a (e.g., first) component is referred to as “coupled” or “connected” to another (e.g., second) component, with or without the terms “functionally” or “communicatively,” it means that the corresponding component can be connected to the corresponding other component directly (e.g., wired), wirelessly, or via a third component.
  • module can include a unit implemented in hardware, software, or firmware, and can be used interchangeably with terms such as logic, logic block, component, or circuit.
  • a module can be an integral component or a smallest unit or part of a component that performs one or more functions.
  • the module may be implemented in the form of an application-specific integrated circuit (ASIC).
  • ASIC application-specific integrated circuit
  • Various embodiments of the present document may be implemented as software (e.g., a program (940)) including one or more instructions stored in a storage medium (e.g., an internal memory (936) or an external memory (938)) readable by a machine (e.g., an electronic device (901)).
  • a processor e.g., a processor (920)
  • the machine may call at least one instruction among the one or more instructions stored from the storage medium and execute it. This enables the machine to operate to perform at least one function according to the at least one called instruction.
  • the one or more instructions may include code generated by a compiler or code executable by an interpreter.
  • the machine-readable storage medium may be provided in the form of a non-transitory storage medium.
  • ‘non-transitory’ simply means that the storage medium is a tangible device and does not contain signals (e.g. electromagnetic waves), and the term does not distinguish between cases where data is stored semi-permanently or temporarily on the storage medium.
  • the method according to various embodiments disclosed in the present document may be provided as included in a computer program product.
  • the computer program product may be traded between a seller and a buyer as a product.
  • the computer program product may be distributed in the form of a machine-readable storage medium (e.g., compact disc read only memory (CD-ROM)), or may be distributed online (e.g., downloaded or uploaded) through an application store (e.g., Play Store TM ) or directly between two user devices (e.g., smart phones).
  • an application store e.g., Play Store TM
  • at least a part of the computer program product may be temporarily stored or temporarily generated in a machine-readable storage medium, such as a memory of a manufacturer's server, an application store's server, or an intermediary server.
  • each of the components may include a single or multiple entities, and some of the multiple entities may be separately arranged in other components.
  • one or more of the components or operations of the aforementioned components may be omitted, or one or more other components or operations may be added.
  • a plurality of components e.g., modules or programs
  • the integrated component may perform one or more functions of each of the plurality of components identically or similarly to those performed by the corresponding component of the plurality of components prior to the integration.
  • the operations performed by the module, program or other component may be executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations may be executed in a different order, omitted, or one or more other operations may be added.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

어플리케이션의 실행 화면 내에 데이터를 삽입하는 전자 장치 및 방법이 제공된다. 전자 장치가 어플리케이션의 실행 화면 내에 이미지를 입력하는 방법은, 상기 어플리케이션의 실행 화면 내에 이미지를 입력하기 위한 적어도 하나의 사용자 입력에 대응되는 제1 이미지 입력 방식을 식별하는 동작; 상기 어플리케이션이 상기 제1 이미지 입력 방식을 지원하는 지를 식별하는 동작; 상기 어플리케이션이 상기 제1 이미지 입력 방식을 지원하지 않음에 따라, 상기 어플리케이션에 의해 지원되는 제2 이미지 입력 방식을 식별하는 동작; 상기 이미지를 상기 제2 이미지 입력 방식으로 상기 어플리케이션의 상기 실행 화면 내에 입력하기 위한 프레임 워크의 코드를 획득하는 동작; 및 상기 프레임 워크의 상기 획득된 코드를 상기 어플리케이션에게 제공하는 동작;을 포함한다.

Description

어플리케이션의 실행 화면 내에 데이터를 삽입하는 전자 장치 및 방법과, 기록매체
본 개시는 어플리케이션의 실행 화면 내에 데이터를 삽입하는 전자 장치 및 방법과, 기록매체에 관한 것이다.
멀티미디어 기술 및 네트워크 기술이 발전함에 따라, 전자 장치는 여러 어플리케이션을 통해 다양한 데이터를 이용할 수 있게 되었으며, 어플리케이션에 데이터를 입력하는 여러 입력 방식이 제공되고 있다.
하지만, 어플리케이션 별로 어플리케이션이 지원하는 데이터 입력 방식이 동일하지 않으며, 데이터 입력 방식들 중에서 어플리케이션에 의해 지원되지 않는 데이터 입력 방식으로 사용자 입력이 수신되는 경우에, 어플리케이션이 사용자 입력을 처리하지 못하는 문제가 있었다. 또한, 어플리케이션에 의해 지원되지 않는 데이터 입력 방식을 어플리케이션이 처리하도록 하기 위하여 전자 장치가 어플리케이션의 코드를 수정하기 힘든 문제가 있었다.
이에 따라, 어플리케이션에 의해 지원되지 않는 데이터 입력 방식으로 사용자 입력이 수신되더라도, 어플리케이션의 코드를 수정하지 않고 어플리케이션에 의해 지원되는 다른 데이터 입력 방식을 통하여 데이터의 입력 동작을 수행할 수 있도록 하는 기술이 요구되고 있다.
상술한 정보는 본 개시에 대한 이해를 돕기 위한 목적으로 하는 배경 기술(related art)로 제공될 수 있다. 상술한 내용 중 어느 것도 본 개시와 관련된 종래 기술(prior art)로서 적용될 수 있는지에 대하여 어떠한 주장이나 결정이 제기되지 않는다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 개시의 일 실시예는, 상기 어플리케이션의 실행 화면 내에 이미지를 입력하기 위한 적어도 하나의 사용자 입력을 수신하는 동작; 상기 적어도 하나의 사용자 입력에 대응되는 제1 이미지 입력 방식을 식별하는 동작; 상기 적어도 하나의 사용자 입력에 기초하여 상기 이미지 및 상기 이미지의 상기 실행 화면 상의 입력 위치를 식별하는 동작; 및 상기 어플리케이션이 상기 제1 이미지 입력 방식을 지원하는 지를 식별하는 동작; 상기 어플리케이션이 상기 제1 이미지 입력 방식을 지원하지 않음에 따라, 상기 어플리케이션에 의해 지원되는 제2 이미지 입력 방식을 식별하는 동작; 상기 이미지 및 상기 입력 위치에 기초하여, 상기 이미지를 상기 제2 이미지 입력 방식으로 상기 어플리케이션의 상기 실행 화면 내에 입력하기 위한 프레임 워크의 코드를 생성하는 동작; 및 상기 프레임 워크의 상기 생성된 코드를 상기 어플리케이션에게 제공하는 동작;을 포함하는, 전자 장치가 어플리케이션의 실행 화면 내에 이미지를 입력하는 방법을 제공할 수 있다.
또한, 본 개시의 일 실시예는, 디스플레이; 명령어들을 저장하는 메모리; 및 상기 디스플레이 및 상기 메모리와 작동적으로 연결되며, 상기 명령어들을 실행하는 적어도 하나의 프로세서;를 포함하며, 상기 적어도 하나의 프로세서는, 상기 명령어들을 실행함으로써, 상기 어플리케이션의 실행 화면 내에 이미지를 입력하기 위한 적어도 하나의 사용자 입력을 수신하고, 상기 적어도 하나의 사용자 입력에 대응되는 제1 이미지 입력 방식을 식별하고, 상기 적어도 하나의 사용자 입력에 기초하여 상기 이미지 및 상기 이미지의 상기 실행 화면 상의 입력 위치를 식별하고, 상기 어플리케이션이 상기 제1 이미지 입력 방식을 지원하는 지를 식별하고, 상기 어플리케이션이 상기 제1 이미지 입력 방식을 지원하지 않음에 따라, 상기 어플리케이션에 의해 지원되는 제2 이미지 입력 방식을 식별하고, 상기 이미지 및 상기 입력 위치에 기초하여, 상기 이미지를 상기 제2 이미지 입력 방식으로 상기 어플리케이션의 상기 실행 화면 내에 입력하기 위한 프레임 워크의 코드를 생성하고, 상기 프레임 워크의 상기 생성된 코드를 상기 어플리케이션에게 제공하는, 어플리케이션의 실행 화면 내에 이미지를 입력하는 전자 장치를 제공할 수 있다.
또한, 본 개시의 일 실시예는, 상기 어플리케이션의 실행 화면 내에 이미지를 입력하기 위한 적어도 하나의 사용자 입력을 수신하는 동작; 상기 적어도 하나의 사용자 입력에 대응되는 제1 이미지 입력 방식을 식별하는 동작; 상기 적어도 하나의 사용자 입력에 기초하여 상기 이미지 및 상기 이미지의 상기 실행 화면 상의 입력 위치를 식별하는 동작; 및 상기 어플리케이션이 상기 제1 이미지 입력 방식을 지원하는 지를 식별하는 동작; 상기 어플리케이션이 상기 제1 이미지 입력 방식을 지원하지 않음에 따라, 상기 어플리케이션에 의해 지원되는 제2 이미지 입력 방식을 식별하는 동작; 상기 이미지 및 상기 입력 위치에 기초하여, 상기 이미지를 상기 제2 이미지 입력 방식으로 상기 어플리케이션의 상기 실행 화면 내에 입력하기 위한 프레임 워크의 코드를 생성하는 동작; 및 상기 프레임 워크의 상기 생성된 코드를 상기 어플리케이션에게 제공하는 동작;을 포함하는, 어플리케이션의 실행 화면 내에 이미지를 입력하는 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공할 수 있다.
또한, 본 개시의 일 실시예는, 어플리케이션의 실행 화면 내에 이미지를 입력하기 위한 적어도 하나의 사용자 입력을 수신하는 동작; 상기 적어도 하나의 사용자 입력에 대응되는 제1 이미지 입력 방식을 식별하는 동작; 상기 어플리케이션이 상기 제1 이미지 입력 방식을 지원하는 지를 식별하는 동작; 상기 어플리케이션이 상기 제1 이미지 입력 방식을 지원하지 않음에 따라, 상기 어플리케이션에 의해 지원되는 제2 이미지 입력 방식을 식별하는 동작; 및 상기 이미지를 상기 제2 이미지 입력 방식으로 상기 어플리케이션의 상기 실행 화면 내에 입력하기 위한 프레임 워크의 코드를 이용하여 상기 제2 이미지 입력 방식을 통하여 상기 이미지를 상기 어플리케이션에 입력하는 동작;을 포함하는, 전자 장치가 어플리케이션의 실행 화면 내에 이미지를 입력하는 방법을 제공할 수 있다.
도 1은 본 개시의 일 실시예에 따른 전자 장치가 어플리케이션의 실행 화면 내에 이미지를 입력하는 개요를 나타내는 도면이다.
도 2는 본 개시의 일 실시예에 따른 어플리케이션의 실행 화면 내에 이미지를 입력하는 방법의 흐름도이다.
도 3은 본 개시의 일 실시예에 따른 전자 장치가 키보드를 통해 이미지를 입력하는 사용자 입력에 따라 어플리케이션에 이미지를 입력하는 방법의 흐름도이다.
도 4a는 본 개시의 일 실시예에 따른 어플리케이션의 실행 화면의 예시를 나타내는 도면이다.
도 4b는 본 개시의 일 실시예에 따른 어플리케이션의 실행 화면 및 키보드 어플리케이션의 실행 화면이 디스플레이된 예시를 나타내는 도면이다.
도 4c는 본 개시의 일 실시예에 따른 키보드 어플리케이션의 실행 화면 내에 이미지 목록이 디스플레이되고 이미지 목록에서 선택된 이미지가 입력 필드 내에 디스플레이되는 예시를 나타내는 도면이다.
도 4d는 본 개시의 일 실시예에 따른 어플리케이션의 실행 화면 내에 이미지가 입력된 예시를 나타내는 도면이다.
도 5는 본 개시의 일 실시예에 따른 전자 장치가 이미지를 드래그 앤드 드롭하는 사용자 입력에 따라 어플리케이션에 이미지를 입력하는 방법의 흐름도이다.
도 6은 본 개시의 일 실시예에 따른 드래그 앤드 드롭의 사용자 입력이 수신되는 경우에 어플리케이션에 이미지가 입력되는 예시를 나타내는 도면이다.
도 7은 본 개시의 일 실시예에 따른 전자 장치가 이미지를 붙여 넣기하는 사용자 입력에 따라 어플리케이션에 이미지를 입력하는 방법의 흐름도이다.
도 8은 본 개시의 일 실시예에 따른 이미지 붙여 넣기를 위한 사용자 입력이 수신되는 경우에 어플리케이션에 이미지가 입력되는 예시를 나타내는 도면이다.
도 9는 다양한 실시예들에 따른, 네트워크 환경 내의 전자 장치의 블록도이다.
도 10은 본 개시의 일 실시예에 따른 전자 장치의 소프트웨어 스택을 나타내는 도면이다.
아래에서는 첨부한 도면을 참조하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 개시의 실시예를 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 개시에서 사용되는 용어는, 본 개시에서 언급되는 기능을 고려하여 현재 사용되는 일반적인 용어로 기재되었으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 다양한 다른 용어를 의미할 수 있다. 따라서 본 개시에서 사용되는 용어는 용어의 명칭만으로 해석되어서는 안되며, 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 해석되어야 한다.
또한, 제1, 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 이 용어들에 의해 한정되어서는 안 된다. 이 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로 사용된다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 개시에서 다양한 곳에 등장하는 "일 실시예에서" 등의 어구는 반드시 모두 동일한 실시예를 가리키는 것은 아니다.
본 개시의 일 실시예는 기능적인 블록 구성들 및 다양한 처리 단계들로 나타내어질 수 있다. 이러한 기능 블록들의 일부 또는 전부는, 특정 기능들을 실행하는 다양한 개수의 하드웨어 및/또는 소프트웨어 구성들로 구현될 수 있다. 예를 들어, 본 개시의 기능 블록들은 하나 이상의 마이크로프로세서들에 의해 구현되거나, 소정의 기능을 위한 회로 구성들에 의해 구현될 수 있다. 또한, 예를 들어, 본 개시의 기능 블록들은 다양한 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능 블록들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 또한, 본 개시는 전자적인 환경 설정, 신호 처리, 및/또는 데이터 처리 등을 위하여 종래 기술을 채용할 수 있다. "매커니즘", "요소", "수단" 및 "구성"등과 같은 용어는 넓게 사용될 수 있으며, 기계적이고 물리적인 구성들로서 한정되는 것은 아니다.
또한, 도면에 도시된 구성 요소들 간의 연결 선 또는 연결 부재들은 기능적인 연결 및/또는 물리적 또는 회로적 연결들을 예시적으로 나타낸 것일 뿐이다. 실제 장치에서는 대체 가능하거나 추가된 다양한 기능적인 연결, 물리적인 연결, 또는 회로 연결들에 의해 구성 요소들 간의 연결이 나타내어질 수 있다.
이하 첨부된 도면을 참고하여 본 개시를 상세히 설명하기로 한다.
도 1은 본 개시의 일 실시예에 따른 전자 장치가 어플리케이션의 실행 화면 내에 이미지를 입력하는 개요를 나타내는 도면이다.
도 1의 식별 번호 1 및 식별 번호 2를 참조하면, 일 실시예에 따른 전자 장치(100)는, 어플리케이션(예: 도 9의 어플리케이션(946))의 실행 화면 내에 이미지를 입력하기 위한 사용자 입력이 수신되고, 사용자 입력에 대응되는 이미지 입력 방식을 어플리케이션이 지원하지 않는 경우에, 다른 이미지 입력 방식을 통하여 이미지를 어플리케이션의 실행 화면 내에 입력할 수 있다.
예를 들어, 식별 번호 1을 참조하면, 전자 장치(100)는 어플리케이션의 실행 화면 내에 이미지를 입력하기 위한 사용자 입력을 수신하고, 사용자 입력에 대응되는 제1 이미지 입력 방식을 어플리케이션이 지원하는지를 판단할 수 있다. 또한, 예를 들어, 식별 번호 2를 참조하면, 어플리케이션이 제1 이미지 입력 방식을 지원하지 않는 경우에, 전자 장치(100)는 제1 이미지 입력 방식과 다른 제2 이미지 입력 방식으로 이미지를 어플리케이션의 실행 화면 내에 입력할 수 있다. 전자 장치(100)는 제2 이미지 입력 방식으로 이미지를 입력하기 위한 프레임 워크의 코드를 획득하여 어플리케이션에게 제공할 수 있다. 예를 들어, 도 10과 같은 소프트웨어 스택에서, 제2 이미지 입력 방식을 위한 프레임 워크 단의 코드를 획득하고, 획득된 코드를 어플리케이션에게 제공할 수 있다. 어플리케이션은 제공받은 코드에 기초하여, 제2 이미지 입력 방식에 따라 이미지를 어플리케이션의 실행 화면 상에 표시할 수 있다. 또한, 예를 들어, 이미지 입력 방식의 변환(예: 제1 이미지 입력 방식에서 제2 이미지 입력 방식으로의 변환)을 위해, 소프트웨어 스택에서 프레임 워크 이외 영역의 소스 코드를 획득(예: 편집, 생성, 추가)함으로써, 어플리케이션이 제2 이미지 입력 방식으로 이미지를 어플리케이션의 실행 화면 상에 표시하도록 할 수 있다.
전자 장치(100)는 스마트폰, 태블릿 PC, PC, 스마트 TV, 휴대폰, PDA(personal digital assistant), 랩톱, 미디어 플레이어, 마이크로 서버, GPS(global positioning system) 장치, 전자책 단말기, 디지털방송용 단말기, 네비게이션, 키오스크, MP3 플레이어, 디지털 카메라, 가전기기 및 기타 모바일 또는 비모바일 컴퓨팅 장치일 수 있으나, 이에 제한되지 않는다. 또한, 전자 장치(100)는 디스플레이를 구비한 시계 및 안경과 같은 웨어러블 디바이스일 수 있다. 그러나, 이에 제한되지 않으며, 전자 장치(100)는 디스플레이를 통하여 어플리케이션의 실행 화면을 디스플레이하고, 사용자 입력을 수신할 수 있는 모든 종류의 기기를 포함할 수 있다.
본 문서에서, 이미지는, 예를 들어, 정지영상, 동영상, GIF 이미지, 소리가 포함된 이미지, 이모티콘, 이모지 등의 다양한 타입의 이미지일 수 있다. 또한, 이미지 이외의 다른 데이터 파일을 입력하는 경우에도 본 개시의 일 실시예가 적용될 수 있다.
도 2는 본 개시의 일 실시예에 따른 어플리케이션의 실행 화면 내에 이미지를 입력하는 방법의 흐름도이다.
이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다.
일 실시예에 따르면, 동작 200 내지 270은 전자 장치(예: 도 1의 전자 장치(100) 및/또는 도 9의 전자 장치(901))의 프로세서(예: 도 9의 프로세서(920))에서 수행되는 것으로 이해될 수 있다.
도 2를 참조하면, 전자 장치가 어플리케이션에 의해 지원되지 않는 이미지 입력 방식으로 이미지를 입력하려는 사용자 입력에 응답하여, 어플리케이션의 실행 화면 내에 이미지를 입력할 수 있다.
동작 200에서, 일 실시예에 따른 전자 장치(100)는 어플리케이션의 실행 화면 내에 이미지를 입력하기 위한 사용자 입력을 수신할 수 있다. 어플리케이션의 실행 화면 내에 이미지를 입력하기 위한 사용자 입력은, 어플리케이션의 실행 화면 내에 이미지를 삽입하여 표시하기 위한 사용자 입력일 수 있다. 전자 장치(100)는 어플리케이션의 실행 화면 내에 이미지를 입력하기 위한 하나 이상의 사용자 입력을 수신할 수 있다.
예를 들어, 실행 화면 내에 이미지를 입력하기 위한 하나 이상의 사용자 입력은, 제1 이미지 입력 방식을 통한 사용자 입력일 수 있다. 제1 이미지 입력 방식은, 예를 들어, 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하는 방식, 드래그 앤드 드롭(drag & drop)에 의해 이미지를 입력하는 방식, 또는 복사 및 붙여넣기(copy & paste)에 의해 이미지를 입력하는 방식 중 적어도 하나를 포함할 수 있다.
예를 들어, 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하는 방식은, 키보드 어플리케이션을 통해 이미지를 디스플레이하고 디스플레이된 이미지를 사용자가 선택하는 입력 방식을 포함할 수 있으며, 사용자의 손가락 또는 스타일러스 펜에 의한 터치 입력을 포함할 수 있다.
하지만, 제1 이미지 입력 방식은 이에 제한되지 않으며, 디스플레이에 이미지를 입력하기 위한 다양한 이미지 입력 방식일 수 있다. 예를 들어, 제1 이미지 입력 방식은, 전자 장치(100)의 디스플레이에 다양한 방식으로 표시되는 이미지에 대한 사용자 입력에 따른 입력 방식일 수 있으며, 예를 들어, 이미지에 대한 드래그 앤 드랍, 이미지에 대한 터치 선택, 이미지에 대한 복사 및 붙여넣기 입력 등을 포함할 수 있다. 또한, 예를 들어, 사용자 입력은 키보드 어플리케이션 뿐만 아니라 어플리케이션의 실행 화면 내 표시 된 이미지에 대한 선택 입력일 수 있다.
동작 210에서, 일 실시예에 따른 전자 장치(100)는 사용자 입력에 대응되는 제1 이미지 입력 방식을 식별할 수 있다. 사용자 입력에 대응되는 제1 이미지 입력 방식은, 예를 들어, 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하는 방식, 드래그 앤드 드롭(drag & drop)에 의해 이미지를 입력하는 방식, 또는 복사 및 붙여넣기(copy & paste)에 의해 이미지를 입력하는 방식 중 적어도 하나를 포함할 수 있다.
예를 들어, 제1 이미지 입력 방식이 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하는 방식인 경우에, 사용자 입력은 어플리케이션의 입력 필드를 선택하는 사용자 입력, 입력 필드의 선택에 따라 활성화되는 키보드 어플리케이션에서 이미지 목록을 호출하는 사용자 입력, 및 이미지 목록에서 이미지를 선택하는 사용자 입력을 포함할 수 있다.
예를 들어, 제1 이미지 입력 방식이 드래그 앤드 드롭(drag & drop)에 의해 이미지를 입력하는 방식인 경우에, 사용자 입력은 어플리케이션의 입력 필드를 선택하는 사용자 입력, 입력 필드의 선택에 따라 활성화되는 키보드 어플리케이션에서 이미지 목록을 호출하는 사용자 입력, 및 이미지 목록에서 이미지를 선택하고 선택된 이미지를 어플리케이션의 실행 화면 상으로 드래그하여 드롭하는 사용자 입력을 포함할 수 있다. 또한, 예를 들어, 제1 이미지 입력 방식이 드래그 앤드 드롭(drag & drop)에 의해 이미지를 입력하는 방식인 경우에, 다른 어플리케이션의 실행 화면에서 이미지를 선택하고 선택된 이미지를 어플리케이션의 실행 화면(예: 입력 필드)로 드래그& 드롭하는 사용자 입력을 포함할 수 있다.
예를 들어, 제1 이미지 입력 방식이 복사 및 붙여넣기에 의해 이미지를 입력하는 방식인 경우에, 사용자 입력은 어플리케이션의 실행 화면의 특정 위치(예: 어플리케이션의 실행 화면 내의 입력 필드)를 선택(예: 롱 터치)하는 사용자 입력, 특정 위치 선택에 따라 표시되는 메뉴에서 붙여넣기 항목을 선택하는 사용자 입력, 특정 위치 선택에 따라 표시되는 메뉴에서 클립보드 항목을 선택하는 사용자 입력, 또는 클립보드 내의 이미지를 선택하는 사용자 입력 중 적어도 하나를 포함할 수 있다. 또한, 예를 들어, 붙여넣기의 대상이 되는 이미지는 다양한 상황에서 복사된 이미지일 수 있다. 예를 들어, 복사된 이미지는, 특정 애플리케이션의 실행 화면에서 이미지를 롱프레스하는 사용자 입력 또는 기타 입력을 통하여 메모리(클립보드)에 저장된 이미지일 수 있으며, 어플리케이션 및 다른 어플리케이션(예, 인터넷 브라우저)에 표시된 이미지가 복사될 수 있다.
동작 220에서, 일 실시예에 따른 전자 장치(100)는 이미지 및/또는 이미지의 입력 위치를 식별할 수 있다. 전자 장치(100)는 사용자 입력에 의해 선택된 이미지 및/또는 선택된 이미지가 표시될 어플리케이션의 실행 화면 상의 일부 영역을 식별할 수 있다.
예를 들어, 제1 이미지 입력 방식이 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하는 방식인 경우에, 전자 장치(100)는 키보드 어플리케이션의 이미지 목록에서 상기 사용자 입력으로 선택된 이미지를 어플리케이션이 입력될 이미지로 식별할 수 있다. 예를 들어, 전자 장치(100)는 동작 200에서 사용자 입력으로 선택된 이미지를 어플리케이션의 실행 화면 내 표시할 이미지로 식별할 수 있다. 또한, 전자 장치(100)는 어플리케이션의 입력 필드, 또는 입력 필드를 통한 입력 값이 표시되는 어플리케이션의 실행 화면의 일부 영역(예: 어플리케이션의 실행 화면에서 입력 필드 이외의 다른 영역)을 이미지의 입력 위치로 식별할 수 있다. 예를 들어, 이미지의 입력 영역은, 어플리케이션의 실행 화면을 구성하는 GUI 내의 구분되는 영역들 중 하나일 수 있다. 예를 들어, 이미지의 입력 영역은, 어플리케이션의 실행 화면의 GUI 내의 입력 필드 영역, 데이터 표시 영역 등을 포함할 수 있다.
예를 들어, 제1 이미지 입력 방식이 드래그 앤드 드롭(drag & drop)에 의해 이미지를 입력하는 방식인 경우에, 전자 장치(100)는 드래그 앤드 드롭된 이미지를 어플리케이션에 입력될 이미지로 식별할 수 있다. 또한, 전자 장치(100)는 이미지가 드롭된 위치를 포함하는 어플리케이션의 실행 화면의 일부 영역을 이미지의 입력 위치로 식별할 수 있다. 전자 장치(100)는, 예를 들어, 이미지가 드롭된 위치의 좌표 값에 기초하여, 드롭된 위치를 포함하는 GUI 영역(예: 어플리케이션의 입력 필드 영역, 데이터 표시 영역 등)을 이미지의 입력 위치로 식별할 수 있다.
예를 들어, 제1 이미지 입력 방식이 복사 및 붙여넣기에 의해 이미지를 입력하는 방식인 경우에, 전자 장치(100)는 복사된 이미지를 어플리케이션에 입력될 이미지로 식별할 수 있다. 또한, 전자 장치(100)는 이미지가 붙여넣기 될 위치를 이미지의 입력 위치로 식별할 수 있다.
동작 230에서, 일 실시예에 따른 전자 장치(100)는 어플리케이션이 제1 이미지 입력 방식을 지원하는 지를 판단할 수 있다. 전자 장치(100)는, 어플리케이션에 의해 지원되는 적어도 하나의 이미지 입력 방식을 식별하고, 적어도 하나의 식별된 이미지 입력 방식이, 사용자 입력에 대응하는 제1 이미지 입력 방식인지를 판단함으로써, 어플리케이션이 제1 이미지 입력 방식을 지원하는 지를 판단할 수 있다.
예를 들어, 어플리케이션은, 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하는 방식, 드래그 앤드 드롭(drag & drop)에 의해 이미지를 입력하는 방식, 및 복사 및 붙여넣기(copy & paste)에 의해 이미지를 입력하는 방식 중 일부의 방식만을 지원할 수 있다. 이에 따라, 사용자 입력에 대응되는 제1 이미지 입력 방식이 어플리케이션에 의해 지원되는 입력 방식에 포함되지 않을 수 있다. 예를 들어, 전자 장치(100)는 어플리케이션이 키보드 핸들러(handler), 드래그 앤드 드롭의 그래픽 핸들러, 및/또는 복사 및 붙여넣기의 그래픽 핸들러를 가지고 있는 지를 판단할 수 있으나, 이에 제한되지 않는다. 전자 장치(100)는 어플리케이션이 핸들러를 가지고 있는지 여부를 판단하는 방식 이외의 다양한 방식을 통하여 어플리케이션이 지원하는 이미지 입력 방식을 판단할 수 있다.
동작 230에서의 판단 결과, 어플리케이션이 제1 이미지 입력 방식을 지원하지 않는다고 판단되면, 동작 240에서 일 실시예에 따른 전자 장치(100)는 어플리케이션에 의해 지원되는 제2 이미지 입력 방식을 식별할 수 있다. 일 실시예에 따르면, 전자 장치(100)는 제1 이미지 입력 방식의 우회 경로가 있는 지를 확인하고, 우회 경로가 존재하는 경우에 우회 경로의 입력 방식(예: 제2 이미지 입력 방식)을 선택할 수 있다. 일 실시예에 따르면, 사용자 입력을 수신하기 전이라도 전자 장치(100)는 어플리케이션에 의해 지원되는 이미지 입력 방식을 식별하는 동작을 어플리케이션 실행 시 미리 수행할 수도 있다.
예를 들어, 제1 이미지 입력 방식이 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하는 방식이고, 어플리케이션이 제1 이미지 입력 방식을 지원하지 않는 경우에, 전자 장치(100)는 어플리케이션이 드래그 앤드 드롭(drag & drop)에 의해 이미지를 입력하는 방식, 및/또는 복사 및 붙여넣기(copy & paste)에 의해 이미지를 입력하는 방식을 지원함을 식별할 수 있다.
예를 들어, 제1 이미지 입력 방식이 드래그 앤드 드롭(drag & drop)에 의해 이미지를 입력하는 방식이고, 어플리케이션이 제1 이미지 입력 방식을 지원하지 않는 경우에, 전자 장치(100)는 어플리케이션이 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하는 방식, 및/또는 복사 및 붙여넣기(copy & paste)에 의해 이미지를 입력하는 방식을 지원함을 식별할 수 있다.
예를 들어, 제1 이미지 입력 방식이 복사 및 붙여넣기(copy & paste)하는 방식이고, 어플리케이션이 제1 이미지 입력 방식을 지원하지 않는 경우에, 전자 장치(100)는 어플리케이션이 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하는 방식, 및/또는 드래그 앤드 드롭(drag & drop)에 의해 이미지를 입력하는 방식을 지원함을 식별할 수 있다.
동작 250에서, 일 실시예에 따른 전자 장치(100)는 제2 이미지 입력 방식으로 이미지를 입력하기 위한 프레임 워크의 코드를 획득할 수 있다. 전자 장치(100)는 어플리케이션의 실행 화면에 입력될 이미지의 링크 정보 및 이미지가 입력될 어플리케이션의 실행 화면 내의 입력 위치에 기초하여, 제2 이미지 입력 방식으로 이미지를 입력하기 위한 프레임 워크의 코드를 획득할 수 있다. 이미지의 링크 정보는, 예를 들어, 이미지의 URI(uniform resource identifier) 정보를 포함할 수 있다. 이미지의 링크 정보는, 예를 들어, 전자 장치에 저장된 이미지의 위치, 클립 보드에 저장된 이미지의 위치, 이미지의 웹 주소 등을 포함할 수 있다.
예를 들어, 프레임 워크 단에서 각 어플리케이션에 따라 지정된 입력 방식에 따른 이미지 핸들러를 지원하지 않는 지를 프레임 워크가 식별할 수 있으며, 지정된 입력 방식을 다른 입력 방식으로 연결해주는 코드가 이미 프레임 워크 단에 생성되어 있을 수 있다. 이에 따라, 전자 장치(100)는 이미 생성되어 있는 프레임 워크의 코드를 선택하고, 선택된 코드에 제1 이미지 입력 방식으로 입력된 이미지(예: 이미지의 링크 정보)를 담아서 전달되도록, 제2 이미지 입력 방식으로 이미지를 입력하기 위한 프레임 워크의 코드를 획득할 수 있다.
예를 들어, 어플리케이션에 의해 지원되며 제1 이미지 입력 방식과 상이한 제2 이미지 입력 방식이 드래그 앤드 드롭에 의해 이미지를 입력하는 방식인 경우에, 전자 장치(100)는 이미지를 드래그 앤드 드롭하기 위한 프레임 워크의 코드를 획득할 수 있다. 예를 들어, 전자 장치(100)는 어플리케이션의 실행 화면 내에서 이미지가 입력될 일부 영역에 대한 DragListener를 등록하기 위한 코드를 획득할 수 있다.
예를 들어, 아래의 표 1의 코드의 적어도 일부를 편집함으로써 이미지를 드래그 앤드 드롭하기 위한 프레임 워크의 코드가 획득될 수 있다.
Figure PCTKR2024008072-appb-img-000001
또한, 예를 들어, 이미지를 드래그 앤드 드롭하기 위한 프레임 워크의 코드를 획득하기 위하여, 아래의 코드(예: pseudo code)가 이용될 수 있다.
Figure PCTKR2024008072-appb-img-000002
예를 들어, 어플리케이션에 의해 지원되며 제1 이미지 입력 방식과 상이한 제2 이미지 입력 방식이 드래그 앤드 드롭에 의해 이미지를 입력하는 방식인 경우에, 전자 장치(100)는 사용자의 입력을 제2 이미지 입력 방식인 드래그 앤드 드롭 방식의 사용자 입력으로 변환할 수 있다. 예를 들어, 제1 이미지 입력 방식인 키보드를 통해 디스플레이되는 이미지 목록으로부터 이미지를 선택하는 사용자 입력이 발생하는 경우, 어플리케이션에 의해 지원되는 드래그 앤드 드롭 방식으로 상기 이미지를 입력할 수 있다.
예를 들어, 어플리케이션에 의해 지원되며 제1 이미지 입력 방식과 상이한 제2 이미지 입력 방식이 복사 및 붙여넣기에 의해 이미지를 입력하는 방식인 경우에, 전자 장치(100)는 이미지를 복사 및 붙여넣기하기 위한 프레임 워크의 코드를 획득할 수 있다. 예를 들어, 전자 장치(100)는 어플리케이션의 실행 화면 내에서 이미지가 입력될 일부 영역에 대한 이미지의 붙여넣기 동작을 오버라이드(override)하기 위한 프레임 워크의 코드를 획득할 수 있다.
예를 들어, 아래의 표 2의 코드의 적어도 일부를 편집함으로써 이미지를 복사 및 붙여넣기하기 위한 프레임 워크의 코드가 획득될 수 있다.
Figure PCTKR2024008072-appb-img-000003
또한, 예를 들어, 이미지를 복사 및 붙여넣기하기 위한 프레임 워크의 코드를 획득하기 위하여, 아래의 코드(예: pseudo code)가 이용될 수 있다.
Figure PCTKR2024008072-appb-img-000004
예를 들어, 어플리케이션에 의해 지원되며 제1 이미지 입력 방식과 상이한 제2 이미지 입력 방식이 복사 및 붙여넣기에 의해 이미지를 입력하는 방식인 경우에, 전자 장치(100)는 사용자의 입력을 제2 이미지 입력 방식인 복사 및 붙여넣기 방식에 의한 사용자 입력으로 변환할 수 있다. 예를 들어, 제1 이미지 입력 방식인 키보드를 통해 디스플레이되는 이미지 목록으로부터 이미지를 선택하는 사용자 입력이 발생하는 경우, 어플리케이션에 의해 지원되는 복사 및 붙여넣기 방식으로 상기 이미지를 입력할 수 있다.
예를 들어, 어플리케이션에 의해 지원되며 제1 이미지 입력 방식과 상이한 제2 이미지 입력 방식이 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하는 방식인 경우에, 전자 장치(100)는 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하기 위한 프레임 워크의 코드를 획득할 수 있다. 예를 들어, 전자 장치(100)는 어플리케이션의 실행 화면 내에서 이미지가 입력될 일부 영역에 이미지를 입력하기 위하여 InputConnection을 오버라이드(override)하기 위한 프레임 워크의 코드를 획득할 수 있다.
예를 들어, 아래의 표 3의 코드의 적어도 일부를 편집함으로써 이미지를 키보드를 통해 입력하기 위한 프레임 워크의 코드가 획득될 수 있다.
Figure PCTKR2024008072-appb-img-000005
또한, 예를 들어, 이미지를 키보드를 통해 입력하기 위한 프레임 워크의 코드를 획득하기 위하여, 아래의 코드(예: pseudo code)가 이용될 수 있다.
Figure PCTKR2024008072-appb-img-000006
예를 들어, 어플리케이션에 의해 지원되며 제1 이미지 입력 방식과 상이한 제2 이미지 입력 방식이 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하는 방식인 경우에, 전자 장치(100)는 사용자 입력을 제2 이미지 입력 방식인 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력 방식에 의한 사용자 입력으로 변환할 수 있다. 예를 들어, 제1 이미지 입력 방식인 드래그 앤드 드롭을 통해 이미지를 입력하는 사용자 입력이 발생하는 경우, 어플리케이션에 의해 지원되는 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하는 방식으로 상기 이미지를 입력할 수 있다.
동작 260에서, 일 실시예에 따른 전자 장치(100)는 제2 이미지 입력 방식을 통하여 이미지를 어플리케이션의 실행 화면 내에 표시할 수 있다. 전자 장치(100)는 동작 250에서 획득된 프레임 워크의 코드를 이용하여 제2 이미지 입력 방식을 통하여 이미지를 어플리케이션의 실행 화면 내의 특정 위치에 표시할 수 있다. 예를 들어, 동작 250에서 획득된 프레임 워크의 코드는 어플리케이션에게 전달될 수 있으며, 어플리케이션은 전달된 프레임 워크의 코드에 기초하여 제2 이미지 입력 방식을 통하여 이미지를 어플리케이션의 실행 화면 내에 표시할 수 있다.이에 따라, 전자 장치(100)는 제1 이미지 입력 방식의 우회 경로가 있는 지를 확인하고, 우회 경로가 존재하는 경우에 우회 경로의 입력 방식(예: 제2 이미지 입력 방식)을 선택하고, 선택된 제2 이미지 입력 방식을 통하여 이미지를 표시할 수 있게 된다. 상기에서는 동작 230, 동작 240, 동작 250 및 동작 260이 별개의 동작인 것으로 설명되었지만, 이에 제한되지 않는다. 동작 230, 동작 240, 동작 250 및 동작 260 중 적어도 둘 이상의 동작들이 전자 장치(100)에 의해 하나의 동작으로 수행될 수도 있다.
동작 230에서의 판단 결과, 어플리케이션이 제1 이미지 입력 방식을 지원한다고 판단되면, 동작 270에서 전자 장치(100)는 제1 이미지 입력 방식에 따라 이미지를 어플리케이션의 실행 화면 내에 입력할 수 있다.
한편, 상기에서는 사용자 입력에 따라 이미지를 어플리케이션의 실행 화면 내에 입력하는 것으로 설명되었지만, 이에 제한되지 않는다. 예를 들어, 전자 장치(100)는 이미지 외의 다른 데이터 파일을 어플리케이션의 실행 화면 내에 입력할 수 있다. 이 경우, 이미지 입력 방식은 데이터 입력 방식일 수 있으며, 데이터를 입력하기 위한 프레임 워크의 코드가 획득될 수 있다.
일 실시예에 따르면, 어플리케이션에 데이터를 삽입하기 위한 사용자 입력이 어플리케이션에 의해 지원되지 않는 경우에도, 다른 데이터 입력 방식을 위한 프레임 워크의 코드를 수정 또는 선택함으로써, 어플리케이션의 코드를 수정하지 않고 사용자 입력에 따른 데이터 입력 동작이 수행될 수 있으며, 이에 따라 사용자 경험이 향상될 수 있다.
도 3은 본 개시의 일 실시예에 따른 전자 장치가 키보드를 통해 이미지를 입력하는 사용자 입력에 따라 어플리케이션에 이미지를 입력하는 방법의 흐름도이다.
이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다.
일 실시 예에 따르면, 동작 300 내지 370은 전자 장치(예: 도 1의 전자 장치(100) 및/또는 도 9의 전자 장치(901))의 프로세서(예: 도 9의 프로세서(920))에서 수행되는 것으로 이해될 수 있다.
도 3에서는, 제1 이미지 입력 방식이 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하는 방식일 수 있다.
동작 300에서, 일 실시예에 따른 전자 장치(100)는 어플리케이션의 입력 필드를 선택하는 사용자 입력을 수신할 수 있다. 어플리케이션의 입력 필드는, 어플리케이션에 대한 사용자 입력을 수신하기 위한 GUI(graphical user interface)의 적어도 일부일 수 있다. 입력 필드는, 예를 들어, 키보드 어플리케이션과 연동되어 사용자의 키보드 입력을 수신하기 위한 필드일 수 있다.
예를 들어, 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하는 방식은, 키보드 어플리케이션을 통해 이미지를 디스플레이하고 디스플레이된 이미지를 사용자가 선택하는 입력 방식을 포함할 수 있으며, 사용자의 손가락 또는 스타일러스 펜에 의한 터치 입력을 포함할 수 있다.
하지만, 제1 이미지 입력 방식은 이에 제한되지 않으며, 디스플레이에 이미지를 입력하기 위한 다양한 이미지 입력 방식일 수 있다. 예를 들어, 제1 이미지 입력 방식은, 전자 장치(100)의 디스플레이에 다양한 방식으로 표시되는 이미지에 대한 사용자 입력에 따른 입력 방식일 수 있으며, 예를 들어, 사용자 입력은 키보드 어플리케이션 뿐만 아니라 어플리케이션의 실행 화면 내 표시 된 이미지에 대한 선택 입력일 수 있다.
일 실시예에 따르면, 입력 필드를 선택하는 사용자 입력이 수신됨에 따라, 전자 장치(100)는 어플리케이션의 입력 필드에 가까운 일부 영역부터 일부 영역이 드래그 앤드 드롭에 의해 이미지를 입력하는 방식을 지원하는 지를 식별할 수 있다. 예를 들어, 전자 장치(100)는 어플리케이션의 입력 필드에 가까운 일부 영역부터 DragListener 동작을 지원하는 일부 영역을 검색할 수 있다. 또한, 전자 장치(100)는, 예를 들어, 검색된 일부 영역의 Listener를 드래그 앤드 드롭 입력 방식에 따른 이미지 입력 동작을 위하여 시스템을 위해 저장할 수 있다. 사용자가 입력 필드를 선택하는 경우에 전자 장치9100)가 드래그 가능한 View의 리스너를 미리 식별하여 저장함으로써, 사용자의 이미지 입력에 대한 전자 장치(100)의 반응 속도를 향상시킬 수 있게 된다.
동작 310에서, 일 실시예에 따른 전자 장치(100)는 키보드 어플리케이션의 실행 화면을 표시할 수 있다. 어플리케이션의 입력 필드가 선택됨에 따라, 전자 장치(100)는 키보드 어플리케이션의 실행 화면을 전자 장치(100)의 화면 상에 디스플레이할 수 있다.
동작 320에서, 일 실시예에 따른 전자 장치(100)는 키보드 어플리케이션에 대한 사용자 입력에 따라 입력될 이미지 및 이미지의 입력 위치를 식별할 수 있다. 전자 장치(100)는 키보드 어플리케이션에 대한 사용자 입력에 따라 어플리케이션의 실행 화면 내에 입력될 이미지 및 이미지의 입력 위치를 식별할 수 있다. 예를 들어, 전자 장치(100)는 키보드 어플리케이션의 실행 화면 내에서 이미지의 목록을 디스플레이하기 위한 객체를 선택하는 사용자 입력을 수신하고, 디스플레이된 이미지 목록에서 어플리케이션에 입력될 이미지를 선택하는 사용자 입력을 수신할 수 있다. 이 경우, 예를 들어, 전자 장치(100)는 이미지 목록에서 선택된 이미지를 어플리케이션에 입력될 이미지로 식별할 수 있다. 또한, 예를 들어, 어플리케이션의 입력 필드를 선택하는 사용자 입력에 따라 키보드 어플리케이션이 활성화되었으므로, 전자 장치(100)는 입력 필드 및/또는 입력 필드에 입력된 값이 입력될 어플리케이션의 실행 화면의 일부 영역을 이미지의 입력 위치로 식별할 수 있다. 예를 들어, 이미지의 입력 영역은, 어플리케이션의 실행 화면을 구성하는 GUI 내의 구분되는 영역들 중 하나일 수 있다. 예를 들어, 이미지의 입력 영역은, 어플리케이션의 실행 화면의 GUI 내의 입력 필드 영역, 데이터 표시 영역 등을 포함할 수 있다.
동작 330에서, 일 실시예에 따른 전자 장치(100)는 어플리케이션이 키보드를 통한 이미지 입력 방식을 지원하는 지를 판단할 수 있다. 예를 들어, 전자 장치(100)는 어플리케이션이 키보드의 핸들러(handler)를 포함하는 지를 판단할 수 있다. 하지만, 이에 제한되지 않으며, 전자 장치(100)는 어플리케이션이 핸들러를 가지고 있는지 여부를 판단하는 방식 이외의 다양한 방식을 통하여 어플리케이션이 지원하는 이미지 입력 방식을 판단할 수 있다.
동작 330에서의 판단 결과, 어플리케이션이 키보드를 통한 이미지 입력 방식을 지원하는 않는다고 판단되면, 동작 340에서 전자 장치(100)는 어플리케이션의 실행 화면 내에서 제2 이미지 입력 방식을 지원하는 일부 영역을 식별할 수 있다. 예를 들어, 전자 장치(100)는 어플리케이션의 실행 화면에서, 드래그 앤드 드롭에 의해 이미지를 입력하는 방식을 지원하는 일부 영역을 식별할 수 있다. 일 실시예에 따르면, 사용자 입력을 수신하기 전이라도 전자 장치(100)는 어플리케이션에 의해 지원되는 이미지 입력 방식을 식별하는 동작을 어플리케이션 실행 시 미리 수행할 수도 있다.
일 실시예에 따르면, 전자 장치(100)는 어플리케이션의 입력 필드에 가까운 일부 영역부터 일부 영역이 드래그 앤드 드롭에 의해 이미지를 입력하는 방식을 지원하는 지를 식별할 수 있다. 예를 들어, 동작 340에서, 전자 장치(100)는 어플리케이션의 입력 필드에 가까운 일부 영역부터 DragListener 동작을 지원하는 일부 영역을 미리 검색할 수 있다. 또한, 전자 장치(100)는, 예를 들어, 검색된 일부 영역의 Listener를 드래그 앤드 드롭 입력 방식에 따른 이미지 입력 동작을 위하여 시스템을 위해 미리 저장할 수 있다. 이에 따라, 전자 장치(100)는 드래그 앤드 드롭에 의해 이미지를 입력하는 방식을 지원하는 일부 영역을 보다 신속하게 식별할 수 있으며, 사용자의 이미지 입력에 대한 전자 장치(100)의 반응 속도를 향상시킬 수 있게 된다.
동작 350에서, 일 실시예에 따른 전자 장치(100)는 제2 이미지 입력 방식으로 이미지를 입력하기 위한 프레임 워크의 코드를 획득할 수 있다. 예를 들어, 프레임 워크 단에서 각 어플리케이션에 따라 지정된 입력 방식에 따른 이미지 핸들러를 지원하지 않는지를 프레임 워크가 식별할 수 있으며, 지정된 입력 방식을 다른 입력 방식으로 연결해주는 코드가 이미 프레임 워크 단에 생성되어 있을 수 있다. 이에 따라, 전자 장치(100)는 이미 생성되어 있는 프레임 워크의 코드를 선택하고, 선택된 코드에 제1 이미지 입력 방식으로 입력된 이미지를 담아서 전달되도록, 제2 이미지 입력 방식으로 이미지를 입력하기 위한 프레임 워크의 코드를 획득할 수 있다. 전자 장치(100)는, 예를 들어, 도 10과 같은 소프트웨어 스택에서, 제2 이미지 입력 방식을 위한 프레임 워크 단의 코드를 획득하고, 획득된 코드를 어플리케이션에게 제공할 수 있다. 프레임 워크는 어플리케이션의 동작에 필요한 기능 및 아키텍처를 제공할 수 있다. 예를 들어, 도 10의 소프트웨어 스택의 프레임 워크(10) 내의 View System (11)은 어플리케이션에 복수의 뷰를 제공할 수 있다. 복수의 뷰는, 예를 들어, 아이콘, 텍스트, 이미지 등의 UI 컴포넌트들일 수 있다. 예를 들어, View System (11)은 이미지 입력 방식의 변경을 위한 기능들을 제공할 수 있다. 예를 들어, View System(11)의 View / TextView 등이 해당 뷰의 이미지 입력 이벤트를 다른 이미지 입력 방식의 입력 이벤트로 변경하는 방법을 제공할 수 있다.
예를 들어, 제2 이미지 입력 방식이 드래그 앤드 드롭에 의해 이미지를 입력하는 방식인 경우에, 전자 장치(100)는 이미지를 드래그 앤드 드롭하기 위한 프레임 워크의 코드를 획득할 수 있다. 예를 들어, 전자 장치(100)는 드래그 앤드 드롭의 그래픽 핸들러를 위한 코드를 획득할 수 있다. 예를 들어, 전자 장치(100)는 어플리케이션의 실행 화면 내에서 이미지가 입력될 일부 영역에 대한 DragListener를 등록하기 위한 코드를 획득할 수 있다. 이에 따라, 키보드 입력 방식으로 입력된 사용자 입력으로부터 식별되는 이미지 및 이미지의 입력 위치가, DragListener의 source data와 destination으로 이용될 수 있으며, 어플리케이션은 DragListener의 source data와 destination 값에 기초하여 drop 액션(ACTION_DROP)을 수행함으로써, 드래그 앤드 드롭 방식으로 이미지를 어플리케이션의 실행 화면에 입력할 수 있게 된다. 이 경우, 예를 들어, 다른 종류의 액션들(예: ACTION_DRAG_STARTED, ACTION_DRAG_ENTERED, ACTION_DRAG_EXITED, ACTION_DRAG_ENDED) 중 적어도 하나의 액션의 수행은 생략될 수 있다.
예를 들어, 제2 이미지 입력 방식이 복사 및 붙여넣기에 의해 이미지를 입력하는 방식인 경우에, 전자 장치(100)는 이미지를 복사 및 붙여넣기하기 위한 프레임 워크의 코드를 획득할 수 있다. 예를 들어, 전자 장치(100)는 복사 및 붙여넣기의 그래픽 핸들러를 위한 코드를 획득할 수 있다. 예를 들어, 전자 장치(100)는 어플리케이션의 실행 화면 내에서 이미지가 입력될 일부 영역에 대한 이미지의 붙여넣기 동작을 오버라이드(override)하기 위한 프레임 워크의 코드를 획득할 수 있다.
또한, 예를 들어, 이미지 입력 방식의 변환(예: 제1 이미지 입력 방식에서 제2 이미지 입력 방식으로의 변환)을 위해, 소프트웨어 스택에서 프레임 워크 이외 영역의 소스 코드를 획득(예: 편집, 생성, 추가)함으로써, 어플리케이션이 제2 이미지 입력 방식으로 이미지를 어플리케이션의 실행 화면 상에 표시하도록 할 수도 있다.
동작 360에서, 일 실시예에 따른 전자 장치(100)는 프레임 워크의 코드를 어플리케이션에게 제공할 수 있다. 어플리케이션은 제공받은 프레임 워크의 코드에 기초하여, 제2 이미지 입력 방식을 통하여 이미지를 어플리케이션의 실행 화면 내의 특정 위치에 표시할 수 있다.
한편, 동작 330에서의 판단 결과, 어플리케이션이 키보드를 통한 이미지 입력 방식을 지원한다고 판단되면, 동작 370에서 전자 장치(100)는 이미지를 어플리케이션의 실행 화면 내에 입력할 수 있다.
한편, 상기에서는 사용자 입력에 따라 이미지를 어플리케이션의 실행 화면 내에 입력하는 것으로 설명되었지만, 이에 제한되지 않는다. 예를 들어, 전자 장치(100)는 이미지 외의 다른 데이터 파일을 어플리케이션의 실행 화면 내에 입력할 수 있다. 이 경우, 이미지 입력 방식은 데이터 입력 방식일 수 있으며, 데이터를 입력하기 위한 프레임 워크의 코드가 생성될 수 있다.
일 실시예에 따르면, 어플리케이션에 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 데이터를 입력하는 사용자 입력이 어플리케이션에 의해 지원되지 않는 경우에도, 다른 데이터 입력 방식을 위한 프레임 워크의 코드를 수정 또는 선택함으로써, 어플리케이션의 코드를 수정하지 않고 사용자 입력에 따른 데이터 입력 동작이 수행될 수 있으며, 이에 따라 사용자 경험이 향상될 수 있다.
도 4a는 본 개시의 일 실시예에 따른 어플리케이션의 실행 화면의 예시를 나타내는 도면이다.
도 4a를 참조하면, 어플리케이션의 실행 화면은 입력 필드(40)를 포함할 수 있으며, 전자 장치(100)는 입력 필드(40)을 선택하는 사용자 입력을 수신할 수 있다. 예를 들어, 어플리케이션은 메신저 어플리케이션일 수 있으며, 전자 장치(100)는 메신저 어플리케이션에 텍스트를 입력하기 위한 입력 필드(40)을 선택하는 사용자 입력을 수신할 수 있다. 하지만, 이에 제한되지 않으며, 어플리케이션은, 메신저 어플리케이션 뿐만 아니라, 키보드를 통한 이미지 입력이 가능한 다양한 어플리케이션일 수 있다. 예를 들어, 어플리케이션은 메일 어플리케이션, 워드 어플리케이션, 노트 어플리케이션, 게임 어플리케이션, 채팅 어플리케이션일 수 있으나, 이에 제한되지 않는다. 등의 예를 추가)
도 4b는 본 개시의 일 실시예에 따른 어플리케이션의 실행 화면 및 키보드 어플리케이션의 실행 화면이 디스플레이된 예시를 나타내는 도면이다.
도 4b를 참조하면, 입력 필드(40)가 사용자에 의해 선택됨에 따라, 전자 장치(100)는 키보드 어플리케이션의 실행 화면(41)을 전자 장치(100)의 화면 상에 디스플레이할 수 있다. 예를 들어, 키보드 어플리케이션은, 구글 키보드, 삼성 키보드 등과 같이 단말에 미리 설치된 키보드 어플리케이션이거나 어플리케이션 스토어를 통해 다운로드 받아 설치되는 키보드 어플리케이션일 수 있다. 일 실시예에 따르면, 키보드 어플리케이션의 실행 화면(41) 내에는 키보드 어플리케이션을 통해 이미지를 입력하도록 하기 위한 오브젝트(42)가 포함될 수 있다. 또한, 전자 장치(100)는 키보드 어플리케이션의 실행 화면(41) 내의 오브젝트(42)를 선택하는 사용자 입력을 수신할 수 있다.
도 4c는 본 개시의 일 실시예에 따른 키보드 어플리케이션의 실행 화면 내에 이미지 목록이 디스플레이되고 이미지 목록에서 선택된 이미지가 입력 필드 내에 디스플레이되는 예시를 나타내는 도면이다.
도 4c의 식별 번호 7을 참조하면, 도 4a에서 입력 필드(40)가 선택됨에 따라, 전자 장치(100)는 키보드를 통한 이미지 입력 방식이 어플리케이션에 의해 지원되지 않음을 식별할 수 있다. 상기 식별하는 동작은 입력 필드가 선택됨에 따라 동작할 수 있으며, 예를 들어, 도 4b의 키보드 어플리케이션의 실행 화면(41) 내의 오브젝트(42)를 선택하는 사용자 입력을 수신하는 경우, 또는 이미지(45)를 선택하는 사용자 입력을 수신하는 경우에, 수행될 수 있다. 키보드를 통한 이미지 입력 방식이 어플리케이션에 의해 지원되지 않음이 식별됨에 따라, 전자 장치(100)는 어플리케이션의 실행 화면 내에서 드래그 앤드 드롭의 입력 방식을 지원하는 일부 영역(44)을 검색할 수 있다.
또한, 도 4b에서 오브젝트(42)가 선택됨에 따라, 이미지 목록(43)이 키보드 어플리케이션의 실행 화면 내에 디스플레이될 수 있다. 전자 장치(100)는 이미지 목록(43) 내의 이미지들 중에서 이미지(45)를 선택하는 사용자 입력을 수신할 수 있다. 예를 들어, 이미지는, 정지영상, 동영상, GIF 이미지, 소리가 포함된 이미지, 이모티콘, 이모지 등의 다양한 타입의 이미지를 포함할 수 있다.
키보드를 통한 이미지 입력 방식이 어플리케이션에 의해 지원되지 않는 경우에, 이미지 목록(43) 내의 이미지들이 표시될 수 없다. 예를 들어, 키보드를 통한 이미지 입력 방식이 어플리케이션에 의해 지원되지 않는 경우에, 이미지 목록(43) 내의 이미지들은 표시되지 않고, 이미지가 표시될 영역이 예를 들어 빗금 또는 그레이 색상이 표시될 수 있다. 하지만, 본 개시의 일 실시예에 따르면, 어플리케이션이 키보드를 통한 이미지 입력 방식을 지원하지 않더라도, 어플리케이션에 의해 지원되는 다른 입력 방식을 통하여 이미지들을 우회하여 입력할 수 있으므로, 도 4c에서와 같이, 마치 어플리케이션이 키보드를 통한 이미지 입력 방식을 지원하는 애플리케이션인 것처럼, 이미지 목록(43) 내에 이미지들이 표시될 수 있다.
도 4c의 식별 번호 8을 참조하면, 도 4c의 식별 번호 7에서 이미지(45)가 선택됨에 따라, 입력 필드(49) 내에 이미지(45)가 입력되고 표시될 수 있다. 전자 장치(100)는 이미지(45)의 링크 정보를 획득하고, 드래드 앤드 드롭을 지원하는 입력 필드(49)의 화면 상의 위치를 식별할 수 있다. 전자 장치(100)는 이미지(45)의 링크 정보 및 입력 필드(49)의 화면 상의 위치에 기초하여, 드래그 앤드 드롭의 이미지 입력을 위한 프레임 워크의 코드를 획득할 수 있다. 또한, 전자 장치(100)는 획득된 코드를 어플리케이션에게 제공할 수 있으며, 어플리케이션은 수신된 코드에 기초하여 입력 필드(49) 내에 이미지(45)가 표시되도록 할 수 있다.
일 실시예에 따르면, 입력 필드(49) 내에 표시되는 이미지(45)는 이미지 목록(43) 내에 표시되는 이미지(45)보다 작은 사이즈로 표시될 수 있다.
도 4d는 본 개시의 일 실시예에 따른 어플리케이션의 실행 화면 내에 이미지가 입력된 예시를 나타내는 도면이다.
도 4c에서 이미지(45)가 선택됨에 따라, 전자 장치(100)는 이미지(45)의 링크 정보를 획득하고, 드래드 앤드 드롭을 지원하는 일부 영역(44)의 화면 상의 위치를 식별할 수 있다. 도 4d를 참조하면, 전자 장치(100)는 이미지(45)의 링크 정보 및 일부 영역(44)의 화면 상의 위치에 기초하여, 드래그 앤드 드롭의 이미지 입력을 위한 프레임 워크의 코드를 획득할 수 있다. 또한, 전자 장치(100)는 생성된 코드를 어플리케이션에게 제공할 수 있으며, 어플리케이션은 수신된 코드에 기초하여 일부 영역(44) 내에 이미지(45)가 표시되도록 할 수 있다.
예를 들어, 도 4c의 식별번호 7에서 이미지 목록(43)에서 이미지(45)가 선택될 경우에, 도 4c의 식별번호 8에서와 같이 이미지(45)가 입력 필드(49) 내에 표시되고 사용자의 추가적인 입력(예: 전송 버튼을 선택하는 사용자 입력)을 통하여 최종적으로 어플리케이션에 입력되거나, 도 4d에서와 같이 일부 영역(44)에 이미지가 바로 입력될 수 있다.
도 5는 본 개시의 일 실시예에 따른 전자 장치가 이미지를 드래그 앤드 드롭하는 사용자 입력에 따라 어플리케이션에 이미지를 입력하는 방법의 흐름도이다.
이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다.
일 실시 예에 따르면, 동작 500 내지 570은 전자 장치(예: 도 1의 전자 장치(100) 및/또는 도 9의 전자 장치(901))의 프로세서(예: 도 9의 프로세서(920))에서 수행되는 것으로 이해될 수 있다.
도 5에서는, 제1 이미지 입력 방식이 이미지를 드래그 앤드 드롭하는 사용자 입력에 따라 이미지를 입력하는 방식일 수 있다.
동작 500에서, 일 실시예에 따른 전자 장치(100)는 제1 어플리케이션의 실행 화면 및 제2 어플리케이션의 실행 화면을 함께 디스플레이할 수 있다. 전자 장치(100)는 제2 어플리케이션의 실행 화면 내에 이미지가 표시될 수 있으며, 전자 장치(100)는 제2 어플리케이션의 실행 화면 내의 이미지를 제1 어플리케이션의 실행 화면으로 드래그 앤드 드롭할 수 있도록, 제1 어플리케이션의 실행 화면 및 제2 어플리케이션의 실행 화면을 전자 장치(100)의 화면 상에 함께 디스플레이할 수 있다.
동작 510에서, 일 실시예에 따른 전자 장치(100)는 제2 어플리케이션의 실행 화면 내의 이미지를 제1 어플리케이션의 실행 화면으로 드래그 앤드 드롭하는 사용자 입력을 수신할 수 있다. 전자 장치(100)는 제2 어플리케이션의 실행 화면 내의 이미지를 선택하고, 선택된 이미지를 제1 어플리케이션의 실행 화면으로 드래그하고, 제1 어플리케이션의 실행 화면으로 드래그된 이미지를 드롭하는 사용자 입력을 수신할 수 있다.
동작 520에서, 일 실시예에 따른 전자 장치(100)는 드래그 앤드 드롭하는 사용자 입력에 따라 제1 어플리케이션의 실행 화면에 입력될 이미지 및 사용자 입력의 입력 위치를 식별할 수 있다. 예를 들어, 전자 장치(100)는 드래그 앤드 드롭의 사용자 입력의 대상이 된 이미지를 식별할 수 있다. 예를 들어, 전자 장치(100)는 드래그된 이미지가 드롭된 위치에 기초하여, 제1 어플리케이션의 실행 화면 내에서 이미지가 입력될 입력 위치를 식별할 수 있다. 이 경우, 이미지가 입력될 입력 위치는 제1 어플리케이션의 실행 화면 내의 일부 영역일 수 있다.
동작 530에서, 일 실시예에 따른 전자 장치(100)는 제1 어플리케이션이 드래그 앤드 드롭의 사용자 입력을 통한 이미지 입력 방식을 지원하는지를 판단할 수 있다. 예를 들어, 전자 장치(100)는 제1 어플리케이션이 드래그 앤드 드롭의 그래픽 핸들러를 가지고 있는 지를 판단할 수 있다.
동작 530에서의 판단 결과, 제1 어플리케이션이 드래드 앤드 드롭의 사용자 입력을 통한 이미지 입력 방식을 지원하는 않는다고 판단되면, 동작 540에서 전자 장치(100)는 제1 어플리케이션의 실행 화면 내에서 제2 이미지 입력 방식을 지원하는 일부 영역을 식별할 수 있다.
동작 550에서, 일 실시예에 따른 전자 장치(100)는 제2 이미지 입력 방식으로 이미지를 입력하기 위한 프레임 워크의 코드를 획득할 수 있다.
예를 들어, 프레임 워크 단에서 각 어플리케이션에 따라 지정된 입력 방식에 따른 이미지 핸들러를 지원하지 않는 지를 프레임 워크가 식별할 수 있으며, 지정된 입력 방식을 다른 입력 방식으로 연결해주는 코드가 이미 프레임 워크 단에 생성되어 있을 수 있다. 이에 따라, 전자 장치(100)는 이미 생성되어 있는 프레임 워크의 코드를 선택하고, 선택된 코드에 제1 이미지 입력 방식으로 입력된 이미지를 담아서 전달되도록, 제2 이미지 입력 방식으로 이미지를 입력하기 위한 프레임 워크의 코드를 획득할 수 있다.
예를 들어, 제2 이미지 입력 방식이 복사 및 붙여넣기에 의해 이미지를 입력하는 방식인 경우에, 전자 장치(100)는 이미지를 복사 및 붙여넣기하기 위한 프레임 워크의 코드를 획득할 수 있다. 예를 들어, 전자 장치(100)는 복사 및 붙여넣기의 그래픽 핸들러를 위한 코드를 획득할 수 있다. 예를 들어, 전자 장치(100)는 제1 어플리케이션의 실행 화면 내에서 이미지가 입력될 일부 영역에 대한 이미지의 붙여넣기 동작을 오버라이드(override)하기 위한 프레임 워크의 코드를 획득할 수 있다.
예를 들어, 제2 이미지 입력 방식이 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하는 방식인 경우에, 전자 장치(100)는 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하기 위한 프레임 워크의 코드를 생성할 수 있다. 예를 들어, 전자 장치(100)는 키보드를 통한 이미지 입력을 위하여 키보드 핸들러를 위한 코드를 생성할 수 있다. 예를 들어, 전자 장치(100)는 제1 어플리케이션의 실행 화면 내에서 이미지가 입력될 일부 영역에 이미지를 입력하기 위하여 InputConnection을 오버라이드(override)하기 위한 프레임 워크의 코드를 생성할 수 있다.
동작 560에서, 일 실시예에 따른 전자 장치(100)는 프레임 워크의 코드를 제1 어플리케이션에게 제공할 수 있다. 제1 어플리케이션은 제공받은 프레임 워크의 코드에 기초하여, 제2 이미지 입력 방식을 통하여 이미지를 제1 어플리케이션의 실행 화면 내의 특정 위치에 표시할 수 있다.
한편, 동작 530에서의 판단 결과, 제1 어플리케이션이 드래드 앤드 드롭의 사용자 입력을 통한 이미지 입력 방식을 지원한다고 판단되면, 동작 570에서 전자 장치(100)는 이미지를 제1 어플리케이션의 실행 화면 내에 입력할 수 있다.
한편, 상기에서는 사용자 입력에 따라 이미지를 어플리케이션의 실행 화면 내에 입력하는 것으로 설명되었지만, 이에 제한되지 않는다. 예를 들어, 전자 장치(100)는 이미지 외의 다른 데이터 파일을 어플리케이션의 실행 화면 내에 입력할 수 있다. 이 경우, 이미지 입력 방식은 데이터 입력 방식일 수 있으며, 데이터를 입력하기 위한 프레임 워크의 코드가 생성될 수 있다.
일 실시예에 따르면, 어플리케이션에 드래그 앤드 드롭에 의해 데이터를 입력하는 사용자 입력이 어플리케이션에 의해 지원되지 않는 경우에도, 다른 데이터 입력 방식을 위한 프레임 워크의 코드를 수정 또는 생성함으로써, 어플리케이션의 코드를 수정하지 않고 사용자 입력에 따른 데이터 입력 동작이 수행될 수 있으며, 이에 따라 사용자 경험이 향상될 수 있다.
도 6은 본 개시의 일 실시예에 따른 드래그 앤드 드롭의 사용자 입력이 수신되는 경우에 어플리케이션에 이미지가 입력되는 예시를 나타내는 도면이다.
도 6의 식별 번호 3을 참조하면, 전자 장치(100)의 화면 상에 제1 어플리케이션의 실행 화면(60) 및 제2 어플리케이션의 실행 화면(62)이 디스플레이될 수 있다. 예를 들어, 제1 어플리케이션은 메시지를 전송하기 위한 어플리케이션이고, 제2 어플리케이션은 인터넷 브라우징을 위한 어플리케이션일 수 있다.
전자 장치(100)는 제1 어플리케이션의 실행 화면(60) 및 제2 어플리케이션의 실행 화면(62)을 멀티 윈도우를 통해 함께 디스플레이할 수 있다.
전자 장치(100)는 제2 어플리케이션의 실행 화면(62) 내의 이미지(63)를 제1 어플리케이션의 실행 화면(60) 내의 입력 필드(61)로 드래그 앤드 드롭하는 사용자 입력을 수신할 수 있다. 일 실시예에 따르면, 드래그 앤드 드롭하는 사용자 입력을 수신하기 이전에 전자 장치(100)가 드래그 앤드 드롭의 이미지 입력 방식을 지원하는 지를 미리 식별할 수 있으나, 이에 제한되지 않는다
도 6의 식별 번호 4를 참조하면, 전자 장치(100)는 이미지(63)가 제1 어플리케이션의 실행 화면(60) 내의 입력 필드(61)로 드롭됨에 따라, 이미지(63)의 링크 정보를 획득하고, 키보드를 통한 이미지 입력 방식을 지원하는 제1 어플리케이션의 실행 화면(60) 내의 일부 영역으로서 입력 필드(61)의 화면 상의 위치를 식별할 수 있다. 전자 장치(100)는 이미지(63)의 링크 정보 및 입력 필드(61)에 기초하여, 키보드를 통한 이미지 입력 방식의 이미지 입력을 위한 프레임 워크의 코드를 생성할 수 있다. 또한, 전자 장치(100)는 생성된 코드를 제1 어플리케이션에게 제공할 수 있으며, 제1 어플리케이션은 수신된 코드에 기초하여 입력 필드(61) 내에 이미지(63)가 표시되도록 할 수 있다. 이와 같이, 본 개시는 애플리케이션의 코드를 수정하지 않고 프레임 워크의 중간 동작을 변경하여 이미지 붙여넣기를 가능하게 함으로써 사용자 경험을 향상시킬 수 있다.
일 실시예에 따르면, 입력 필드(61) 내에 표시되는 이미지(63)는 제2 어플리케이션의 실행 화면(62) 내에 표시되는 이미지(63)보다 작은 사이즈로 표시될 수 있다.
도 7은 본 개시의 일 실시예에 따른 전자 장치가 이미지를 붙여 넣기하는 사용자 입력에 따라 어플리케이션에 이미지를 입력하는 방법의 흐름도이다.
이하 실시예에서 각 동작들은 순차적으로 수행될 수도 있으나, 반드시 순차적으로 수행되는 것은 아니다. 예를 들어, 각 동작들의 순서가 변경될 수도 있으며, 적어도 두 동작들이 병렬적으로 수행될 수도 있다.
일 실시 예에 따르면, 동작 700 내지 760은 전자 장치(예: 도 1의 전자 장치(100) 및/또는 도 9의 전자 장치(901))의 프로세서(예: 도 9의 프로세서(920))에서 수행되는 것으로 이해될 수 있다.
도 7에서는, 제1 이미지 입력 방식이 이미지를 붙여 넣기하는 사용자 입력에 따라 이미지를 입력하는 방식일 수 있다.
동작 700에서, 일 실시예에 따른 전자 장치(100)는 어플리케이션의 실행 화면에 이미지를 붙여 넣기하기 위한 사용자 입력을 수신할 수 있다. 예를 들어, 어플리케이션의 실행 화면 내에서 이미지를 입력하고자 하는 위치를 선택(예: 롱 터치, 우클릭)하는 사용자 입력이 수신되면, 전자 장치(100)는 붙여 넣기(paste)를 위한 객체를 포함하는 메뉴를 디스플레이할 수 있다. 예를 들어, 어플리케이션이 이미지를 붙여넣기하는 기능을 지원하지 않더라도 텍스트를 붙여넣기하는 기능을 지원할 수 있으며, 이 경우, 어플리케이션의 실행 화면에 대한 사용자 입력(예: 롱 터치, 우클릭)에 기초하여, 전자 장치(100)는 붙여 넣기를 위한 객체를 포함하는 메뉴를 디스플레이할 수 있다. 또한, 예를 들어, 붙여 넣기를 위한 객체를 선택하는 사용자 입력을 수신할 수 있으며, 클립 보드에 저장된 이미지들의 목록을 디스플레이할 수 있다. 또한, 전자 장치(100)는 클립 보드에서 이미지를 선택하는 사용자 입력을 수신할 수 있다. 예를 들어, 클립 보드에 저장된 이미지들은 적어도 하나의 다른 어플리케이션에 대한 사용자 입력에 기초하여, 적어도 하나의 다른 어플리케이션에 의해 클립보드에 저장된 이미지들일 수 있다.
동작 710에서, 일 실시예에 따른 전자 장치(100)는 사용자 입력에 따라 입력될 이미지 및 입력 위치를 식별할 수 있다. 전자 장치(100)는 클립 보드에 저장된 이미지들의 목록에서 선택된 이미지를 식별할 수 있다. 또한, 어플리케이션의 실행 화면 내에서 이미지를 입력하고자 하는 위치를 선택(예: 롱 터치, 우클릭)하는 사용자 입력에 기초하여, 이미지의 입력 위치를 식별할 수 있다.
동작 720에서, 일 실시예에 따른 전자 장치(100)는 어플리케이션이 이미지의 붙여 넣기를 통한 이미지 입력 방식을 지원하는지를 판단할 수 있다. 예를 들어, 전자 장치(100)는 이미지의 입력 위치를 포함하는 어플리케이션이 붙여 넣기의 그래픽 핸들러를 가지고 있는 지를 판단할 수 있다.
동작 720에서의 판단 결과, 어플리케이션이 이미지의 붙여 넣기를 통한 이미지 입력 방식을 지원하는 않는다고 판단되면, 동작 730에서 전자 장치(100)는 어플리케이션의 실행 화면 내에서 제2 이미지 입력 방식을 지원하는 일부 영역을 식별할 수 있다.
동작 740에서, 일 실시예에 따른 전자 장치(100)는 제2 이미지 입력 방식으로 이미지를 입력하기 위한 프레임 워크의 코드를 생성할 수 있다.
예를 들어, 제2 이미지 입력 방식이 드래그 앤드 드롭에 의해 이미지를 입력하는 방식인 경우에, 전자 장치(100)는 이미지를 드래그 앤드 드롭하기 위한 프레임 워크의 코드를 생성할 수 있다. 예를 들어, 전자 장치(100)는 드래그 앤드 드롭의 그래픽 핸들러를 위한 코드를 생성할 수 있다. 예를 들어, 전자 장치(100)는 어플리케이션의 실행 화면 내에서 이미지가 입력될 일부 영역에 대한 DragListener를 등록하기 위한 코드를 생성할 수 있다.
예를 들어, 제2 이미지 입력 방식이 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하는 방식인 경우에, 전자 장치(100)는 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하기 위한 프레임 워크의 코드를 생성할 수 있다. 예를 들어, 전자 장치(100)는 키보드를 통한 이미지 입력을 위하여 키보드 핸들러를 위한 코드를 생성할 수 있다. 예를 들어, 전자 장치(100)는 어플리케이션의 실행 화면 내에서 이미지가 입력될 일부 영역에 이미지를 입력하기 위하여 InputConnection을 오버라이드(override)하기 위한 프레임 워크의 코드를 생성할 수 있다.
동작 750에서, 일 실시예에 따른 전자 장치(100)는 프레임 워크의 코드를 어플리케이션에게 제공할 수 있다. 어플리케이션은 제공받은 프레임 워크의 코드에 기초하여, 제2 이미지 입력 방식을 통하여 이미지를 어플리케이션의 실행 화면 내의 특정 위치에 표시할 수 있다.
한편, 동작 720에서의 판단 결과, 어플리케이션이 이미지의 붙여 넣기를 통한 이미지 입력 방식을 지원한다고 판단되면, 동작 760에서 전자 장치(100)는 이미지를 어플리케이션의 실행 화면 내에 입력할 수 있다.
한편, 상기에서는 사용자 입력에 따라 이미지를 어플리케이션의 실행 화면 내에 입력하는 것으로 설명되었지만, 이에 제한되지 않는다. 예를 들어, 전자 장치(100)는 이미지 외의 다른 데이터 파일을 어플리케이션의 실행 화면 내에 입력할 수 있다. 이 경우, 이미지 입력 방식은 데이터 입력 방식일 수 있으며, 데이터를 입력하기 위한 프레임 워크의 코드가 생성될 수 있다.
일 실시예에 따르면, 어플리케이션에 복사 및 붙여넣기를 통해 데이터를 입력하는 사용자 입력이 어플리케이션에 의해 지원되지 않는 경우에도, 다른 데이터 입력 방식을 위한 프레임 워크의 코드를 수정 또는 생성함으로써, 어플리케이션의 코드를 수정하지 않고 사용자 입력에 따른 데이터 입력 동작이 수행될 수 있으며, 이에 따라 사용자 경험이 향상될 수 있다.
도 8은 본 개시의 일 실시예에 따른 이미지 붙여 넣기를 위한 사용자 입력이 수신되는 경우에 어플리케이션에 이미지가 입력되는 예시를 나타내는 도면이다.
도 8의 식별 번호 5를 참조하면, 어플리케이션의 실행 화면 상에 클립 보드에 저장된 이미지 목록(80)이 디스플레이될 수 있으며, 전자 장치(100)는 이미지 목록(80) 내의 이미지(82)를 선택하는 사용자 입력을 수신할 수 있다. 클립 보드에 저장된 이미지 목록(80) 내의 이미지들은 사용자에 의해 미리 복사된 이미지들일 수 있다.
도 8의 식별 번호 6을 참조하면, 일 실시예에 따른 전자 장치(100)는 이미지 목록(80) 내의 이미지(82)가 선택됨에 따라, 이미지(82)의 링크 정보를 획득하고, 어플리케이션의 실행 화면에서 이미지(82)가 입력될 위치를 식별할 수 있다. 전자 장치(100)는 이미지(82)의 링크 정보 및 이미지(82)가 입력될 위치에 기초하여, 드래드 앤드 드롭의 이미지 입력을 위한 프레임 워크의 코드를 생성할 수 있다. 또한, 전자 장치(100)는 생성된 코드를 어플리케이션에게 제공할 수 있으며, 어플리케이션은 수신된 코드에 기초하여 어플리케이션의 실행 화면 내에 이미지(82)가 표시되도록 할 수 있다.
한편, 상기에서는 사용자 입력에 따라 이미지를 어플리케이션의 실행 화면 내에 입력하는 것으로 설명되었지만, 이에 제한되지 않는다. 예를 들어, 전자 장치(100)는 이미지 외의 다른 데이터 파일을 어플리케이션의 실행 화면 내에 입력할 수 있다. 이 경우, 이미지 입력 방식은 데이터 입력 방식일 수 있으며, 데이터를 입력하기 위한 프레임 워크의 코드가 생성될 수 있다.
본 개시의 일 실시예에 따른, 전자 장치가 어플리케이션의 실행 화면 내에 이미지를 입력하는 방법은, 상기 어플리케이션의 실행 화면 내에 이미지를 입력하기 위한 적어도 하나의 사용자 입력을 수신하는 동작(예: 동작 200); 상기 적어도 하나의 사용자 입력에 대응되는 제1 이미지 입력 방식을 식별하는 동작(예: 동작 210); 상기 적어도 하나의 사용자 입력에 기초하여 상기 이미지 및 상기 이미지의 상기 실행 화면 상의 입력 위치를 식별하는 동작(예: 동작 220); 상기 어플리케이션이 상기 제1 이미지 입력 방식을 지원하는 지를 식별하는 동작(예: 동작 230); 상기 어플리케이션이 상기 제1 이미지 입력 방식을 지원하지 않음에 따라, 상기 어플리케이션에 의해 지원되는 제2 이미지 입력 방식을 식별하는 동작(예: 동작 240); 상기 이미지 및 상기 입력 위치에 기초하여, 상기 이미지를 상기 제2 이미지 입력 방식으로 상기 어플리케이션의 상기 실행 화면 내에 입력하기 위한 프레임 워크의 코드를 생성하는 동작(예: 동작 250); 및 상기 프레임 워크의 상기 생성된 코드를 상기 어플리케이션에게 제공하는 동작(예: 동작 260);을 포함할 수 있다.
또한, 일 실시예에 따르면, 상기 프레임 워크의 상기 생성된 코드가 상기 어플리케이션에게 제공됨에 따라, 상기 프레임 워크의 상기 생성된 코드가 상기 어플리케이션에 의해 이용됨으로써, 상기 어플리케이션의 상기 실행 화면 내에 상기 이미지가 입력될 수 있다.
또한, 일 실시예에 따르면, 상기 어플리케이션에 의해 지원되는 제2 이미지 입력 방식을 식별하는 동작은, 상기 입력 위치에 대응되는 상기 실행 화면 내의 일부 영역이 상기 제2 이미지 입력 방식을 지원하는 지를 식별할 수 있다.
또한, 일 실시예에 따르면, 상기 2 이미지 입력 방식은, 상기 어플리케이션에 의해 지원되는 복수의 이미지 입력 방식들 중에서 선택될 수 있다.
또한, 일 실시예에 따르면, 상기 제1 이미지 입력 방식이, 상기 어플리케이션에 대하여 실행 중인 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하는 방식인 경우에, 상기 적어도 하나의 사용자 입력은, 상기 어플리케이션의 입력 필드를 선택하는 사용자 입력을 포함할 수 있다.
또한, 일 실시예에 따르면, 상기 입력 필드를 선택하는 사용자 입력이 수신됨에 응답하여, 상기 어플리케이션이 상기 제1 이미지 입력 방식을 지원하는 지를 식별할 수 있다.
또한, 일 실시예에 따르면, 상기 제2 이미지 입력 방식은 드래그 앤드 드롭(drag & drop)에 의해 이미지를 입력하는 방식을 포함하며, 상기 어플리케이션에 의해 지원되는 제2 이미지 입력 방식을 식별하는 동작은, 상기 입력 위치에 대응되는 상기 실행 화면 내의 일부 영역이, 드래그 앤드 드롭을 인식하는 기능을 지원하는 지를 식별할 수 있다.
또한, 일 실시예에 따르면, 상기 실행 화면 내의 복수의 일부 영역들에 대하여 상기 드래그 앤드 드롭을 인식하는 기능을 지원하는 지를 식별함으로써, 상기 어플리케이션에 의해 지원되는 상기 제2 이미지 입력 방식이 식별될 수 있다.
또한, 일 실시예에 따르면, 상기 제2 이미지 입력 방식은 복사 및 붙여넣기(copy & paste)에 의해 이미지를 입력하는 방식을 포함할 수 있다.
또한, 일 실시예에 따르면, 상기 제1 이미지 입력 방식은, 상기 어플리케이션에 대하여 실행 중인 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하는 방식, 드래그 앤드 드롭(drag & drop)에 의해 이미지를 입력하는 방식, 또는 복사 및 붙여넣기(copy & paste)에 의해 이미지를 입력하는 방식 중 적어도 하나를 포함할 수 있다.
또한, 일 실시예에 따르면, 상기 제2 이미지 입력 방식은, 상기 어플리케이션에 대하여 실행 중인 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하는 방식, 상기 드래그 앤드 드롭(drag & drop)에 의해 이미지를 입력하는 방식, 또는 상기 복사 및 붙여넣기(copy & paste)에 의해 이미지를 입력하는 방식 중에서, 상기 제1 이미지 입력 방식과 상이한 입력 방식일 수 있다.
도 9는, 다양한 실시예들에 따른, 네트워크 환경(900) 내의 전자 장치(901)의 블록도이다. 도 9를 참조하면, 네트워크 환경(900)에서 전자 장치(901)는 제 1 네트워크(998)(예: 근거리 무선 통신 네트워크)를 통하여 전자 장치(902)와 통신하거나, 또는 제 2 네트워크(999)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(904) 또는 서버(908)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(901)는 서버(908)를 통하여 전자 장치(904)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(901)는 프로세서(920), 메모리(930), 입력 모듈(950), 음향 출력 모듈(955), 디스플레이 모듈(960), 오디오 모듈(970), 센서 모듈(976), 인터페이스(977), 연결 단자(978), 햅틱 모듈(979), 카메라 모듈(980), 전력 관리 모듈(988), 배터리(989), 통신 모듈(990), 가입자 식별 모듈(996), 또는 안테나 모듈(997)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(901)에는, 이 구성요소들 중 적어도 하나(예: 연결 단자(978))가 생략되거나, 하나 이상의 다른 구성요소가 추가될 수 있다. 어떤 실시예에서는, 이 구성요소들 중 일부들(예: 센서 모듈(976), 카메라 모듈(980), 또는 안테나 모듈(997))은 하나의 구성요소(예: 디스플레이 모듈(960))로 통합될 수 있다.
프로세서(920)는, 예를 들면, 소프트웨어(예: 프로그램(940))를 실행하여 프로세서(920)에 연결된 전자 장치(901)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(920)는 다른 구성요소(예: 센서 모듈(976) 또는 통신 모듈(990))로부터 수신된 명령 또는 데이터를 휘발성 메모리(932)에 저장하고, 휘발성 메모리(932)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(934)에 저장할 수 있다. 일실시예에 따르면, 프로세서(920)는 메인 프로세서(921)(예: 중앙 처리 장치 또는 어플리케이션 프로세서) 또는 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(923)(예: 그래픽 처리 장치, 신경망 처리 장치(NPU: neural processing unit), 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 예를 들어, 전자 장치(901)가 메인 프로세서(921) 및 보조 프로세서(923)를 포함하는 경우, 보조 프로세서(923)는 메인 프로세서(921)보다 저전력을 사용하거나, 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(923)는 메인 프로세서(921)와 별개로, 또는 그 일부로서 구현될 수 있다.
보조 프로세서(923)는, 예를 들면, 메인 프로세서(921)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(921)를 대신하여, 또는 메인 프로세서(921)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(921)와 함께, 전자 장치(901)의 구성요소들 중 적어도 하나의 구성요소(예: 디스플레이 모듈(960), 센서 모듈(976), 또는 통신 모듈(990))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일실시예에 따르면, 보조 프로세서(923)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성요소(예: 카메라 모듈(980) 또는 통신 모듈(990))의 일부로서 구현될 수 있다. 일실시예에 따르면, 보조 프로세서(923)(예: 신경망 처리 장치)는 인공지능 모델의 처리에 특화된 하드웨어 구조를 포함할 수 있다. 인공지능 모델은 기계 학습을 통해 생성될 수 있다. 이러한 학습은, 예를 들어, 인공지능이 수행되는 전자 장치(901) 자체에서 수행될 수 있고, 별도의 서버(예: 서버(908))를 통해 수행될 수도 있다. 학습 알고리즘은, 예를 들어, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)을 포함할 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은, 복수의 인공 신경망 레이어들을 포함할 수 있다. 인공 신경망은 심층 신경망(DNN: deep neural network), CNN(convolutional neural network), RNN(recurrent neural network), RBM(restricted boltzmann machine), DBN(deep belief network), BRDNN(bidirectional recurrent deep neural network), 심층 Q-네트워크(deep Q-networks) 또는 상기 중 둘 이상의 조합 중 하나일 수 있으나, 전술한 예에 한정되지 않는다. 인공지능 모델은 하드웨어 구조 이외에, 추가적으로 또는 대체적으로, 소프트웨어 구조를 포함할 수 있다.
메모리(930)는, 전자 장치(901)의 적어도 하나의 구성요소(예: 프로세서(920) 또는 센서 모듈(976))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(940)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(930)는, 휘발성 메모리(932) 또는 비휘발성 메모리(934)를 포함할 수 있다.
프로그램(940)은 메모리(930)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(942), 미들 웨어(944) 또는 어플리케이션(946)을 포함할 수 있다.
입력 모듈(950)은, 전자 장치(901)의 구성요소(예: 프로세서(920))에 사용될 명령 또는 데이터를 전자 장치(901)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 모듈(950)은, 예를 들면, 마이크, 마우스, 키보드, 키(예: 버튼), 또는 디지털 펜(예: 스타일러스 펜)을 포함할 수 있다.
음향 출력 모듈(955)은 음향 신호를 전자 장치(901)의 외부로 출력할 수 있다. 음향 출력 모듈(955)은, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있다. 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일실시예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.
디스플레이 모듈(960)은 전자 장치(901)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 디스플레이 모듈(960)은, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일실시예에 따르면, 디스플레이 모듈(960)은 터치를 감지하도록 설정된 터치 센서, 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 압력 센서를 포함할 수 있다.
오디오 모듈(970)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일실시예에 따르면, 오디오 모듈(970)은, 입력 모듈(950)을 통해 소리를 획득하거나, 음향 출력 모듈(955), 또는 전자 장치(901)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(902))(예: 스피커 또는 헤드폰)를 통해 소리를 출력할 수 있다.
센서 모듈(976)은 전자 장치(901)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일실시예에 따르면, 센서 모듈(976)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(977)는 전자 장치(901)가 외부 전자 장치(예: 전자 장치(902))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일실시예에 따르면, 인터페이스(977)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(978)는, 그를 통해서 전자 장치(901)가 외부 전자 장치(예: 전자 장치(902))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일실시예에 따르면, 연결 단자(978)는, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(979)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일실시예에 따르면, 햅틱 모듈(979)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(980)은 정지 영상 및 동영상을 촬영할 수 있다. 일실시예에 따르면, 카메라 모듈(980)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.
전력 관리 모듈(988)은 전자 장치(901)에 공급되는 전력을 관리할 수 있다. 일실시예에 따르면, 전력 관리 모듈(988)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.
배터리(989)는 전자 장치(901)의 적어도 하나의 구성요소에 전력을 공급할 수 있다. 일실시예에 따르면, 배터리(989)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(990)은 전자 장치(901)와 외부 전자 장치(예: 전자 장치(902), 전자 장치(904), 또는 서버(908)) 간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(990)은 프로세서(920)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일실시예에 따르면, 통신 모듈(990)은 무선 통신 모듈(992)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(994)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제 1 네트워크(998)(예: 블루투스, WiFi(wireless fidelity) direct 또는 IrDA(infrared data association)와 같은 근거리 통신 네트워크) 또는 제 2 네트워크(999)(예: 레거시 셀룰러 네트워크, 5G 네트워크, 차세대 통신 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부의 전자 장치(904)와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성요소(예: 단일 칩)로 통합되거나, 또는 서로 별도의 복수의 구성요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(992)은 가입자 식별 모듈(996)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제 1 네트워크(998) 또는 제 2 네트워크(999)와 같은 통신 네트워크 내에서 전자 장치(901)를 확인 또는 인증할 수 있다.
무선 통신 모듈(992)은 4G 네트워크 이후의 5G 네트워크 및 차세대 통신 기술, 예를 들어, NR 접속 기술(new radio access technology)을 지원할 수 있다. NR 접속 기술은 고용량 데이터의 고속 전송(eMBB(enhanced mobile broadband)), 단말 전력 최소화와 다수 단말의 접속(mMTC(massive machine type communications)), 또는 고신뢰도와 저지연(URLLC(ultra-reliable and low-latency communications))을 지원할 수 있다. 무선 통신 모듈(992)은, 예를 들어, 높은 데이터 전송률 달성을 위해, 고주파 대역(예: mmWave 대역)을 지원할 수 있다. 무선 통신 모듈(992)은 고주파 대역에서의 성능 확보를 위한 다양한 기술들, 예를 들어, 빔포밍(beamforming), 거대 배열 다중 입출력(massive MIMO(multiple-input and multiple-output)), 전차원 다중입출력(FD-MIMO: full dimensional MIMO), 어레이 안테나(array antenna), 아날로그 빔형성(analog beam-forming), 또는 대규모 안테나(large scale antenna)와 같은 기술들을 지원할 수 있다. 무선 통신 모듈(992)은 전자 장치(901), 외부 전자 장치(예: 전자 장치(904)) 또는 네트워크 시스템(예: 제 2 네트워크(999))에 규정되는 다양한 요구사항을 지원할 수 있다. 일실시예에 따르면, 무선 통신 모듈(992)은 eMBB 실현을 위한 Peak data rate(예: 20Gbps 이상), mMTC 실현을 위한 손실 Coverage(예: 164dB 이하), 또는 URLLC 실현을 위한 U-plane latency(예: 다운링크(DL) 및 업링크(UL) 각각 0.5ms 이하, 또는 라운드 트립 1ms 이하)를 지원할 수 있다.
안테나 모듈(997)은 신호 또는 전력을 외부(예: 외부의 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일실시예에 따르면, 안테나 모듈(997)은 서브스트레이트(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 안테나를 포함할 수 있다. 일실시예에 따르면, 안테나 모듈(997)은 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다. 이런 경우, 제 1 네트워크(998) 또는 제 2 네트워크(999)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(990)에 의하여 상기 복수의 안테나들로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(990)과 외부의 전자 장치 간에 송신되거나 수신될 수 있다. 어떤 실시예에 따르면, 방사체 이외에 다른 부품(예: RFIC(radio frequency integrated circuit))이 추가로 안테나 모듈(997)의 일부로 형성될 수 있다.
다양한 실시예에 따르면, 안테나 모듈(997)은 mmWave 안테나 모듈을 형성할 수 있다. 일실시예에 따르면, mmWave 안테나 모듈은 인쇄 회로 기판, 상기 인쇄 회로 기판의 제 1 면(예: 아래 면)에 또는 그에 인접하여 배치되고 지정된 고주파 대역(예: mmWave 대역)을 지원할 수 있는 RFIC, 및 상기 인쇄 회로 기판의 제 2 면(예: 윗 면 또는 측 면)에 또는 그에 인접하여 배치되고 상기 지정된 고주파 대역의 신호를 송신 또는 수신할 수 있는 복수의 안테나들(예: 어레이 안테나)을 포함할 수 있다.
상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))을 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일실시예에 따르면, 명령 또는 데이터는 제 2 네트워크(999)에 연결된 서버(908)를 통해서 전자 장치(901)와 외부의 전자 장치(904)간에 송신 또는 수신될 수 있다. 외부의 전자 장치(902, 또는 904) 각각은 전자 장치(901)와 동일한 또는 다른 종류의 장치일 수 있다. 일실시예에 따르면, 전자 장치(901)에서 실행되는 동작들의 전부 또는 일부는 외부의 전자 장치들(902, 904, 또는 908) 중 하나 이상의 외부의 전자 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(901)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(901)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부의 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부의 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(901)로 전달할 수 있다. 전자 장치(901)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 모바일 에지 컴퓨팅(MEC: mobile edge computing), 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다. 전자 장치(901)는, 예를 들어, 분산 컴퓨팅 또는 모바일 에지 컴퓨팅을 이용하여 초저지연 서비스를 제공할 수 있다. 다른 실시예에 있어서, 외부의 전자 장치(904)는 IoT(internet of things) 기기를 포함할 수 있다. 서버(908)는 기계 학습 및/또는 신경망을 이용한 지능형 서버일 수 있다. 일실시예에 따르면, 외부의 전자 장치(904) 또는 서버(908)는 제 2 네트워크(999) 내에 포함될 수 있다. 전자 장치(901)는 5G 통신 기술 및 IoT 관련 기술을 기반으로 지능형 서비스(예: 스마트 홈, 스마트 시티, 스마트 카, 또는 헬스 케어)에 적용될 수 있다.
일 실시예에 따르면, 도 9의 전자 장치(901)는 도 1 내지 도 8의 전자 장치(100)일 수 있으며, 도 9의 프로세서(920)는 도 1 내지 도 8에 설명된 전자 장치(100)의 동작을 수행할 수 있다.
일 실시예에 따르면, 프로세서(920)는 어플리케이션의 실행 화면 내에 이미지를 입력하기 위한 사용자 입력을 수신할 수 있다. 어플리케이션의 실행 화면 내에 이미지를 입력하기 위한 사용자 입력은, 어플리케이션의 실행 화면 내에 이미지를 삽입하여 표시하기 위한 사용자 입력일 수 있다. 프로세서(920)는 어플리케이션의 실행 화면 내에 이미지를 입력하기 위한 하나 이상의 사용자 입력을 수신할 수 있다.
일 실시예에 따르면, 프로세서(920)는 사용자 입력에 대응되는 제1 이미지 입력 방식을 식별할 수 있다. 사용자 입력에 대응되는 제1 이미지 입력 방식은, 예를 들어, 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하는 방식, 드래그 앤드 드롭(drag & drop)에 의해 이미지를 입력하는 방식, 또는 복사 및 붙여넣기(copy & paste)에 의해 이미지를 입력하는 방식 중 적어도 하나를 포함할 수 있다.
예를 들어, 제1 이미지 입력 방식이 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하는 방식인 경우에, 사용자 입력은 어플리케이션의 입력 필드를 선택하는 사용자 입력, 입력 필드의 선택에 따라 활성화되는 키보드 어플리케이션에서 이미지 목록을 호출하는 사용자 입력, 및 이미지 목록에서 이미지를 선택하는 사용자 입력을 포함할 수 있다.
예를 들어, 제1 이미지 입력 방식이 드래그 앤드 드롭(drag & drop)에 의해 이미지를 입력하는 방식인 경우에, 사용자 입력은 이미지를 선택하고 선택된 이미지를 어플리케이션의 실행 화면 상으로 드래그하여 드롭하는 사용자 입력을 포함할 수 있다.
예를 들어, 제1 이미지 입력 방식이 복사 및 붙여넣기에 의해 이미지를 입력하는 방식인 경우에, 사용자 입력은 어플리케이션의 실행 화면의 특정 위치를 선택(예: 롱 터치)하는 사용자 입력, 특정 위치 선택에 따라 표시되는 메뉴에서 붙여넣기 항목을 선택하는 사용자 입력, 특정 위치 선택에 따라 표시되는 메뉴에서 클립보드 항목을 선택하는 사용자 입력, 또는 클립보드 내의 이미지를 선택하는 사용자 입력 중 적어도 하나를 포함할 수 있다.
일 실시예에 따르면, 프로세서(920)는 이미지 및 이미지의 입력 위치를 식별할 수 있다. 프로세서(920)는 사용자 입력에 의해 선택된 이미지 및 선택된 이미지가 표시될 어플리케이션의 실행 화면 상의 일부 영역을 식별할 수 있다.
예를 들어, 제1 이미지 입력 방식이 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하는 방식인 경우에, 프로세서(920)는 키보드 어플리케이션의 이미지 목록에서 선택된 이미지를 어플리케이션에 입력될 이미지로 식별할 수 있다. 또한, 프로세서(920)는 어플리케이션의 입력 필드, 또는 입력 필드를 통한 입력 값이 표시되는 어플리케이션의 실행 화면의 일부 영역을 이미지의 입력 위치로 식별할 수 있다.
예를 들어, 제1 이미지 입력 방식이 드래그 앤드 드롭(drag & drop)에 의해 이미지를 입력하는 방식인 경우에, 프로세서(920)는 드래그 앤드 드롭된 이미지를 어플리케이션에 입력될 이미지로 식별할 수 있다. 또한, 프로세서(920)는 이미지가 드롭된 위치를 포함하는 어플리케이션의 실행 화면의 일부 영역을 이미지의 입력 위치로 식별할 수 있다.
예를 들어, 제1 이미지 입력 방식이 복사 및 붙여넣기에 의해 이미지를 입력하는 방식인 경우에, 프로세서(920)는 복사된 이미지를 어플리케이션에 입력될 이미지로 식별할 수 있다. 또한, 프로세서(920)는 이미지가 붙여넣기 될 위치를 이미지의 입력 위치로 식별할 수 있다.
일 실시예에 따르면, 프로세서(920)는 어플리케이션이 제1 이미지 입력 방식을 지원하는 지를 판단할 수 있다. 예를 들어, 어플리케이션은, 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하는 방식, 드래그 앤드 드롭(drag & drop)에 의해 이미지를 입력하는 방식, 및 복사 및 붙여넣기(copy & paste)에 의해 이미지를 입력하는 방식 중 일부의 방식만을 지원할 수 있다. 이에 따라, 사용자 입력에 대응되는 제1 이미지 입력 방식이 어플리케이션에 의해 지원되는 입력 방식에 포함되지 않을 수 있다. 예를 들어, 프로세서(920)는 어플리케이션이 키보드 핸들러(handler), 드래그 앤드 드롭의 그래픽 핸들러, 및/또는 복사 및 붙여넣기의 그래픽 핸들러를 가지고 있는 지를 판단할 수 있다.
일 실시예에 따르면, 어플리케이션이 제1 이미지 입력 방식을 지원하지 않는다고 판단되면, 프로세서(920)는 어플리케이션에 의해 지원되는 제2 이미지 입력 방식을 식별할 수 있다.
예를 들어, 제1 이미지 입력 방식이 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하는 방식이고, 어플리케이션이 제1 이미지 입력 방식을 지원하지 않는 경우에, 프로세서(920)는 어플리케이션이 드래그 앤드 드롭(drag & drop)에 의해 이미지를 입력하는 방식, 및/또는 복사 및 붙여넣기(copy & paste)에 의해 이미지를 입력하는 방식을 지원함을 식별할 수 있다.
예를 들어, 제1 이미지 입력 방식이 드래그 앤드 드롭(drag & drop)에 의해 이미지를 입력하는 방식이고, 어플리케이션이 제1 이미지 입력 방식을 지원하지 않는 경우에, 프로세서(920)는 어플리케이션이 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하는 방식, 및/또는 복사 및 붙여넣기(copy & paste)에 의해 이미지를 입력하는 방식을 지원함을 식별할 수 있다.
예를 들어, 제1 이미지 입력 방식이 복사 및 붙여넣기(copy & paste)에 의해 이미지를 입력하는 방식이고, 어플리케이션이 제1 이미지 입력 방식을 지원하지 않는 경우에, 프로세서(920)는 어플리케이션이 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하는 방식, 및/또는 드래그 앤드 드롭(drag & drop)에 의해 이미지를 입력하는 방식을 지원함을 식별할 수 있다.
일 실시예에 따르면, 프로세서(920)는 제2 이미지 입력 방식으로 이미지를 입력하기 위한 프레임 워크의 코드를 획득할 수 있다. 프로세서(920)는 어플리케이션의 실행 화면에 입력될 이미지의 링크 정보 및 이미지가 입력될 어플리케이션의 실행 화면 내의 입력 위치에 기초하여, 제2 이미지 입력 방식으로 이미지를 입력하기 위한 프레임 워크의 코드를 획득할 수 있다. 이미지의 링크 정보는, 예를 들어, 이미지의 URI(uniform resource identifier) 정보를 포함할 수 있다.
예를 들어, 어플리케이션에 의해 지원되며 제1 이미지 입력 방식과 상이한 제2 이미지 입력 방식이 드래그 앤드 드롭에 의해 이미지를 입력하는 방식인 경우에, 프로세서(920)는 이미지를 드래그 앤드 드롭하기 위한 프레임 워크의 코드를 획득할 수 있다. 예를 들어, 프로세서(920)는 어플리케이션의 실행 화면 내에서 이미지가 입력될 일부 영역에 대한 DragListner를 등록하기 위한 코드를 획득할 수 있다.
예를 들어, 프로세서(920)는 표 1의 코드의 적어도 일부를 편집함으로써 이미지를 드래그 앤드 드롭하기 위한 프레임 워크의 코드를 획득할 수 있다.
예를 들어, 어플리케이션에 의해 지원되며 제1 이미지 입력 방식과 상이한 제2 이미지 입력 방식이 복사 및 붙여넣기에 의해 이미지를 입력하는 방식인 경우에, 프로세서(920)는 이미지를 복사 및 붙여넣기하기 위한 프레임 워크의 코드를 획득할 수 있다. 예를 들어, 프로세서(920)는 어플리케이션의 실행 화면 내에서 이미지가 입력될 일부 영역에 대한 이미지의 붙여넣기 동작을 오버라이드(override)하기 위한 프레임 워크의 코드를 획득할 수 있다.
예를 들어, 프로세서(920)는 표 2의 코드의 적어도 일부를 편집함으로써 이미지를 복사 및 붙여넣기하기 위한 프레임 워크의 코드를 획득할 수 있다.
예를 들어, 어플리케이션에 의해 지원되며 제1 이미지 입력 방식과 상이한 제2 이미지 입력 방식이 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하는 방식인 경우에, 프로세서(920)는 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하기 위한 프레임 워크의 코드를 획득할 수 있다. 예를 들어, 프로세서(920)는 어플리케이션의 실행 화면 내에서 이미지가 입력될 일부 영역에 이미지를 입력하기 위하여 InputConnection을 오버라이드(override)하기 위한 프레임 워크의 코드를 획득할 수 있다.
예를 들어, 프로세서(920)는 표 3의 코드의 적어도 일부를 편집함으로써 이미지를 키보드를 통해 입력하기 위한 프레임 워크의 코드를 획득할 수 있다.
일 실시예에 따르면, 프로세서(920)는 프레임 워크의 코드를 어플리케이션에게 제공할 수 있다. 어플리케이션은 제공받은 프레임 워크의 코드에 기초하여, 제2 이미지 입력 방식을 통하여 이미지를 어플리케이션의 실행 화면 내의 특정 위치에 표시할 수 있다.
일 실시예에 따르면, 어플리케이션이 제1 이미지 입력 방식을 지원한다고 판단되면, 프로세서(920)는 제1 이미지 입력 방식에 따라 이미지를 어플리케이션의 실행 화면 내에 입력할 수 있다.
한편, 상기에서는 사용자 입력에 따라 이미지를 어플리케이션의 실행 화면 내에 입력하는 것으로 설명되었지만, 이에 제한되지 않는다. 예를 들어, 전자 장치(100)는 이미지 외의 다른 데이터 파일을 어플리케이션의 실행 화면 내에 입력할 수 있다. 이 경우, 이미지 입력 방식은 데이터 입력 방식일 수 있으며, 데이터를 입력하기 위한 프레임 워크의 코드가 획득될 수 있다.
본 개시의 일 실시예에 따르면, 어플리케이션의 실행 화면 내에 이미지를 입력하는 전자 장치(예: 100)는, 디스플레이 (예: 960); 명령어들을 저장하는 메모리(예: 930); 및 상기 디스플레이 및 상기 메모리와 작동적으로 연결되며, 상기 명령어들을 실행하는 적어도 하나의 프로세서(예: 920);를 포함하며, 상기 적어도 하나의 프로세서는, 상기 명령어들을 실행함으로써, 상기 어플리케이션의 실행 화면 내에 이미지를 입력하기 위한 적어도 하나의 사용자 입력을 수신하고, 상기 적어도 하나의 사용자 입력에 대응되는 제1 이미지 입력 방식을 식별하고, 상기 적어도 하나의 사용자 입력에 기초하여 상기 이미지 및 상기 이미지의 상기 실행 화면 상의 입력 위치를 식별하고, 상기 어플리케이션이 상기 제1 이미지 입력 방식을 지원하는 지를 식별하고, 상기 어플리케이션이 상기 제1 이미지 입력 방식을 지원하지 않음에 따라, 상기 어플리케이션에 의해 지원되는 제2 이미지 입력 방식을 식별하고, 상기 이미지 및 상기 입력 위치에 기초하여, 상기 이미지를 상기 제2 이미지 입력 방식으로 상기 어플리케이션의 상기 실행 화면 내에 입력하기 위한 프레임 워크의 코드를 획득하고, 상기 프레임 워크의 상기 획득된 코드를 상기 어플리케이션에게 제공할 수 있다.
또한, 일 실시예에 따르면, 상기 프레임 워크의 상기 획득된 코드가 상기 어플리케이션에게 제공됨에 따라, 상기 프레임 워크의 상기 획득된 코드가 상기 어플리케이션에 의해 이용됨으로써, 상기 어플리케이션의 상기 실행 화면 내에 상기 이미지가 입력될 수 있다.
또한, 일 실시예에 따르면, 상기 적어도 하나의 프로세서는, 상기 명령어들을 실행함으로써, 상기 입력 위치에 대응되는 상기 실행 화면 내의 일부 영역이 상기 제2 이미지 입력 방식을 지원하는 지를 식별할 수 있다.
또한, 일 실시예에 따르면, 상기 2 이미지 입력 방식은, 상기 어플리케이션에 의해 지원되는 복수의 이미지 입력 방식들 중에서 선택될 수 있다.
또한, 일 실시예에 따르면, 상기 제1 이미지 입력 방식이, 상기 어플리케이션에 대하여 실행 중인 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하는 방식인 경우에, 상기 적어도 하나의 사용자 입력은, 상기 어플리케이션의 입력 필드를 선택하는 사용자 입력을 포함할 수 있다.
또한, 일 실시예에 따르면, 상기 적어도 하나의 프로세서는, 상기 명령어들을 실행함으로써, 상기 입력 필드를 선택하는 사용자 입력이 수신됨에 응답하여, 상기 어플리케이션이 상기 제1 이미지 입력 방식을 지원하는 지를 식별할 수 있다.
또한, 일 실시예에 따르면, 상기 제2 이미지 입력 방식은 드래그 앤드 드롭(drag & drop)에 의해 이미지를 입력하는 방식을 포함하며, 상기 적어도 하나의 프로세서는, 상기 명령어들을 실행함으로써, 상기 입력 위치에 대응되는 상기 실행 화면 내의 일부 영역이, 드래그 앤드 드롭을 인식하는 기능을 지원하는 지를 식별할 수 있다.
또한, 일 실시예에 따르면, 상기 실행 화면 내의 복수의 일부 영역들에 대하여 상기 드래그 앤드 드롭을 인식하는 기능을 지원하는 지를 식별함으로써, 상기 어플리케이션에 의해 지원되는 상기 제2 이미지 입력 방식이 식별될 수 있다.
또한, 일 실시예에 따르면, 상기 제2 이미지 입력 방식은 복사 및 붙여넣기(copy & paste)에 의해 이미지를 입력하는 방식을 포함할 수 있다.
본 개시의 일 실시예에 따르면, 어플리케이션의 실행 화면 내에 이미지를 입력하기 위한 적어도 하나의 사용자 입력을 수신하는 동작; 상기 적어도 하나의 사용자 입력에 대응되는 제1 이미지 입력 방식을 식별하는 동작; 상기 적어도 하나의 사용자 입력에 기초하여 상기 이미지 및 상기 이미지의 상기 실행 화면 상의 입력 위치를 식별하는 동작; 상기 어플리케이션이 상기 제1 이미지 입력 방식을 지원하는 지를 식별하는 동작; 상기 어플리케이션이 상기 제1 이미지 입력 방식을 지원하지 않음에 따라, 상기 어플리케이션에 의해 지원되는 제2 이미지 입력 방식을 식별하는 동작; 상기 이미지 및 상기 입력 위치에 기초하여, 상기 이미지를 상기 제2 이미지 입력 방식으로 상기 어플리케이션의 상기 실행 화면 내에 입력하기 위한 프레임 워크의 코드를 획득하는 동작; 및 상기 프레임 워크의 상기 획득된 코드를 상기 어플리케이션에게 제공하는 동작;을 포함하는, 어플리케이션의 실행 화면 내에 이미지를 입력하는 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공할 수 있다.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치(예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", 및 "A, B, 또는 C 중 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. "제 1", "제 2", 또는 "첫째" 또는 "둘째"와 같은 용어들은 단순히 해당 구성요소를 다른 해당 구성요소와 구분하기 위해 사용될 수 있으며, 해당 구성요소들을 다른 측면(예: 중요성 또는 순서)에서 한정하지 않는다. 어떤(예: 제 1) 구성요소가 다른(예: 제 2) 구성요소에, "기능적으로" 또는 "통신적으로"라는 용어와 함께 또는 이런 용어 없이, "커플드" 또는 "커넥티드"라고 언급된 경우, 그것은 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로(예: 유선으로), 무선으로, 또는 제 3 구성요소를 통하여 연결될 수 있다는 것을 의미한다. 본 문서의 다양한 실시예들에서 사용된 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 같은 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
본 문서의 다양한 실시예들은 기기(machine)(예: 전자 장치(901)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(936) 또는 외장 메모리(938))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(940))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(901))의 프로세서(예: 프로세서(920))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령어를 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장 매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
일실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory(CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두 개의 사용자 장치들(예: 스마트 폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다. 다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체들을 포함할 수 있으며, 복수의 개체들 중 일부는 다른 구성요소에 분리 배치될 수도 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.

Claims (18)

  1. 전자 장치가 어플리케이션의 실행 화면 내에 이미지를 입력하는 방법에 있어서,
    상기 어플리케이션의 실행 화면 내에 이미지를 입력하기 위한 적어도 하나의 사용자 입력을 수신하는 동작(200);
    상기 적어도 하나의 사용자 입력에 대응되는 제1 이미지 입력 방식을 식별하는 동작(210);
    상기 적어도 하나의 사용자 입력에 기초하여 상기 이미지 및 상기 이미지의 상기 실행 화면 상의 입력 위치를 식별하는 동작(220);
    상기 어플리케이션이 상기 제1 이미지 입력 방식을 지원하는 지를 식별하는 동작(230);
    상기 어플리케이션이 상기 제1 이미지 입력 방식을 지원하지 않음에 따라, 상기 어플리케이션에 의해 지원되는 제2 이미지 입력 방식을 식별하는 동작(240);
    상기 이미지 및 상기 입력 위치에 기초하여, 상기 이미지를 상기 제2 이미지 입력 방식으로 상기 어플리케이션의 상기 실행 화면 내에 입력하기 위한 프레임 워크의 코드를 획득하는 동작(250); 및
    상기 제2 이미지 입력 방식을 통하여 상기 이미지를 상기 어플리케이션의 상기 실행 화면에 표시하는 동작(260);
    을 포함하는, 방법.
  2. 제1 항에 있어서,
    상기 프레임 워크의 상기 획득된 코드가 상기 어플리케이션에게 제공됨에 따라, 상기 프레임 워크의 상기 획득된 코드가 상기 어플리케이션에 의해 이용됨으로써, 상기 어플리케이션의 상기 실행 화면 내에 상기 이미지가 입력되는 것인, 방법.
  3. 제1 항 및 제2 항 중 어느 한 항에 있어서,
    상기 어플리케이션에 의해 지원되는 제2 이미지 입력 방식을 식별하는 동작은,
    상기 입력 위치에 대응되는 상기 실행 화면 내의 일부 영역이 상기 제2 이미지 입력 방식을 지원하는 지를 식별하는 것인, 방법.
  4. 제1 항 내지 제3 항 중 어느 한 항에 있어서,
    상기 2 이미지 입력 방식은, 상기 어플리케이션에 의해 지원되는 복수의 이미지 입력 방식들 중에서 선택된 것인, 방법.
  5. 제1 항 내지 제4 항 중 어느 한 항에 있어서,
    상기 제1 이미지 입력 방식이, 상기 어플리케이션에 대하여 실행 중인 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하는 방식인 경우에, 상기 적어도 하나의 사용자 입력은, 상기 어플리케이션의 입력 필드를 선택하는 사용자 입력을 포함하는 것인, 방법.
  6. 제5 항에 있어서,
    상기 제1 이미지 입력 방식을 지원하는 지를 식별하는 동작은,
    상기 입력 필드를 선택하는 사용자 입력이 수신됨에 응답하여, 상기 어플리케이션이 상기 제1 이미지 입력 방식을 지원하는 지를 식별하는 것인, 방법.
  7. 제6 항에 있어서,
    상기 제2 이미지 입력 방식은 드래그 앤드 드롭(drag & drop)에 의해 이미지를 입력하는 방식을 포함하며,
    상기 어플리케이션에 의해 지원되는 제2 이미지 입력 방식을 식별하는 동작은, 상기 입력 위치에 대응되는 상기 실행 화면 내의 일부 영역이, 드래그 앤드 드롭을 인식하는 기능을 지원하는 지를 식별하는 것인, 방법.
  8. 제7 항에 있어서,
    상기 실행 화면 내의 복수의 일부 영역들에 대하여 상기 드래그 앤드 드롭을 인식하는 기능을 지원하는 지를 식별함으로써, 상기 어플리케이션에 의해 지원되는 상기 제2 이미지 입력 방식이 식별되는 것인, 방법.
  9. 제6 항에 있어서,
    상기 제2 이미지 입력 방식은 복사 및 붙여넣기(copy & paste)에 의해 이미지를 입력하는 방식을 포함하는 것인, 방법.
  10. 제1 항 내지 제9 항 중 어느 한 항에 있어서,
    상기 제1 이미지 입력 방식은, 상기 어플리케이션에 대하여 실행 중인 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하는 방식, 드래그 앤드 드롭(drag & drop)에 의해 이미지를 입력하는 방식, 또는 복사 및 붙여넣기(copy & paste)에 의해 이미지를 입력하는 방식 중 적어도 하나를 포함하며,
    상기 제2 이미지 입력 방식은, 상기 어플리케이션에 대하여 실행 중인 키보드를 통해 디스플레이되는 이미지 목록으로부터 선택된 이미지를 입력하는 방식, 상기 드래그 앤드 드롭(drag & drop)에 의해 이미지를 입력하는 방식, 또는 상기 복사 및 붙여넣기(copy & paste)에 의해 이미지를 입력하는 방식 중에서, 상기 제1 이미지 입력 방식과 상이한 입력 방식인 것인, 방법.
  11. 어플리케이션의 실행 화면 내에 이미지를 입력하는 전자 장치에 있어서,
    디스플레이(960);
    명령어들을 저장하는 메모리(930); 및
    상기 디스플레이 및 상기 메모리와 작동적으로 연결되며, 상기 명령어들을 실행하는 적어도 하나의 프로세서(920);
    를 포함하며,
    상기 적어도 하나의 프로세서(920)는, 상기 명령어들을 실행함으로써,
    상기 어플리케이션의 실행 화면 내에 이미지를 입력하기 위한 적어도 하나의 사용자 입력을 수신하고,
    상기 적어도 하나의 사용자 입력에 대응되는 제1 이미지 입력 방식을 식별하고,
    상기 적어도 하나의 사용자 입력에 기초하여 상기 이미지 및 상기 이미지의 상기 실행 화면 상의 입력 위치를 식별하고,
    상기 어플리케이션이 상기 제1 이미지 입력 방식을 지원하는 지를 식별하고,
    상기 어플리케이션이 상기 제1 이미지 입력 방식을 지원하지 않음에 따라, 상기 어플리케이션에 의해 지원되는 제2 이미지 입력 방식을 식별하고,
    상기 이미지 및 상기 입력 위치에 기초하여, 상기 이미지를 상기 제2 이미지 입력 방식으로 상기 어플리케이션의 상기 실행 화면 내에 입력하기 위한 프레임 워크의 코드를 획득하고,
    상기 프레임 워크의 상기 획득된 코드를 상기 어플리케이션에게 제공하는, 전자 장치.
  12. 제11 항에 있어서,
    상기 프레임 워크의 상기 획득된 코드가 상기 어플리케이션에게 제공됨에 따라, 상기 프레임 워크의 상기 획득된 코드가 상기 어플리케이션에 의해 이용됨으로써, 상기 어플리케이션의 상기 실행 화면 내에 상기 이미지가 입력되는 것인, 전자 장치.
  13. 제11 항 및 제12 항 중 어느 한 항에 있어서,
    상기 적어도 하나의 프로세서(920)는, 상기 명령어들을 실행함으로써,
    상기 입력 위치에 대응되는 상기 실행 화면 내의 일부 영역이 상기 제2 이미지 입력 방식을 지원하는 지를 식별하는 것인, 전자 장치.
  14. 제11 항 내지 제13 항 중 어느 한 항에 있어서,
    상기 제1 이미지 입력 방식은 상기 어플리케이션에서 실행되는 키보드를 통해 표시되는 이미지 목록에서 선택된 이미지를 입력하는 방식, 드래그 앤 드롭에 의해 이미지를 입력하는 방식, 또는 복사 및 붙여넣기에 의해 이미지를 입력하는 방식 중 적어도 하나를 포함하며,
    상기 제2 이미지 입력 방식은, 상기 어플리케이션에 의해 지원되는 복수의 이미지 입력 방식들 중에서 선택되며,
    상기 제2 이미지 입력 방식은 상기 제1 이미지 입력 방식과 다른 입력 방법으로서, 상기 어플리케이션에서 실행되는 키보드를 통해 표시되는 이미지 목록에서 선택된 이미지를 입력하는 방식, 드래그 앤 드롭에 의해 이미지를 입력하는 방식, 또는 복사 및 붙여넣기에 의해 이미지를 입력하는 방식 중 어느 하나를 포함하는 것인, 전자 장치.
  15. 제11 항 내지 제14 항 중 어느 한 항에 있어서,
    상기 제1 이미지 입력 방식이, 상기 어플리케이션에 대하여 실행 중인 상기 키보드를 통해 디스플레이되는 상기 이미지 목록으로부터 선택된 이미지를 입력하는 방식인 경우에, 상기 적어도 하나의 사용자 입력은, 상기 어플리케이션의 입력 필드를 선택하는 사용자 입력을 포함하는 것인, 전자 장치.
  16. 제15 항에 있어서,
    상기 적어도 하나의 프로세서(920)는, 상기 명령어들을 실행함으로써,
    상기 입력 필드를 선택하는 사용자 입력이 수신됨에 응답하여, 상기 어플리케이션이 상기 제1 이미지 입력 방식을 지원하는 지를 식별하는 것인, 전자 장치.
  17. 제11 내지 제14 항 중 어느 한 항에 있어서,
    상기 제2 이미지 입력 방식은 드래그 앤드 드롭(drag & drop)에 의해 이미지를 입력하는 방식을 포함하며,
    상기 실행 화면 내의 복수의 일부 영역들이 상기 드래그 앤드 드롭을 인식하는 기능을 지원하는 지를 식별함으로써, 상기 어플리케이션에 의해 지원되는 상기 제2 이미지 입력 방식이 식별되는 것인, 전자 장치.
  18. 어플리케이션의 실행 화면 내에 이미지를 입력하기 위한 적어도 하나의 사용자 입력을 수신하는 동작;
    상기 적어도 하나의 사용자 입력에 대응되는 제1 이미지 입력 방식을 식별하는 동작;
    상기 적어도 하나의 사용자 입력에 기초하여 상기 이미지 및 상기 이미지의 상기 실행 화면 상의 입력 위치를 식별하는 동작;
    상기 어플리케이션이 상기 제1 이미지 입력 방식을 지원하는 지를 식별하는 동작;
    상기 어플리케이션이 상기 제1 이미지 입력 방식을 지원하지 않음에 따라, 상기 어플리케이션에 의해 지원되는 제2 이미지 입력 방식을 식별하는 동작;
    상기 이미지 및 상기 입력 위치에 기초하여, 상기 이미지를 상기 제2 이미지 입력 방식으로 상기 어플리케이션의 상기 실행 화면 내에 입력하기 위한 프레임 워크의 코드를 획득하는 동작; 및
    상기 프레임 워크의 상기 획득된 코드를 상기 어플리케이션에게 제공하는 동작;
    을 포함하는, 어플리케이션의 실행 화면 내에 이미지를 입력하는 방법을 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
PCT/KR2024/008072 2023-06-13 2024-06-12 어플리케이션의 실행 화면 내에 데이터를 삽입하는 전자 장치 및 방법과, 기록매체 Ceased WO2024258185A1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202480039348.3A CN121693717A (zh) 2023-06-13 2024-06-12 用于将数据插入到应用的执行屏幕中的电子装置和方法以及记录介质
EP24737665.0A EP4498218A4 (en) 2023-06-13 2024-06-12 ELECTRONIC DEVICE AND METHOD FOR INSERTING DATA INTO AN APPLICATION EXECUTION SCREEN, AND RECORDING MEDIUM
US19/395,705 US20260072585A1 (en) 2023-06-13 2025-11-20 Electronic device and method for inserting data into execution screen of application, and recording medium

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20230075695 2023-06-13
KR10-2023-0075695 2023-06-13
KR10-2023-0094929 2023-07-20
KR1020230094929A KR20240175651A (ko) 2023-06-13 2023-07-20 어플리케이션의 실행 화면 내에 데이터를 삽입하는 전자 장치 및 방법과, 기록매체

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US19/395,705 Continuation US20260072585A1 (en) 2023-06-13 2025-11-20 Electronic device and method for inserting data into execution screen of application, and recording medium

Publications (1)

Publication Number Publication Date
WO2024258185A1 true WO2024258185A1 (ko) 2024-12-19

Family

ID=91961819

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2024/008072 Ceased WO2024258185A1 (ko) 2023-06-13 2024-06-12 어플리케이션의 실행 화면 내에 데이터를 삽입하는 전자 장치 및 방법과, 기록매체

Country Status (4)

Country Link
US (1) US20260072585A1 (ko)
EP (1) EP4498218A4 (ko)
CN (1) CN121693717A (ko)
WO (1) WO2024258185A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100260700B1 (ko) * 1995-09-20 2000-07-01 미네오 스스 이미지를 생성하는 시스템과 방법
KR20090056506A (ko) * 2007-11-30 2009-06-03 주식회사 모션클라우드 리치 콘텐트 제작 시스템 및 그 방법과 그 방법에 대한컴퓨터 프로그램을 저장한 기록매체
KR101580999B1 (ko) * 2009-01-06 2015-12-30 삼성전자주식회사 애플리케이션 간의 콘텐츠를 이동하는 장치 및 방법
US20160117072A1 (en) * 2014-10-24 2016-04-28 Google Inc. Drag-and-drop on a mobile device
CN113593892A (zh) * 2021-07-29 2021-11-02 唐溢泽 一种变压器绕线轨迹的设计方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10437428B2 (en) * 2017-05-23 2019-10-08 Microsoft Technology Licensing, Llc Scatter copy supporting partial paste functionality
KR102877128B1 (ko) * 2019-08-06 2025-10-27 삼성전자주식회사 전자 장치 및 전자 장치의 데이터 공유 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100260700B1 (ko) * 1995-09-20 2000-07-01 미네오 스스 이미지를 생성하는 시스템과 방법
KR20090056506A (ko) * 2007-11-30 2009-06-03 주식회사 모션클라우드 리치 콘텐트 제작 시스템 및 그 방법과 그 방법에 대한컴퓨터 프로그램을 저장한 기록매체
KR101580999B1 (ko) * 2009-01-06 2015-12-30 삼성전자주식회사 애플리케이션 간의 콘텐츠를 이동하는 장치 및 방법
US20160117072A1 (en) * 2014-10-24 2016-04-28 Google Inc. Drag-and-drop on a mobile device
CN113593892A (zh) * 2021-07-29 2021-11-02 唐溢泽 一种变压器绕线轨迹的设计方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP4498218A4 *

Also Published As

Publication number Publication date
CN121693717A (zh) 2026-03-17
EP4498218A4 (en) 2025-11-12
US20260072585A1 (en) 2026-03-12
EP4498218A1 (en) 2025-01-29

Similar Documents

Publication Publication Date Title
WO2020045927A1 (en) Electronic device and method for generating short cut of quick command
WO2020027562A1 (en) Electronic apparatus for controlling display of virtual input interface in environment of a plurality of output screens and operating method thereof
WO2023018158A1 (ko) 멀티 윈도우를 지원하는 전자 장치 및 이의 제어 방법
WO2022131521A1 (ko) 터치스크린을 포함하는 입력 장치와 이의 동작 방법
WO2022010279A1 (en) Electronic device for converting handwriting to text and method therefor
WO2022080698A1 (ko) 플렉서블 디스플레이를 이용하여 화면을 제공하는 방법 및 이를 지원하는 전자 장치
WO2024258185A1 (ko) 어플리케이션의 실행 화면 내에 데이터를 삽입하는 전자 장치 및 방법과, 기록매체
WO2022163963A1 (ko) 전자 장치 및 전자 장치의 단축 명령어 수행 방법
WO2022119117A1 (ko) 플렉서블 디스플레이를 구비한 전자 장치 및 그의 동작 방법
WO2026023817A1 (ko) 이미지에 기능을 적용하는 전자 장치, 이의 동작 방법, 및 기록 매체
WO2025058310A1 (ko) 요약 컨텐츠 제공 방법 및 그 전자 장치
WO2025155000A1 (ko) 전자 장치 및 이를 이용한 카테고리에 기반한 메시지 표시 방법
WO2025023513A1 (ko) 외부 전자 장치를 촬영하여 스크린의 레이아웃을 변경하는 전자 장치, 방법, 및 비-일시적 컴퓨터 판독가능 저장 매체
WO2025005608A1 (ko) 콘텐트를 디스플레이하는 전자 장치 및 방법
WO2026049313A1 (ko) 전자 장치의 어플리케이션들의 카테고리에 기초한 홈 스크린 출력 방법 및 그 방법을 수행하는 장치
WO2026005234A1 (ko) 모델을 이용하여 미디어 콘텐트를 획득하기 위한 전자 장치, 방법, 및 비일시적 컴퓨터 판독 가능 저장 매체
WO2025084891A1 (ko) 웹 페이지 내의 콘텐트를 제거하는 전자 장치 및 방법
WO2025018765A1 (ko) 화면의 설정을 추천하는 방법 및 이를 지원하는 전자 장치
WO2023013883A1 (ko) 사용자 인터페이스를 표시하는 전자 장치와 이의 동작 방법
WO2025206560A1 (ko) 요약 정보 제공 방법 및 이를 수행하는 전자 장치
WO2026014692A1 (ko) 멀티 윈도우를 위한 전자 장치, 방법, 및 비-일시적 컴퓨터 판독 가능 기록 매체
WO2025079852A1 (ko) 동기화를 수행하기 위한 전자 장치, 방법, 및 저장 매체
WO2026084394A1 (ko) 컨텐트 전송을 제어하는 전자 장치 및 그 저장 매체
WO2024034810A1 (ko) 다중 윈도우들을 위한 입력을 처리하는 전자 장치
WO2025018852A1 (ko) 복수의 사용자 입력들을 처리하는 방법 및 이를 지원하는 전자 장치

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2024737665

Country of ref document: EP

Effective date: 20240710

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 24737665

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 202517121569

Country of ref document: IN

WWP Wipo information: published in national office

Ref document number: 202517121569

Country of ref document: IN

NENP Non-entry into the national phase

Ref country code: DE