KR102710369B1 - 다이나믹 레이아웃 메시지를 위한 전자 장치 및 컴퓨터 판독가능 매체 - Google Patents
다이나믹 레이아웃 메시지를 위한 전자 장치 및 컴퓨터 판독가능 매체 Download PDFInfo
- Publication number
- KR102710369B1 KR102710369B1 KR1020190017986A KR20190017986A KR102710369B1 KR 102710369 B1 KR102710369 B1 KR 102710369B1 KR 1020190017986 A KR1020190017986 A KR 1020190017986A KR 20190017986 A KR20190017986 A KR 20190017986A KR 102710369 B1 KR102710369 B1 KR 102710369B1
- Authority
- KR
- South Korea
- Prior art keywords
- message
- rcs
- electronic device
- content
- layout object
- Prior art date
Links
- 238000004891 communication Methods 0.000 claims abstract description 96
- 238000000034 method Methods 0.000 description 23
- 230000006870 function Effects 0.000 description 10
- 238000012545 processing Methods 0.000 description 9
- 230000009471 action Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 230000005484 gravity Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000011017 operating method Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003155 kinesthetic effect Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000000638 stimulation Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
- H04M1/7243—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality with interactive means for internal management of messages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction 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/04845—Interaction 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 for image manipulation, e.g. dragging, rotation, expansion or change of colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
- G06F40/106—Display of layout of documents; Previewing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction 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/0488—Interaction 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction 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/0488—Interaction 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/04883—Interaction 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/02—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail using automatic reactions or user delegation, e.g. automatic replies or chatbot-generated messages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/06—Message adaptation to terminal or network requirements
- H04L51/066—Format adaptation, e.g. format conversion or compression
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2203/00—Indexing scheme relating to G06F3/00 - G06F3/048
- G06F2203/048—Indexing scheme relating to G06F3/048
- G06F2203/04803—Split screen, i.e. subdividing the display area or the window area into separate subareas
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- Business, Economics & Management (AREA)
- User Interface Of Digital Computer (AREA)
- Information Transfer Between Computers (AREA)
Abstract
다양한 실시예들에 따른 전자 장치(electronic device)는, 통신 회로와, 터치스크린과, RCS(rich communication service)를 지원하는 어플리케이션을 저장하는 적어도 하나의 메모리와, 적어도 하나의 프로세서를 포함할 수 있고, 상기 적어도 하나의 프로세서는, 외부 장치로부터 상기 통신 회로를 통해, RCS 메시지를 상기 어플리케이션을 이용하여 수신하고, 상기 RCS 메시지의 헤더(header)에 포함된 데이터에 기반하여, 상기 RCS 메시지가 제1 타입인지 제2 타입인지 여부를 식별하고, 상기 메시지가 제1 타입이라는 식별에 기반하여, 상기 RCS 메시지로부터 제1 레이아웃 객체(layout object)를 식별하고, 상기 제1 레이아웃 객체 하위의(under) 제2 객체들 각각이 콘텐트(content) 객체인지, 상기 콘텐트 객체에 의해 제공되는 복수의 콘텐츠가 상기 터치스크린 상에 표시될 상대적 위치(relative position)를 나타내기 위한 레이아웃 객체인지 식별하고, 상기 레이아웃 객체에 기반하여 식별된 상대적 위치에 기반하여, 상기 복수의 콘텐츠를 표시하도록 구성될 수 있다.
Description
후술되는 다양한 실시예들은, 일반적으로(generally) 통신(communication)을 이용하여 송신되거나 수신되는 메시지에 관한 것이다. 보다 구체적으로(more particularly), 다양한 실시예들은, 다이나믹 레이아웃 메시지(dynamic layout message)를 위한 전자 장치(electronic device), 방법, 및 컴퓨터 판독가능 매체(computer readable medium)에 관한 것이다.
RCS(rich communication service)는 이동 통신 사업자(mobile operator), 장비 제조업체(OEM, original equipment manufacturer), 및 운영체제(OS, operating system) 제공자(provider) 사이의 프로토콜(protocol)이다. 전자 장치(electronic device) 내에서 상기 RCS를 제공하기 위한 표준(standard)의 설정(set)이 상기 이동 통신 사업자, 장비 제조업체, 및 운영 체제 제공자 사이에서 이뤄지고(being made) 있다.
RCS(rich communication service) 메시지는, 인스턴트 메시징 서비스(instant messaging service)의 메시지와 달리, 미리 정해진(pre-defined) 배치로 콘텐츠(contents)를 표시하고 있다.
본 문서에서 이루고자 하는 기술적 과제는 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
다양한 실시예들에 따른 전자 장치(electronic device)는, 통신 회로와, 터치스크린과, RCS(rich communication service)를 지원하는 어플리케이션을 저장하는 적어도 하나의 메모리와, 적어도 하나의 프로세서를 포함할 수 있고, 상기 적어도 하나의 프로세서는, 외부 장치로부터 상기 통신 회로를 통해, RCS 메시지를 상기 어플리케이션을 이용하여 수신하고, 상기 RCS 메시지의 헤더(header)에 포함된 데이터에 기반하여, 상기 RCS 메시지가 제1 타입인지 제2 타입인지 여부를 식별하고, 상기 메시지가 제1 타입이라는 식별에 기반하여, 상기 RCS 메시지로부터 제1 레이아웃 객체(layout object)를 식별하고, 상기 제1 레이아웃 객체 하위의(under) 제2 객체들 각각이 콘텐트(content) 객체인지, 상기 콘텐트 객체에 의해 제공되는 복수의 콘텐츠가 상기 터치스크린 상에 표시될 상대적 위치(relative position)를 나타내기 위한 레이아웃 객체인지 식별하고, 상기 레이아웃 객체에 기반하여 식별된 상대적 위치에 기반하여, 상기 복수의 콘텐츠를 표시하도록 구성될 수 있다.
다양한 실시예들에 따른 전자 장치(electronic device)는, 통신 회로와, 디스플레이와, 인스트럭션(instruction)들 및 RCS(rich communication service)를 지원하는 어플리케이션을 저장하는 적어도 하나의 메모리와, 외부 장치로부터 상기 통신 회로를 통해, RCS 메시지를 상기 어플리케이션을 이용하여 수신하고, 상기 RCS 메시지의 헤더(header)에 포함된 데이터에 기반하여, 상기 RCS 메시지가 제1 타입의 메시지임을 식별하고, 상기 식별에 기반하여, 상기 RCS 메시지로부터 제1 레이아웃 객체(layout object)를 식별하고, 상기 제1 레이아웃 객체의 식별에 기반하여, 상기 제1 레이아웃 객체 하위의(under) 제2 객체들 각각이 상기 어플리케이션의 사용자 인터페이스 내에서 상기 디스플레이를 이용하여 복수의 콘텐츠(contents) 각각을 제공하기 위해 이용되는 콘텐트(content) 객체인지 상기 복수의 콘텐츠의 상대적 위치(relative position)를 결정하기 위한 레이아웃 객체인지 여부를 결정하도록, 상기 인스트럭션들을 실행하도록 구성된 적어도 하나의 프로세서를 포함할 수 있다.
다양한 실시예들에 따른 전자 장치는, 인스트럭션들을 저장하는 메모리와, 통신 회로와, 제1 레이아웃 객체(layout object), 상기 제1 레이아웃 객체의 하위의 콘텐트 객체(content object)들, 상기 제1 레이아웃 객체의 하위의 제2 레이아웃 객체, 및 상기 제2 레이아웃 객체의 하위의 다른(other) 콘텐트 객체들을 포함하는 RCS(rich communication service) 메시지를 획득하고, 상기 획득된 RCS 메시지를 상기 통신 회로를 통해 외부 장치에게 송신하도록, 상기 인스트럭션들을 실행하도록 구성되는 적어도 하나의 프로세서를 포함할 수 있고, 상기 제1 레이아웃 객체는, 상기 콘텐트 객체들의 상대적 위치를 결정하기 위해 이용될 수 있고, 상기 제2 레이아웃 객체는, 상기 다른 콘텐트 객체들의 상대적 위치를 결정하기 위해 이용될 수 있으며, 상기 콘텐트 객체들 및 상기 다른 콘텐트 객체들 각각은, 상기 RCS 메시지의 복수의 콘텐츠를 제공하기 위해 이용될 수 있다.
다양한 실시예들에 따른 비일시적 컴퓨터 판독 가능 저장 매체(non-transitory computer readable storage medium)는, 통신 회로, 디스플레이, 및 인스트럭션(instruction)들 및 RCS(rich communication service)를 지원하는 어플리케이션을 저장하는 적어도 하나의 메모리를 가지는 전자 장치의 하나 이상의 프로세서들에 의해 실행될 시, 외부 장치로부터 상기 통신 회로를 통해, RCS 메시지를 상기 어플리케이션을 이용하여 수신하고, 상기 RCS 메시지의 헤더(header)에 포함된 데이터에 기반하여, 상기 RCS 메시지가 제1 타입의 메시지임을 식별하고, 상기 식별에 기반하여, 상기 RCS 메시지로부터 제1 레이아웃 객체(layout object)를 식별하고, 상기 제1 레이아웃 객체의 식별에 기반하여, 상기 제1 레이아웃 객체 하위의(under) 제2 객체들 각각이 상기 어플리케이션의 사용자 인터페이스 내에서 상기 디스플레이를 이용하여 복수의 콘텐츠(contents) 각각을 제공하기 위해 이용되는 콘텐트(content) 객체인지 상기 복수의 콘텐츠의 상대적 위치(relative position)를 결정하기 위한 레이아웃 객체인지 여부를 결정하도록, 상기 전자 장치를 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램들을 저장할 수 있다.
다양한 실시예들에 따른 비일시적 컴퓨터 판독 가능 저장 매체(non-transitory computer readable storage medium)는, 통신 회로를 가지는 전자 장치의 하나 이상의 프로세서들에 의해 실행될 시, 제1 레이아웃 객체(layout object), 상기 제1 레이아웃 객체의 하위의 콘텐트 객체(content object)들, 상기 제1 레이아웃 객체의 하위의 제2 레이아웃 객체, 및 상기 제2 레이아웃 객체의 하위의 다른(other) 콘텐트 객체들을 포함하는 RCS(rich communication service) 메시지를 획득하고, 상기 획득된 RCS 메시지를 상기 통신 회로를 통해 외부 장치에게 송신하도록, 상기 전자 장치를 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램들을 저장할 수 있고, 상기 제1 레이아웃 객체는, 상기 콘텐트 객체들의 상대적 위치를 결정하기 위해 이용될 수 있고, 상기 제2 레이아웃 객체는, 상기 다른 콘텐트 객체들의 상대적 위치를 결정하기 위해 이용될 수 있으며, 상기 콘텐트 객체들 및 상기 다른 콘텐트 객체들 각각은, 상기 RCS 메시지의 복수의 콘텐츠를 제공하기 위해 이용될 수 있다.
다양한 실시 예들에 따른 상황에 따른 전자 장치(electronic device), 방법, 및 컴퓨터 판독가능 매체(computer readable medium)는, 다이나믹 레이아웃 메시지를 통해, 콘텐츠의 종류에 따라 다른 배치를 가지는 콘텐츠를 표시할 수 있다.
본 개시에서 얻을 수 있는 효과는 이상에서 언급한 효과들로 제한되지 않으며, 언급하지 않은 또 다른 효과들은 아래의 기재로부터 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자에게 명확하게 이해될 수 있을 것이다.
도 1은, 다양한 실시예들에 따른, 네트워크 환경 내의 전자 장치의 블록도이다.
도 2는 다양한 실시예들에 따른 전자 장치를 포함하는 환경의 예를 도시하는 시스템도(system diagram)이다.
도 3은 다양한 실시예들에 따른 RCS 메시지의 구조의 예를 도시한다.
도 4는 다양한 실시예들에 따른 전자 장치 내에서 표시되는 RCS 메시지의 콘텐츠의 예를 도시한다.
도 5는, 다양한 실시예들에 따른 RCS 메시지의 트리 구조의 예를 도시한다.
도 6은 다양한 실시예들에 따른 전자 장치가 수신된 RCS 메시지의 콘텐츠를 표시하는 방법의 예를 도시한다.
도 7은 다양한 실시예들에 따른 전자 장치의 디스플레이 상에서 표시되는 RCS 메시지의 콘텐츠의 예를 도시한다.
도 8은 다양한 실시예들에 따라 RCS 메시지를 처리하는 방법을 도시하는 흐름도이다.
도 9는 다양한 실시예들에 따른 RCS 메시지에 대한 정보를 표시하는 방법을 도시하는 흐름도(flow diagram)이다.
도 10은 다양한 실시예들에 따른 RCS 메시지를 송신하는 방법을 도시하는 흐름도이다.
도 2는 다양한 실시예들에 따른 전자 장치를 포함하는 환경의 예를 도시하는 시스템도(system diagram)이다.
도 3은 다양한 실시예들에 따른 RCS 메시지의 구조의 예를 도시한다.
도 4는 다양한 실시예들에 따른 전자 장치 내에서 표시되는 RCS 메시지의 콘텐츠의 예를 도시한다.
도 5는, 다양한 실시예들에 따른 RCS 메시지의 트리 구조의 예를 도시한다.
도 6은 다양한 실시예들에 따른 전자 장치가 수신된 RCS 메시지의 콘텐츠를 표시하는 방법의 예를 도시한다.
도 7은 다양한 실시예들에 따른 전자 장치의 디스플레이 상에서 표시되는 RCS 메시지의 콘텐츠의 예를 도시한다.
도 8은 다양한 실시예들에 따라 RCS 메시지를 처리하는 방법을 도시하는 흐름도이다.
도 9는 다양한 실시예들에 따른 RCS 메시지에 대한 정보를 표시하는 방법을 도시하는 흐름도(flow diagram)이다.
도 10은 다양한 실시예들에 따른 RCS 메시지를 송신하는 방법을 도시하는 흐름도이다.
도 1은, 다양한 실시예들에 따른, 네트워크 환경(100) 내의 전자 장치(101)의 블럭도이다. 도 1을 참조하면, 네트워크 환경(100)에서 전자 장치(101)는 제1 네트워크(198)(예: 근거리 무선 통신 네트워크)를 통하여 전자 장치(102)와 통신하거나, 또는 제2 네트워크(199)(예: 원거리 무선 통신 네트워크)를 통하여 전자 장치(104) 또는 서버(108)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 서버(108)를 통하여 전자 장치(104)와 통신할 수 있다. 일실시예에 따르면, 전자 장치(101)는 프로세서(120), 메모리(130), 입력 장치(150), 음향 출력 장치(155), 표시 장치(160), 오디오 모듈(170), 센서 모듈(176), 인터페이스(177), 햅틱 모듈(179), 카메라 모듈(180), 전력 관리 모듈(188), 배터리(189), 통신 모듈(190), 가입자 식별 모듈(196), 또는 안테나 모듈(197)을 포함할 수 있다. 어떤 실시예에서는, 전자 장치(101)에는, 이 구성요소들 중 적어도 하나(예: 표시 장치(160) 또는 카메라 모듈(180))가 생략되거나, 하나 이상의 다른 구성 요소가 추가될 수 있다. 어떤 실시예에서는, 이 구성요소들 중 일부들은 하나의 통합된 회로로 구현될 수 있다. 예를 들면, 센서 모듈(176)(예: 지문 센서, 홍채 센서, 또는 조도 센서)은 표시 장치(160)(예: 디스플레이)에 임베디드된 채 구현될 수 있다
프로세서(120)는, 예를 들면, 소프트웨어(예: 프로그램(140))를 실행하여 프로세서(120)에 연결된 전자 장치(101)의 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)을 제어할 수 있고, 다양한 데이터 처리 또는 연산을 수행할 수 있다. 일실시예에 따르면, 데이터 처리 또는 연산의 적어도 일부로서, 프로세서(120)는 다른 구성요소(예: 센서 모듈(176) 또는 통신 모듈(190))로부터 수신된 명령 또는 데이터를 휘발성 메모리(132)에 로드하고, 휘발성 메모리(132)에 저장된 명령 또는 데이터를 처리하고, 결과 데이터를 비휘발성 메모리(134)에 저장할 수 있다. 일실시예에 따르면, 프로세서(120)는 메인 프로세서(121)(예: 중앙 처리 장치 또는 어플리케이션 프로세서), 및 이와는 독립적으로 또는 함께 운영 가능한 보조 프로세서(123)(예: 그래픽 처리 장치, 이미지 시그널 프로세서, 센서 허브 프로세서, 또는 커뮤니케이션 프로세서)를 포함할 수 있다. 추가적으로 또는 대체적으로, 보조 프로세서(123)은 메인 프로세서(121)보다 저전력을 사용하거나, 또는 지정된 기능에 특화되도록 설정될 수 있다. 보조 프로세서(123)는 메인 프로세서(121)와 별개로, 또는 그 일부로서 구현될 수 있다.
보조 프로세서(123)는, 예를 들면, 메인 프로세서(121)가 인액티브(예: 슬립) 상태에 있는 동안 메인 프로세서(121)를 대신하여, 또는 메인 프로세서(121)가 액티브(예: 어플리케이션 실행) 상태에 있는 동안 메인 프로세서(121)와 함께, 전자 장치(101)의 구성요소들 중 적어도 하나의 구성요소(예: 표시 장치(160), 센서 모듈(176), 또는 통신 모듈(190))와 관련된 기능 또는 상태들의 적어도 일부를 제어할 수 있다. 일실시예에 따르면, 보조 프로세서(123)(예: 이미지 시그널 프로세서 또는 커뮤니케이션 프로세서)는 기능적으로 관련 있는 다른 구성 요소(예: 카메라 모듈(180) 또는 통신 모듈(190))의 일부로서 구현될 수 있다.
메모리(130)는, 전자 장치(101)의 적어도 하나의 구성요소(예: 프로세서(120) 또는 센서모듈(176))에 의해 사용되는 다양한 데이터를 저장할 수 있다. 데이터는, 예를 들어, 소프트웨어(예: 프로그램(140)) 및, 이와 관련된 명령에 대한 입력 데이터 또는 출력 데이터를 포함할 수 있다. 메모리(130)는, 휘발성 메모리(132) 또는 비휘발성 메모리(134)를 포함할 수 있다.
프로그램(140)은 메모리(130)에 소프트웨어로서 저장될 수 있으며, 예를 들면, 운영 체제(142), 미들 웨어(144) 또는 어플리케이션(146)을 포함할 수 있다.
입력 장치(150)는, 전자 장치(101)의 구성요소(예: 프로세서(120))에 사용될 명령 또는 데이터를 전자 장치(101)의 외부(예: 사용자)로부터 수신할 수 있다. 입력 장치(150)은, 예를 들면, 마이크, 마우스, 키보드, 또는 디지털 펜(예:스타일러스 펜)을 포함할 수 있다.
음향 출력 장치(155)는 음향 신호를 전자 장치(101)의 외부로 출력할 수 있다. 음향 출력 장치(155)는, 예를 들면, 스피커 또는 리시버를 포함할 수 있다. 스피커는 멀티미디어 재생 또는 녹음 재생과 같이 일반적인 용도로 사용될 수 있고, 리시버는 착신 전화를 수신하기 위해 사용될 수 있다. 일실시예에 따르면, 리시버는 스피커와 별개로, 또는 그 일부로서 구현될 수 있다.
표시 장치(160)는 전자 장치(101)의 외부(예: 사용자)로 정보를 시각적으로 제공할 수 있다. 표시 장치(160)은, 예를 들면, 디스플레이, 홀로그램 장치, 또는 프로젝터 및 해당 장치를 제어하기 위한 제어 회로를 포함할 수 있다. 일실시예에 따르면, 표시 장치(160)는 터치를 감지하도록 설정된 터치 회로(touch circuitry), 또는 상기 터치에 의해 발생되는 힘의 세기를 측정하도록 설정된 센서 회로(예: 압력 센서)를 포함할 수 있다.
오디오 모듈(170)은 소리를 전기 신호로 변환시키거나, 반대로 전기 신호를 소리로 변환시킬 수 있다. 일실시예에 따르면, 오디오 모듈(170)은, 입력 장치(150)를 통해 소리를 획득하거나, 음향 출력 장치(155), 또는 전자 장치(101)와 직접 또는 무선으로 연결된 외부 전자 장치(예: 전자 장치(102)) (예: 스피커 또는 헤드폰))를 통해 소리를 출력할 수 있다.
센서 모듈(176)은 전자 장치(101)의 작동 상태(예: 전력 또는 온도), 또는 외부의 환경 상태(예: 사용자 상태)를 감지하고, 감지된 상태에 대응하는 전기 신호 또는 데이터 값을 생성할 수 있다. 일실시예에 따르면, 센서 모듈(176)은, 예를 들면, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러 센서, IR(infrared) 센서, 생체 센서, 온도 센서, 습도 센서, 또는 조도 센서를 포함할 수 있다.
인터페이스(177)는 전자 장치(101)이 외부 전자 장치(예: 전자 장치(102))와 직접 또는 무선으로 연결되기 위해 사용될 수 있는 하나 이상의 지정된 프로토콜들을 지원할 수 있다. 일실시예에 따르면, 인터페이스(177)는, 예를 들면, HDMI(high definition multimedia interface), USB(universal serial bus) 인터페이스, SD카드 인터페이스, 또는 오디오 인터페이스를 포함할 수 있다.
연결 단자(178)는, 그를 통해서 전자 장치(101)가 외부 전자 장치(예: 전자 장치(102))와 물리적으로 연결될 수 있는 커넥터를 포함할 수 있다. 일실시예에 따르면, 연결 단자(178)은, 예를 들면, HDMI 커넥터, USB 커넥터, SD 카드 커넥터, 또는 오디오 커넥터(예: 헤드폰 커넥터)를 포함할 수 있다.
햅틱 모듈(179)은 전기적 신호를 사용자가 촉각 또는 운동 감각을 통해서 인지할 수 있는 기계적인 자극(예: 진동 또는 움직임) 또는 전기적인 자극으로 변환할 수 있다. 일실시예에 따르면, 햅틱 모듈(179)은, 예를 들면, 모터, 압전 소자, 또는 전기 자극 장치를 포함할 수 있다.
카메라 모듈(180)은 정지 영상 및 동영상을 촬영할 수 있다. 일실시예에 따르면, 카메라 모듈(180)은 하나 이상의 렌즈들, 이미지 센서들, 이미지 시그널 프로세서들, 또는 플래시들을 포함할 수 있다.
전력 관리 모듈(188)은 전자 장치(101)에 공급되는 전력을 관리할 수 있다. 일실시예에 따르면, 전력 관리 모듈(388)은, 예를 들면, PMIC(power management integrated circuit)의 적어도 일부로서 구현될 수 있다.
배터리(189)는 전자 장치(101)의 적어도 하나의 구성 요소에 전력을 공급할 수 있다. 일실시예에 따르면, 배터리(189)는, 예를 들면, 재충전 불가능한 1차 전지, 재충전 가능한 2차 전지 또는 연료 전지를 포함할 수 있다.
통신 모듈(190)은 전자 장치(101)와 외부 전자 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(108))간의 직접(예: 유선) 통신 채널 또는 무선 통신 채널의 수립, 및 수립된 통신 채널을 통한 통신 수행을 지원할 수 있다. 통신 모듈(190)은 프로세서(120)(예: 어플리케이션 프로세서)와 독립적으로 운영되고, 직접(예: 유선) 통신 또는 무선 통신을 지원하는 하나 이상의 커뮤니케이션 프로세서를 포함할 수 있다. 일실시예에 따르면, 통신 모듈(190)은 무선 통신 모듈(192)(예: 셀룰러 통신 모듈, 근거리 무선 통신 모듈, 또는 GNSS(global navigation satellite system) 통신 모듈) 또는 유선 통신 모듈(194)(예: LAN(local area network) 통신 모듈, 또는 전력선 통신 모듈)을 포함할 수 있다. 이들 통신 모듈 중 해당하는 통신 모듈은 제1 네트워크(198)(예: 블루투스, WiFi direct 또는 IrDA(infrared data association) 같은 근거리 통신 네트워크) 또는 제2 네트워크(199)(예: 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크(예: LAN 또는 WAN)와 같은 원거리 통신 네트워크)를 통하여 외부 전자 장치와 통신할 수 있다. 이런 여러 종류의 통신 모듈들은 하나의 구성 요소(예: 단일 칩)으로 통합되거나, 또는 서로 별도의 복수의 구성 요소들(예: 복수 칩들)로 구현될 수 있다. 무선 통신 모듈(192)은 가입자 식별 모듈(196)에 저장된 가입자 정보(예: 국제 모바일 가입자 식별자(IMSI))를 이용하여 제1 네트워크(198) 또는 제2 네트워크(199)와 같은 통신 네트워크 내에서 전자 장치(101)를 확인 및 인증할 수 있다.
안테나 모듈(197)은 신호 또는 전력을 외부(예: 외부 전자 장치)로 송신하거나 외부로부터 수신할 수 있다. 일실시예에 따르면, 안테나 모듈은 서브스트레이트(예: PCB) 위에 형성된 도전체 또는 도전성 패턴으로 이루어진 방사체를 포함하는 하나의 안테나를 포함할 수 있다. 일실시예에 따르면, 안테나 모듈(197)은 복수의 안테나들을 포함할 수 있다. 이런 경우, 제1 네트워크(198) 또는 제2 네트워크(199)와 같은 통신 네트워크에서 사용되는 통신 방식에 적합한 적어도 하나의 안테나가, 예를 들면, 통신 모듈(190)에 의하여 상기 복수의 안테나들로부터 선택될 수 있다. 신호 또는 전력은 상기 선택된 적어도 하나의 안테나를 통하여 통신 모듈(190)과 외부 전자 장치 간에 송신되거나 수신될 수 있다. 어떤 실시예에 따르면, 방사체 이외에 다른 부품(예: RFIC)이 추가로 안테나 모듈(197)의 일부로 형성될 수 있다.
상기 구성요소들 중 적어도 일부는 주변 기기들간 통신 방식(예: 버스, GPIO(general purpose input and output), SPI(serial peripheral interface), 또는 MIPI(mobile industry processor interface))를 통해 서로 연결되고 신호(예: 명령 또는 데이터)를 상호간에 교환할 수 있다.
일실시예에 따르면, 명령 또는 데이터는 제2 네트워크(199)에 연결된 서버(108)를 통해서 전자 장치(101)와 외부의 전자 장치(104)간에 송신 또는 수신될 수 있다. 전자 장치(102, 104) 각각은 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 일실시예에 따르면, 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 외부 전자 장치들(102, 104, or 108) 중 하나 이상의 외부 장치들에서 실행될 수 있다. 예를 들면, 전자 장치(101)가 어떤 기능이나 서비스를 자동으로, 또는 사용자 또는 다른 장치로부터의 요청에 반응하여 수행해야 할 경우에, 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 하나 이상의 외부 전자 장치들에게 그 기능 또는 그 서비스의 적어도 일부를 수행하라고 요청할 수 있다. 상기 요청을 수신한 하나 이상의 외부 전자 장치들은 요청된 기능 또는 서비스의 적어도 일부, 또는 상기 요청과 관련된 추가 기능 또는 서비스를 실행하고, 그 실행의 결과를 전자 장치(101)로 전달할 수 있다. 전자 장치(101)는 상기 결과를, 그대로 또는 추가적으로 처리하여, 상기 요청에 대한 응답의 적어도 일부로서 제공할 수 있다. 이를 위하여, 예를 들면, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.
본 문서에 개시된 다양한 실시예들에 따른 전자 장치는 다양한 형태의 장치가 될 수 있다. 전자 장치는, 예를 들면, 휴대용 통신 장치 (예: 스마트폰), 컴퓨터 장치, 휴대용 멀티미디어 장치, 휴대용 의료 기기, 카메라, 웨어러블 장치, 또는 가전 장치를 포함할 수 있다. 본 문서의 실시예에 따른 전자 장치는 전술한 기기들에 한정되지 않는다.
본 문서의 다양한 실시예들 및 이에 사용된 용어들은 본 문서에 기재된 기술적 특징들을 특정한 실시예들로 한정하려는 것이 아니며, 해당 실시예의 다양한 변경, 균등물, 또는 대체물을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 또는 관련된 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다. 아이템에 대응하는 명사의 단수 형은 관련된 문맥상 명백하게 다르게 지시하지 않는 한, 상기 아이템 한 개 또는 복수 개를 포함할 수 있다. 본 문서에서, "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)(예: 전자 장치(101)) 의해 읽을 수 있는 저장 매체(storage medium)(예: 내장 메모리(136) 또는 외장 메모리(138))에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램(140))로서 구현될 수 있다. 예를 들면, 기기(예: 전자 장치(101))의 프로세서(예: 프로세서(120))는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, ‘비일시적’은 저장매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
일실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어(예: 플레이 스토어TM)를 통해 또는 두개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시예들에 따르면, 상기 기술한 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있다. 다양한 실시예들에 따르면, 전술한 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 다양한 실시예들에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.
도 2는 다양한 실시예들에 따른 전자 장치를 포함하는 환경의 예를 도시하는 시스템도(system diagram)이다. 상기 환경은, 도 1에 도시된 전자 장치(101)를 포함할 수 있다.
도 2를 참조하면, 환경(200)은, 전자 장치(101), 복수의 제1 서버들(210-1 내지 210-3), 제2 서버(220), 및 제3 서버(230)를 포함할 수 있다.
다양한 실시예들에서, 복수의 제1 서버들(210-1 내지 210-3) 각각은, Json의 문법(grammar)으로 지시된(indicated) 리치 카드(rich card) 포맷의 RCS 메시지를 획득하거나 생성할 수 있다. 예를 들면, 복수의 제1 서버들(210-1 내지 210-3) 각각은, 챗봇 서비스(chatbot service)를 제공하기 위해, 상기 RCS 메시지를 획득하거나 생성할 수 있다. 다양한 실시예들에서, 상기 RCS 메시지는, 복수의 제1 서버들(210-1 내지 210-3) 각각의 리치 카드 생성 모듈(rich card creation module)에 의해 획득되거나 생성될 수 있다. 다양한 실시예들에 따른 상기 RCS 메시지의 구조는 도 3 내지 9의 설명을 통해 후술될 것이다. 예를 들면, 복수의 제1 서버들(210-1 내지 210-3) 각각은, 서비스 제공자의 챗봇 서버일 수 있다. 다양한 실시예들에서, 복수의 제1 서버들(210-1 내지 210-3) 각각은, 상기 획득되거나 생성된 상기 RCS 메시지를 전자 장치(101)에게 제공하기 위해, 제2 서버(220)에게 상기 RCS 메시지를 송신할 수 있다. 상기 RCS 메시지는, 복수의 제1 서버들(210-1 내지 210-3) 각각의 통신 회로를 통해, 제2 서버(220)에게 송신될 수 있다.
다양한 실시예들에서, 제2 서버(220)는, 상기 RCS 메시지를 수신할 수 있다. 다양한 실시예들에서, 제2 서버(220)는, 상기 RCS 메시지의 확인(validation)을 수행할 수 있다. 예를 들면, 제2 서버(220)는, 챗봇 플랫폼(chatbot platform) 서버일 수 있다. 다양한 실시예들에서, 제2 서버(220)는, 상기 확인된 RCS 메시지를 제3 서버(230)에게 송신할 수 있다. 상기 확인된 RCS 메시지는, 제2 서버(220)의 통신 회로를 통해, 제3 서버(230)에게 송신될 수 있다.
다양한 실시예들에서, 제3 서버(230)는, 상기 RCS 메시지를 수신할 수 있다. 다양한 실시예들에서, 제3 서버(230)는, 상기 RCS 메시지가 전자 장치(101)에 적합하도록, 상기 RCS 메시지의 프로세싱을 수행할 수 있다. 예를 들면, 제3 서버(230)는, 이동 통신 사업자(mobile operator)의 RCS 메시징(messaging) 서버일 수 있다. 다양한 실시예들에서, 제3 서버(230)는, 상기 프로세싱을 수행한 상기 RCS 메시지를 전자 장치(101)에게 송신할 수 있다.
다양한 실시예들에서, 전자 장치(101)는, 상기 RCS 메시지를 수신할 수 있다. 다양한 실시예들에서, 전자 장치(101)는, 상기 RCS 메시지에 대한 정보를 전자 장치(101)의 디스플레이(예: 표시 장치(160))를 통해 표시할 수 있다. 다양한 실시예들에서, 전자 장치(101)는, 상기 RCS 메시지에 포함된 콘텐트 객체(content object)들을 이용하여, 상기 RCS 메시지의 콘텐츠(contents)를 표시할 수 있다. 다양한 실시예들에 따른 상기 RCS 메시지를 전자 장치(101)의 디스플레이 상에서 표시하는 방법은, 도 3 내지 도 9의 설명을 통해 후술될 것이다. 다양한 실시예들에서, 표시 장치(160)를 통해 표시되는 상기 RCS 메시지는, 다이나믹 레이아웃(layout)으로 구성될(configured with) 수 있다. 다양한 실시예들에서, 전자 장치(101)에 수신된 상기 RCS 메시지는 레이아웃 객체(layout object)들을 포함하기 때문에, 표시 장치(160)를 통해 표시되는 상기 RCS 메시지의 상기 콘텐츠는 미리 정의된(pre-defined) 배치(arrangement)들과 구별되는 다양한 배치들 중 하나의 배치를 가질 수 있다. 다양한 실시예들에서, 상기 RCS 메시지는, 미리 정의된 배치들과 구별되는 다양한 배치들로 구성될 수 있다는 측면에서, 오픈 리치 카드 데이터(open rich card data)로 참조될 수 있다.
다양한 실시예들에 따른 전자 장치(electronic device)는, 통신 회로와, 터치스크린과, RCS(rich communication service)를 지원하는 어플리케이션을 저장하는 적어도 하나의 메모리와, 적어도 하나의 프로세서를 포함할 수 있고, 상기 적어도 하나의 프로세서는, 외부 장치로부터 상기 통신 회로를 통해, RCS 메시지를 상기 어플리케이션을 이용하여 수신하고, 상기 RCS 메시지의 헤더(header)에 포함된 데이터에 기반하여, 상기 RCS 메시지가 제1 타입인지 제2 타입인지 여부를 식별하고, 상기 메시지가 제1 타입이라는 식별에 기반하여, 상기 RCS 메시지로부터 제1 레이아웃 객체(layout object)를 식별하고, 상기 제1 레이아웃 객체 하위의(under) 제2 객체들 각각이 콘텐트(content) 객체인지, 상기 콘텐트 객체에 의해 제공되는 복수의 콘텐츠가 상기 터치스크린 상에 표시될 상대적 위치(relative position)를 나타내기 위한 레이아웃 객체인지 식별하고, 상기 레이아웃 객체에 기반하여 식별된 상대적 위치에 기반하여, 상기 복수의 콘텐츠를 표시하도록 구성될 수 있다.
다양한 실시예들에 따른 전자 장치(electronic device)는, 통신 회로와, 디스플레이와, 인스트럭션(instruction)들 및 RCS(rich communication service)를 지원하는 어플리케이션을 저장하는 적어도 하나의 메모리와, 적어도 하나의 프로세서를 포함할 수 있고, 상기 적어도 하나의 프로세서는, 외부 장치로부터 상기 통신 회로를 통해, RCS 메시지를 상기 어플리케이션을 이용하여 수신하고, 상기 RCS 메시지의 헤더(header)에 포함된 데이터에 기반하여, 상기 RCS 메시지가 제1 타입의 메시지임을 식별하고, 상기 식별에 기반하여, 상기 RCS 메시지로부터 제1 레이아웃 객체(layout object)를 식별하고, 상기 제1 레이아웃 객체의 식별에 기반하여, 상기 제1 레이아웃 객체 하위의(under) 제2 객체들 각각이 상기 어플리케이션의 사용자 인터페이스 내에서 상기 디스플레이를 이용하여 복수의 콘텐츠(contents) 각각을 제공하기 위해 이용되는 콘텐트(content) 객체인지 상기 복수의 콘텐츠의 상대적 위치(relative position)를 결정하기 위한 레이아웃 객체인지 여부를 결정하도록, 상기 인스트럭션들을 실행하도록 구성될 수 있다.
다양한 실시예들에서, 상기 적어도 하나의 프로세서는, 상기 결정에 응답하여, 상기 상대적 위치에 적어도 기반하여 배치된(arranged) 상기 복수의 콘텐츠를 상기 사용자 인터페이스 내에서 상기 디스플레이를 이용하여 제공하도록, 상기 인스트럭션들을 실행하도록 더 구성될 수 있다.
다양한 실시예들에서, 상기 적어도 하나의 프로세서는, 상기 상대적 위치에 적어도 기반하여, 상기 복수의 콘텐츠를 가로로(horizontally) 표시하거나 세로로(vertically) 표시하도록, 상기 인스트럭션들을 실행하도록 구성될 수 있다.
다양한 실시예들에서, 상기 적어도 하나의 프로세서는, 상기 RCS 메시지의 상기 헤더에 포함된 상기 데이터에 기반하여, 상기 RCS 메시지가 제2 타입의 메시지임을 식별하고, 상기 RCS 메시지가 상기 제2 타입의 메시지라는 식별에 기반하여, 미리 정의된 구조로 상기 사용자 인터페이스 안에서 상기 RCS 메시지의 콘텐츠를 표시하도록, 상기 인스트럭션들을 실행하도록 더 구성될 수 있다.
다양한 실시예들에서, 상기 적어도 하나의 프로세서는, 상기 헤더 내의 상기 데이터 내의 콘텐트 타입(content type)의 필드에 기반하여, 상기 RCS 메시지가 상기 제1 타입의 메시지임을 식별하도록, 상기 인스트럭션들을 실행하도록 구성될 수 있다.
다양한 실시예들에서, 상기 제1 타입의 메시지는, 트리 구조로 구성된 데이터를 페이로드 내에 포함할 수 있다.
다양한 실시예들에서, 상기 외부 장치는, 챗봇 서버(chatbot server)를 포함할 수 있다.
다양한 실시예들에 따른, 전자 장치(electronic device)는, 인스트럭션들을 저장하는 메모리와, 통신 회로와, 적어도 하나의 프로세서를 포함할 수 있고, 상기 적어도 하나의 프로세서는, 제1 레이아웃 객체(layout object), 상기 제1 레이아웃 객체의 하위의 콘텐트 객체(content object)들, 상기 제1 레이아웃 객체의 하위의 제2 레이아웃 객체, 및 상기 제2 레이아웃 객체의 하위의 다른(other) 콘텐트 객체들을 포함하는 RCS(rich communication service) 메시지를 획득하고, 상기 획득된 RCS 메시지를 상기 통신 회로를 통해 외부 장치에게 송신하도록, 상기 인스트럭션들을 실행하도록 구성될 수 있으며, 상기 제1 레이아웃 객체는, 상기 콘텐트 객체들의 상대적 위치를 결정하기 위해 이용될 수 있고, 상기 제2 레이아웃 객체는, 상기 다른 콘텐트 객체들의 상대적 위치를 결정하기 위해 이용될 수 있으며, 상기 콘텐트 객체들 및 상기 다른 콘텐트 객체들 각각은, 상기 RCS 메시지의 복수의 콘텐츠를 제공하기 위해 이용될 수 있다.
다양한 실시예들에서, 상기 RCS 메시지는, 상기 RCS 메시지가 제1 타입의 메시지임을 나타내기 위한 데이터를 포함하는 헤더를 더 포함할 수 있다.
다양한 실시예들에서, 상기 제1 레이아웃 객체는, 상기 콘텐트 객체들에 의해 제공되는 콘텐츠를 상기 외부 장치 내에서 가로로 표시하거나 세로로 표시하기 위해 이용될 수 있다.
다양한 실시예들에서, 상기 콘텐트 객체들의 상대적 위치는, 상기 제1 레이아웃 객체의 오리엔테이션의 필드에 의해 결정되고, 상기 다른 콘텐트 객체들의 상대적 위치는, 상기 제2 레이아웃 객체의 오리엔테이션의 필드에 의해 결정될 수 있다.
다양한 실시예들에서, 상기 RCS 메시지는, RCS 메시징(messaging) 서버를 통해 상기 외부 장치에게 송신될 수 있다.
다양한 실시예들에서, 상기 제1 레이아웃 객체, 상기 콘텐트 객체들, 상기 제2 레이아웃 객체, 및 상기 다른 콘텐트 객체들은, 상기 RCS 메시지 내의 페이로드(payload) 내에 포함될 수 있다.
다양한 실시예들에서, 상기 콘텐트 객체는, 텍스트뷰 또는 이미지뷰로 구성될(configured with) 수 있다.
도 3은 다양한 실시예들에 따른 RCS 메시지의 구조의 예를 도시한다. 이러한 RCS 메시지는, 도 2에 도시된 복수의 제1 서버들 각각으로부터 송신되고, 도 1 또는 도 2에 도시된 전자 장치(101)에서 수신될 수 있다.
도 3을 참조하면, 구조(310-1) 및 구조(310-2) 각각은, 미리 정의된 배치(arrangement)를 가지는 RCS(rich communication service) 메시지의 구조일 수 있다. 예를 들면, 미리 정의된 배치를 가지는 RCS 메시지는, 구조(310-1)와 같이, 이미지를 포함하는 미디어 영역(media area), 타이틀 영역(title area), 설명 영역(description area), 및 실행가능한 객체를 포함하는 액션 영역(action area)의 순으로, 상기 미디어 영역, 상기 타이틀 영역, 상기 설명 영역, 및 상기 액션 영역을 세로로(vertically) 전자 장치(101)의 디스플레이(예: 표시 장치(160)) 상에서 표시할 수 있다. 다른 예를 들면, 미리 정의된 배치를 가지는 RCS 메시지는, 구조(310-2)와 같이, 상기 미디어 영역, 상기 타이틀 영역, 상기 설명 영역, 및 상기 액션 영역의 순으로, 상기 미디어 영역, 상기 타이틀 영역, 상기 설명 영역, 및 상기 액션 영역을 가로로(horizontally) 전자 장치(101)의 디스플레이 상에서 표시할 수 있다. 미리 정의된 배치를 가지는 RCS 메시지는, 구조(310-1) 또는 구조(310-2)와 구별되는 다른 구조로 콘텐츠를 표시하는 것이 제한될 수 있다. 예를 들면, 구조(310-1) 또는 구조(310-2)로 콘텐츠를 표시하는 RCS 메시지는, 후술되는 제1 타입의 메시지와 구별되는 제2 타입의 메시지일 수 있다. 예를 들면, 구조(310-1) 또는 구조(310-2)로 콘텐츠를 표시하는 RCS 메시지는, 상기 제2 타입의 메시지임을 나타내기(indicate) 위해, 상기 RCS 메시지 내의 헤더 내의 데이터의 콘텐트 타입(content type)의 필드 내에 "application/vnd.gsma.botmessage.v1.0+json"라는 정보를 포함할 수 있다.
구조(350-1) 및 구조(350-2) 각각은, 다양한 실시예들에 따른 RCS 메시지의 구조의 일(one) 예일 수 있다. 다양한 실시예들에 따른 RCS 메시지는 레이아웃 객체와, 상기 레이아웃 객체의 자식인(child 또는 children)인 다른 레이아웃 객체를 포함하기 때문에, 다양한 실시예들에 따른 RCS 메시지는, 미리 정의된 배치를 가지는 RCS 메시지와 달리, 다양한 배치들로 콘텐츠를 표시할 수 있다. 예를 들면, 다양한 실시예들에 따른 RCS 메시지는 구조(350-1)와 같이, 적어도 하나의 콘텐트를 배치하기 위한 수직(vertical) 레이아웃(360) 내에서 적어도 하나의 다른 콘텐트를 배치하기 위한 수평(horizontal) 레이아웃(365)을 포함하기 때문에, 다양한 실시예들에 따른 RCS 메시지는, 미리 정의된 배치를 가지는 RCS 메시지와 달리, 다양한 배치들로 콘텐츠를 표시할 수 있다. 다른 예를 들면, 다양한 실시예들에 따른 RCS 메시지는 구조(350-2)와 같이, 적어도 하나의 콘텐트를 배치하기 위한 수평 레이아웃(370) 내에서 적어도 하나의 다른 콘텐트를 배치하기 위한 수직 레이아웃(375)을 포함하기 때문에, 다양한 실시예들에 따른 RCS 메시지는 미리 정의된 배치를 가지는 RCS 메시지와 달리, 다양한 배치들로 콘텐츠를 표시할 수 있다. 다양한 실시예들에 따른 RCS 메시지는, 레이아웃 객체들 및 콘텐트 객체들로 구성되는 계층적 구조(hierarchical structure)의 데이터를 포함하기 때문에, 구조(350-1) 및 구조(350-2) 뿐 아니라 다양한 구조들로 상기 RCS 메시지의 콘텐츠를 표시할 수 있다. 예를 들면, 구조(350-1) 또는 구조(350-2)로 콘텐츠를 표시하는 상기 RCS 메시지는, 상기 제2 타입의 메시지와 구별되는 제1 타입의 메시지일 수 있다. 예를 들면, 구조(350-1) 또는 구조(350-2)로 콘텐츠를 표시하는 상기 RCS 메시지는, 상기 제1 타입의 메시지임을 나타내기(indicate) 위해, 상기 RCS 메시지 내의 헤더 내의 데이터의 콘텐트 타입(content type)의 필드 내에 "application/vnd.gsma.openrichcard+json"라는 정보를 포함할 수 있다.
도 4는 다양한 실시예들에 따른 전자 장치 내에서 표시되는 RCS 메시지의 콘텐츠의 예를 도시한다. 상기 RCS 메시지의 콘텐츠는, 도 1 또는 도 2에 도시된 전자 장치(101)에서 표시될 수 있고, 상기 RCS 메시지는, 도 2에 도시된 복수의 제1 서버들(210-1 내지 210-3) 각각에 의해 획득될 수 있다.
도 5는, 다양한 실시예들에 따른 RCS 메시지의 트리 구조의 예를 도시한다.
도 4 및 도 5를 참조하면, 외부 장치(예: 복수의 제1 서버들(210-1 내지 210-3) 중 하나의 서버)로부터 통신 회로(예: 통신 모듈(190))를 통해 RCS 메시지를 수신한 전자 장치(101)의 프로세서(120)는, 상기 RCS 메시지의 헤더 내의 데이터에 기반하여, 상기 RCS 메시지가 상기 제1 타입의 메시지임을 식별할 수 있다. 프로세서(120)는, 상기 식별에 적어도 일부 기반하여, 콘텐츠(410)를 디스플레이(예: 표시 장치(160))를 통해 표시할 수 있다. 콘텐츠(410)는, 구조(460)에 대한 정보를 포함하는 상기 RCS 메시지에 기반하여, 상기 디스플레이 상에서 표시될 수 있다. 예를 들면, 상기 RCS 메시지는, 수직(vertical) 레이아웃 객체(layout object)(461)인 제1 노드(501)를 포함할 수 있다. 본 문서에서, 도 5에 도시된 제1 노드(501) 내지 제17 노드(517)과 같은 노드는, 콘텐트 객체와 레이아웃 객체의 사이의 관계를 정의하기 위한 용어일 수 있다. 수직 레이아웃 객체(461)는, 제1 노드(501)의 자식 노드이고, 상기 RCS 메시지 내에 포함된 제2 노드(502), 제3 노드(503), 제4 노드(504), 및 제5 노드(505)의 배치를 결정할 수 있다.
예를 들면, 제2 노드(502)는, 수평 레이아웃 객체(462)일 수 있다. 수평 레이아웃 객체(462)는, 제2 노드(502)의 자식 노드이고, 상기 RCS 메시지 내에 포함된 제6 노드(506) 및 제7 노드(507)의 배치를 결정할 수 있다. 제6 노드(506)는, 콘텐트 객체(463)일 수 있다. 콘텐트 객체(463)는, 콘텐츠(410) 내에 포함된 이미지(411)를 표시하기 위해 이용될 수 있다. 이미지(411)는, 실행가능한 객체일 수 있다. 제7 노드(507)는, 콘텐트 객체(464)일 수 있다. 콘텐트 객체(464)는, 콘텐츠(410) 내에 포함된 텍스트(412)를 표시하기 위해 이용될 수 있다.
예를 들면, 제3 노드(503)는, 수평 레이아웃 객체(465)일 수 있다. 수평 레이아웃 객체(465)는, 제3 노드(503)의 자식 노드이고, 상기 RCS 메시지 내에 포함된 제8 노드(508) 및 제9 노드(509)의 배치를 결정할 수 있다. 제8 노드(508)는, 콘텐트 객체(466)일 수 있다. 콘텐트 객체(466)는, 콘텐츠(410) 내에 포함된 이미지(413)를 표시하기 위해 이용될 수 있다. 이미지(413)는 바 코드 또는 QR(quick response) 코드로 이용될 수 있고, 실행가능한 객체일 수 있다. 제9 노드(509)는, 수직 레이아웃 객체(467)일 수 있다. 수직 레이아웃 객체(467)는, 제9 노드(509)의 자식 노드이고, 상기 RCS 메시지 내에 포함된 제10 노드(510) 및 제11 노드(511)의 배치를 결정할 수 있다. 제10 노드(510)는, 수평 레이아웃 객체(468)일 수 있다. 수평 레이아웃 객체(468)은, 제10 노드(510)의 자식 노드이고, 상기 RCS 메시지 내에 포함된 제12 노드(512) 및 제13 노드(513)의 배치를 결정할 수 있다. 제12 노드(512)는, 수직 레이아웃 객체(469)일 수 있다. 수직 레이아웃 객체(469)는, 제12 노드(512)의 자식 노드이고, 상기 RCS 메시지 내에 포함된 제14 노드(514) 및 제15 노드(515)의 배치를 결정할 수 있다. 제14 노드(514)는 콘텐트 객체(470)일 수 있다. 콘텐트 객체(470)는, 콘텐츠(410) 내에 포함된 텍스트(414)를 표시하기 위해 이용될 수 있다. 제15 노드(515)는, 콘텐트 객체(471)일 수 있다. 콘텐트 객체(471)는, 콘텐츠(410) 내에 포함된 텍스트(415)를 표시하기 위해 이용될 수 있다. 제13 노드(513)는, 수직 레이아웃 객체(472)일 수 있다. 수직 레이아웃 객체(472)는, 제16 노드(516) 및 제17 노드(517)의 배치를 결정할 수 있다. 제16 노드(516)는, 콘텐트 객체(473)일 수 있다. 콘텐트 객체(473)는, 콘텐츠(410) 내에 포함된 텍스트(416)를 표시하기 위해 이용될 수 있다. 제17 노드(517)는, 콘텐트 객체(474)일 수 있다. 콘텐트 객체(474)는, 콘텐츠(410) 내에 포함된 텍스트(417)를 표시하기 위해 이용될 수 있다. 제11 노드(511)는, 콘텐트 객체(475)일 수 있다. 콘텐트 객체(475)는, 콘텐츠(410) 내에 포함된 텍스트(418)를 표시하기 위해 이용될 수 있다.
예를 들면, 제4 노드(504)는, 콘텐트 객체(476)일 수 있다. 콘텐트 객체(476)는, 콘텐츠(410) 내에 포함된 이미지(419)를 표시하기 위해 이용될 수 있다. 이미지(419)는, 실행가능한 객체일 수 있다.
예를 들면, 제5 노드(505)는, 콘텐트 객체(477)일 수 있다. 콘텐트 객체(477)는, 콘텐츠(410) 내에 포함된 텍스트(420)를 표시하기 위해 이용될 수 있다.
다양한 실시예들에서, 콘텐츠(410)를 표시하기 위한 상기 RCS 메시지는 하기의 표 1과 같은 정보를 포함함으로써, 구조(460)(또는 트리 구조(500))를 구현할 수 있다.
{ "card": "open_rich_card", "version": "1.0.0", "layout": { "widget": "LinearLayout", "width": "content", "height": "content", "background": "#FFFFFF", "orientation": "vertical", "padding": "5dp", "children": [ { "widget": "LinearLayout", "width": "parent", "height": "content", "gravity": "center_vertical", "orientation": "horizontal", "children": [ { "widget": "ImageView", "width": "45dp", "height": "30dp", "marginLeft": "5dp", "scaleType": "centerCrop", "mediaUrl": "@drawable/ic_train" }, { "widget": "TextView", "width": "content", "height": "content", "weight": "1", "text": "Virgin Train Trip", "textColor": "#79A2CA", "textSize": "18dp" } ] ... ... |
표 1에 도시된 바와 같이, 상기 RCS 메시지는, Json의 문법으로 지시된 리치 카드 포맷으로 구성될(configured with) 수 있다.
표 1에 도시된 바와 같이, 상기 제1 타입의 메시지인 상기 RCS 메시지는, 상기 RCS 메시지가 오픈 리치 카드임을 나타내기 위한 필드(예: "card": "open_rich_card")를 포함하고, 상기 오픈 리치 카드의 버전을 나타내기 위한 필드(예: "version": "1.0.0")를 포함하며, 상기 오픈 리치 카드의 내용을 나타내기 위한 필드(예: "layout": { 중략 })를 포함할 수 있다. 상기 오픈 리치 카드의 내용을 나타내기 위한 상기 필드는, 본 문서에서 객체로 정의될 수 있다. 상기 오픈 리치 카드의 내용을 나타내기 위한 필드는, i) 상기 RCS 메시지에 의해 제공되는 복수의 콘텐츠의 상대적 위치를 결정하기 위한 레이아웃 객체(예: "widget": "linearlayout"), ii) 상기 복수의 콘텐츠 중 텍스트로 구성된 콘텐트를 제공하기 위한 콘텐트 객체(예: "widget": "Textview"), iii) 상기 복수의 콘텐츠 중 이미지로 구성된 콘텐트를 제공하기 위한 콘텐트 객체(예: "widget": "ImageView"), 및 iv) 상기 복수의 콘텐츠로부터 다양한 액션들을 제공하기 위한 제안(suggestion)인 콘텐트 객체(예: "widget": suggestions") 중 하나를 포함할 수 있다.
상기 레이아웃 객체, 상기 콘텐트 객체들, 및 상기 제안은, 공통적으로 하기의 표 2와 같은 정보를 포함할 수 있다.
- "widget": "LinearLayout", "TextView", "ImageView", 또는 "Suggestion" - "width": dp단위의 숫자(10dp) 또는 "match" 또는 "content"로 정의되며, 표시할 너비를 나타낸다. - dp는 Android 운영 체제에서 사용하는 크기 단위이며, - match는 가능한 큰 크기를 나타내며, - content는 text등 내용을 표시하는데 필요한 최소 크기를 의미하고 실제 표시크기는 구현체에서 결정한다. - "height": dp단위의 숫자(10dp) 또는 "match" 또는 "content"로 정의되며, 표시할 높이를 나타낸다. |
상기 레이아웃 객체는, 상기 레이아웃 객체, 상기 콘텐트 객체들, 또는 상기 제안 중 하나 이상을 포함할 수 있다. 상기 레이아웃 객체는, 상기 콘텐트 객체들, 및 상기 제안과 달리, 하기의 표 3과 같은 정보를 더 포함할 수 있다.
- "orientation":"vertical" 또는 "horizontal": 포함된 object를 나열 순서에 따라 세로 또는 가로로 배치한다. - "child": JSON Array이며 LinearLayout(예: 상기 레이아웃 객체), TextView(예: 상기 콘텐트 객체), ImageView(예: 상기 콘텐트 객체), Suggestion(예: 상기 제안)이 한 개 이상 포함된다. |
상기 복수의 콘텐츠 중 텍스트로 구성된 콘텐트를 제공하기 위한 콘텐트 객체는, 하기의 표 4와 같은 정보를 더 포함할 수 있다.
- "text": 화면에 표시할 문자열을 나타낸다. (값의 예: "This is displayed text") - "textColor": 화면에 표시할 문자열의 색상을 나타낸다. (값의 예: "#FF445566") - "textSize": dp단위 숫자이며 화면에 표시할 문자열의 크기를 나타낸다. (값의 예: "10dp") |
상기 복수의 콘텐츠 중 이미지로 구성된 콘텐트를 제공하기 위한 콘텐트 객체는, 하기의 표 5와 같은 정보를 더 포함할 수 있다.
- "mediaUrl" : URL 문자열이며 화면에 표시할 이미지를 나타낸다. (값의 예: http://cnd.samsung.com/logo_image.jpg) |
표 1 내지 표 5를 통해 예시된 상기 제1 타입의 메시지인 상기 RCS 메시지는, 예를 들면, 하기의 표 6과 같이 정의된 view 및 값들에 의해 정의됨으로써, xml(extensible markup language)보다 작은 데이터 용량을 가지고, 레거시 레이아웃과 유사한 포맷으로 개발자가 쉽게 적응할 수 있도록 유도하며, 이미지 등 내부 콘텐트의 로딩을 제어할 수 있으며, 액션들을 수행할 수 있는 제안들(suggestions)을 제공할 수 있다.
View 종류 | 속성 | 값의 예 | 비고 |
공통 | "width" "height" |
"match" "wrap" dimen ("10dp") | 필수 dp만 지원 |
"weight" | "1.0" (float) | parent가 LinearLayout인 경우 | |
"background" | color hex ("#FFFFFFFF") | ||
"padding""paddingTop" "paddingLeft" "paddingRight" "paddingBottom" "margin" "marginTop" "marginBottom" "marginLeft" "marginRight" |
dimen ("10dp") | ||
LinearLayout | "widget":"LinearLayout" | ||
"orientation" | "vertical" "horizontal" | 필수 | |
"children" | "array" | ||
"gravity" | "bottom" "center" "center_horizontal" "center_vertical" "clip_horizontal" "clip_vertical" "end" "fill" "fill_horizontal" "fill_vertical" "left" "right" "start" "top" | 중첩 가능 ("bottom|end") | |
View | "widget" | "View" | gap, 수직선 등 용도 |
TextView | "widget" | "TextView" | |
"text" | String | ||
"textAlignment" | "center" "gravity" "inherit" "textEnd" "textStart" "viewEnd" "viewStart" | ||
"textStyle" | "bold" "italic" | 중첩 가능 ("bold|italic") | |
"textColor" | color hex ("#FFFFFFFF") | ||
"textSize" | dimen ("10dp") | dp만 지원 | |
ImageView | "widget" | "ImageView" | |
"src" | URL (http://...) | ||
"scaleType" | "center" "centerCrop" "centerInside" "fitCenter" "fitEnd" "fitStart" "fitXY" "matrix" | ||
Suggestions | "widget" | "Suggestions" | 버튼 대신 사용 UP의 suggestion 포함 "reply", "urlAction" 등 |
상술한 바와 같이, 다양한 실시예들에 따른 서버(예: 제1 서버(210-1), 제1 서버(210-2), 또는 제1 서버(210-3))는, 도 4 내지 도 5를 통해 예시된 바와 같은 RCS 메시지를 획득하거나 생성할 수 있다. 다양한 실시예들에 따른 전자 장치(101)는, 상기 서버로부터 상기 RCS 메시지를 수신하고, 상기 RCS 메시지의 콘텐츠를 디스플레이를 통해 표시할 수 있다. 상기 RCS 메시지는, 도 3의 구조(310-1) 또는 구조(310-2)를 가지는 RCS 메시지와 달리, 복수의 레이아웃 객체들을 포함하기 때문에, 상기 RCS 메시지는 다양한 배치들로 콘텐츠를 표시하기 위해 이용될 수 있다. 상기 복수의 레이아웃 객체들을 포함하는 구조로 구성된 상기 RCS 메시지는 Json의 문법으로 지시된 리치 카드 포맷을 가지기 때문에, 상기 RCS 메시지는, 메시징 클라이언트(messaging client)와 메시징 서버(messaging server)의 변경을 요구하지 않고, 다양한 배치들로 콘텐츠를 표시할 수 있다. 예를 들면, 상기 RCS 메시지는, RCS 내에서 챗봇(chatbot)을 통해 제공하는 서비스의 확장성 및 호환성을 강화할 수 있다. 상기 RCS 메시지는 다양한 배치들로 콘텐츠를 표시하기 위해 이용될 수 있기 때문에, 상기 RCS 메시지는, 전자 장치(101)의 화면의 크기 또는 유형, 전자 장치(101)의 구동 방식에 맞춰 콘텐츠를 표시할 수 있다. 예를 들면, 상기 RCS 메시지는, 상기 RCS 메시지의 구조를 조정함으로써, 스마트 워치와 같이 상대적으로 작은 크기의 디스플레이를 가지는 전자 장치 내에서 콘텐츠를 표시할 수 있다. 예를 들면, 상기 RCS 메시지는, 콘텐트 객체(463), 콘텐트 객체(466), 및 콘텐트 객체(476)와 같이, 실행가능한 객체를 포함하기 때문에, 전자 장치(101) 내에 콘텐트 객체(463), 콘텐트 객체(466), 및 콘텐트 객체(476)와 관련된 어플리케이션이 없더라도, 웹 페이지의 실행 등을 통해 상기 RCS 메시지와 관련된 서비스를 제공할 수 있다.
도 6은 다양한 실시예들에 따른 전자 장치가 수신된 RCS 메시지의 콘텐츠를 표시하는 방법의 예를 도시한다. 이러한 방법은, 도 1 또는 도 2에 도시된 전자 장치(101)의 프로세서(120)에 의해 실행될 수 있다.
도 6을 참조하면, 프로세서(120)는, 외부 장치(예: 제1 서버(210-1), 제1 서버(210-2), 또는 제1 서버(210-3))로부터 전자 장치(101)의 통신 회로(예: 통신 모듈(190))을 통해 RCS 메시지를 수신할 수 있다. 다양한 실시예들에서, 프로세서(120)는, 상기 수신된 메시지의 헤더(header)에 의해 지시되는(indicated) 콘텐트 유형(content type)에 기반하여, 상기 RCS 메시지가 도 3의 구조(310-1) 또는 구조(310-2)를 가지는 제2 타입의 메시지와 구별되는 제1 타입의 메시지임을 식별할 수 있다. 프로세서(120)는, 상기 식별에 기반하여, 상기 외부 장치로부터 상기 통신 회로를 통해 수신된 상기 RCS 메시지 내의 페이로드(payload)를 처리함으로써, 상기 RCS 메시지를 해석할 수 있다. 예를 들면, 프로세서(120)는, 상기 식별에 기반하여, 상기 페이로드 내의 데이터를 파싱함으로써, 상기 RCS 메시지를 해석할 수 있다. 다양한 실시예들에서, 프로세서(120)는, 상기 해석에 기반하여, 상기 RCS 메시지의 콘텐츠(또는 상기 RCS 메시지에 대한 정보)를 표시하기 위해, 동작 610을 실행할 수 있다.
예를 들면, 동작 610에서, 프로세서(120)는, 상기 RCS 메시지에 포함된 노드의 유형을 식별할 수 있다. 예를 들면, 프로세서(120)는, 상기 RCS 메시지에 포함된 상기 노드가 상기 노드의 적어도 하나의 자식 노드의 배치를 결정하는 레이아웃 객체인지 상기 콘텐츠의 일부를 구성하는 콘텐트 객체인지 여부를 식별할 수 있다. 다양한 실시예들에서, 프로세서(120)는, 상기 노드가 레이아웃 노드인 경우, 동작 620을 실행할 수 있다. 다양한 실시예들에서, 프로세서(120)는, 상기 노드가 콘텐트 노드인 경우, 동작 630을 실행할 수 있다.
동작 620에서, 프로세서(120)는, 상기 노드로부터 적어도 하나의 자식 노드를 추출할 수 있다. 프로세서(120)는, 상기 추출된 적어도 하나의 자식 노드의 유형을 식별하기 위해, 상기 추출 후 동작 610을 실행할 수 있다.
동작 630에서, 프로세서(120)는, 상기 콘텐트 객체에 기반하여 뷰(view)를 생성할 수 있다. 예를 들면, 프로세서(120)는, 상기 콘텐트 객체를 처리함으로써, 상기 RCS 메시지의 콘텐츠의 일부를 구성하는 뷰를 생성할 수 있다. 프로세서(120)는, 상기 뷰를 생성한 후, 상기 RCS 메시지의 콘텐츠를 디스플레이를 통해 표시하기 위한 동작들이 완료되었는지 여부를 식별하기 위해 동작 640을 실행할 수 있다.
동작 640에서, 프로세서(120)는, 재귀(reclusive) 호출이 있는지 여부를 식별할 수 있다. 다양한 실시예들에서, 프로세서(120)는, 상기 재귀 호출이 있는 경우, 다음 노드의 유형을 식별하기 위해, 동작 610을 실행할 수 있다. 다양한 실시예들에서, 프로세서(120)는, 상기 재귀 호출이 없는 경우, 상기 RCS 메시지의 콘텐츠를 디스플레이를 통해 표시하기 위한 동작들을 완료하기 위해, 동작 650을 실행할 수 있다.
동작 650에서, 프로세서(120)는, 동작 630을 통해 획득된 뷰들을 이용하여, 동작 610을 통해 식별된 레이아웃 객체에 기반하여, 상기 RCS 메시지의 콘텐츠(또는 상기 RCS 메시지에 대한 정보)를 상기 디스플레이를 통해 표시할 수 있다. 예를 들면, 상기 RCS 메시지의 콘텐츠는, RCS를 지원하는 어플리케이션의 사용자 인터페이스 상에서 표시될 수 있다.
도 7은 다양한 실시예들에 따른 전자 장치의 디스플레이 상에서 표시되는 RCS 메시지의 콘텐츠의 예를 도시한다. 이러한 콘텐츠는, 도 1 또는 도 2에 도시된 전자 장치(101)의 표시 장치(160) 상에서 표시될 수 있다.
도 7을 참조하면, 프로세서(120)는, 표시 장치(160) 상에서 콘텐츠(710)를 표시할 수 있다. 다양한 실시예들에서, 콘텐츠(710)는, 수신된 RCS 메시지에 기반하여, RCS를 지원하는 메시지 어플리케이션의 사용자 인터페이스(705) 내의 버블(bubble) 내에서 표시될 수 있다. 다양한 실시예들에서, 콘텐츠(710)는, 1개의 수직 레이아웃 객체와 상기 수직 레이아웃 객체의 하위에 2개의 수평 레이아웃 객체를 포함하는 RCS 메시지에 기반하여 표시될 수 있다. 하지만, 이에 제한되지 않는다.
프로세서(120)는, 표시 장치(160) 상에서 콘텐츠(720)를 표시할 수 있다. 다양한 실시예들에서, 콘텐츠(720)는, 수신된 RCS 메시지에 기반하여, RCS를 지원하는 메시지 어플리케이션의 사용자 인터페이스(705) 내의 버블 내에서 표시될 수 있다. 다양한 실시예들에서, 콘텐츠(720)는, 1개의 수직 레이아웃 객체와 상기 수직 레이아웃 객체의 하위에 2개의 수평 레이아웃 객체를 포함하는 RCS 메시지에 기반하여 표시될 수 있다. 하지만, 이에 제한되지 않는다.
프로세서(120)는, 표시 장치(160) 상에서 콘텐츠(730)를 표시할 수 있다. 다양한 실시예들에서, 콘텐츠(730)는, 수신된 RCS 메시지에 기반하여, RCS를 지원하는 메시지 어플리케이션의 사용자 인터페이스(705) 내의 버블 내에서 표시될 수 있다. 다양한 실시예들에서, 콘텐츠(730)는, 1개의 수직 레이아웃 객체와 상기 수직 레이아웃 객체의 하위의 1개의 수평 레이아웃 객체를 포함하는 RCS 메시지에 기반하여 표시될 수 있다. 하지만, 이에 제한되지 않는다.
프로세서(120)는, 표시 장치(160) 상에서 콘텐츠(740)를 표시할 수 있다. 다양한 실시예들에서, 콘텐츠(740)는, 수신된 RCS 메시지에 기반하여, RCS를 지원하는 메시지 어플리케이션의 사용자 인터페이스(705) 내의 버블 내에서 표시될 수 있다. 다양한 실시예들에서, 콘텐츠(740)는, 1개의 수직 레이아웃 객체, 상기 수직 레이아웃 객체의 하위에 1개의 수평 레이아웃 객체, 및 상기 수평 레이아웃 객체의 하위의 1개의 수직 레이아웃 객체를 포함하는 RCS 메시지에 기반하여 표시될 수 있다. 하지만, 이에 제한되지 않는다.
상술한 바와 같이, 다양한 실시예들에 따른 RCS 메시지는, 도 7의 예와 같이, 레이아웃 객체의 속성을 이용하여, 다양한 배치들로 RCS를 지원하는 어플리케이션의 사용자 인터페이스 내에서 콘텐츠를 표시할 수 있다.
도 8은 다양한 실시예들에 따라 RCS 메시지를 처리하는 방법을 도시하는 흐름도이다. 이러한 방법은, 도 1 또는 도 2에 도시된 전자 장치(101)의 프로세서(120)에 의해 실행될 수 있다.
도 8을 참조하면, 동작 801에서, 프로세서(120)는, 외부 장치(예: 제1 서버(210-1), 제1 서버(210-2), 또는 제1 서버(210-3))로부터 통신 회로(예: 통신 모듈(190))를 통해, RCS(rich communication service) 메시지를 수신할 수 있다. 예를 들면, 프로세서(120)는, 메모리(130) 내에 저장된 RCS를 지원하는 어플리케이션(예: 메시지 어플리케이션)을 이용하여 상기 RCS 메시지를 수신할 수 있다. 다양한 실시예들에서, 상기 외부 장치는, 챗봇(chatbot)를 포함할 수 있다.
동작 803에서, 프로세서(120)는, 상기 RCS 메시지의 헤더에 포함된 데이터에 기반하여 상기 RCS 메시지의 타입을 식별할 수 있다. 예를 들면, 프로세서(120)는, 상기 RCS 메시지의 수신에 응답하여, 상기 헤더 내에 포함된 상기 데이터(예: 콘텐트 타입의 필드)를 분석함으로써, 상기 RCS 메시지가 상기 제1 타입의 메시지임을 식별하거나, 상기 RCS 메시지가 상기 제2 타입의 메시지임을 식별할 수 있다.
동작 805에서, 프로세서(120)는, 상기 RCS 메시지가 상기 제1 타입의 메시지임을 식별하는 것에 기반하여, 상기 RCS 메시지로부터 제1 레이아웃 객체를 식별할 수 있다. 다양한 실시예들에서, 상기 제1 레이아웃 객체는, 상기 제1 레이아웃 개체 하위의 객체들의 상대적 위치를 결정하기 위해 이용되는 객체를 의미할 수 있다. 예를 들면, 상기 제1 레이아웃 객체는, 상기 객체들을 가로로 배치하기 위한 필드(또는 정보)를 포함하거나, 상기 객체들을 세로로 배치하기 위한 필드를 포함할 수 있다.
동작 807에서, 프로세서(120)는, 상기 제1 레이아웃 객체 하위의 상기 객체들 각각이 콘텐트 객체인지 레이아웃 객체인지 여부를 식별하거나 결정할 수 있다. 예를 들면, 프로세서(120)는, 상기 RCS 메시지에 의해 제공되는 복수의 콘텐츠를 표시하기 위해, 상기 객체들 각각이 상기 콘텐트 객체인지 상기 레이아웃 객체인지 여부를 결정할 수 있다. 예를 들면, 상기 콘텐트 객체는, 상기 복수의 콘텐츠 각각을 제공하기 위해 이용되는 객체를 의미할 수 있다. 예를 들면, 상기 레이아웃 객체는, 상기 복수의 콘텐츠의 상대적 위치를 결정하기 위해 이용되는 객체를 의미할 수 있다. 예를 들면, 프로세서(120)는, 상기 객체들 각각에 포함된 지정된 필드(예: "widget") 내의 값이 "linearlayout"인지 "textview"인지 "imageview"인지 "suggestions"인지 여부를 식별함으로써, 상기 객체들 각각이 상기 콘텐트 객체인지 상기 레이아웃 객체인지 여부를 결정할 수 있다.
도 8에 도시하지 않았으나, 프로세서(120)는, 상기 레이아웃 객체에 기반하여 식별된 상대적 위치에 기반하여, 상기 복수의 콘텐츠를 표시할 수 있다.
도 8에 도시하지 않았으나, 프로세서(120)는, 상기 RCS 메시지가 상기 제2 타입의 메시지임을 식별하는 것에 기반하여, 미리 정의된 구조로 상기 사용자 인터페이스 안에서 상기 RCS 메시지의 콘텐츠를 표시할 수 있다.
상술한 바와 같이, 다양한 실시예들에 따른 전자 장치(101)는, 상기 RCS 메시지가 제1 타입의 메시지인지 제2 타입의 메시지인지를 식별하고, 상기 RCS 메시지가 상기 제1 타입의 메시지인 경우 상기 RCS 메시지 내의 객체들을 분석함으로써 다이나믹 레이아웃 메시지를 제공하고, 상기 RCS 메시지가 상기 제2 타입의 메시지인 경우 미리 정의된 포맷의 메시지를 제공할 수 있다. 이러한 동작들을 통해, 다양한 실시예들에 따른 전자 장치(101)는, 강화된 서비스(예: 챗봇 서비스)를 제공할 수 있다.
도 9는 다양한 실시예들에 따른 RCS 메시지에 대한 정보를 표시하는 방법을 도시하는 흐름도(flow diagram)이다. 이러한 방법은, 도 1 또는 도 2에 도시된 전자 장치(101)의 프로세서(120)에 의해 실행될 수 있다.
도 9를 참조하면, 동작 901에서, 프로세서(120)는, 수신된 RCS 메시지 내의 제1 레이아웃 객체 하위의 제2 객체들 각각이 콘텐트 객체인지 레이아웃 객체인지 여부를 결정할 수 있다. 예를 들면, 동작 901은, 동작 807에 대응할 수 있다.
동작 903에서, 프로세서(120)는, 상기 결정에 응답하여, 상기 상대적 위치에 적어도 기반하여 배치된 상기 복수의 콘텐츠를 상기 RCS 메시지를 수신하기 위해 이용된 어플리케이션의 사용자 인터페이스 내에서 제공할 수 있다. 예를 들면, 프로세서(120)는, 상기 제1 레이아웃 객체에 기반하여, 상기 제2 객체들의 배치에 관한 정보를 획득할 수 있다. 다양한 실시예들에서, 프로세서(120)는, 상기 제1 레이아웃 객체의 오리엔테이션에 기반하여, 상기 제2 객체들을 수직으로 배치할 지 또는 수평으로 배치할 지에 대한 정보를 획득할 수 있다. 예를 들면, 프로세서(120)는, 상기 제2 객체들 중 제2 레이아웃 객체를 식별할 수 있다. 프로세서(120)는, 상기 제2 레이아웃 객체에 기반하여, 상기 제2 레이아웃 객체 하위의 제3 객체들의 배치에 대한 정보를 획득할 수 있다. 다양한 실시예들에서, 프로세서(120)는, 상기 제2 레이아웃 객체의 오리엔테이션에 기반하여, 상기 제3 객체들을 수직으로 배치할 지 또는 수평으로 배치할 지에 대한 정보를 획득할 수 있다. 다양한 실시예들에서, 프로세서(120)는, 상기 제2 객체들의 배치에 대한 정보 및 상기 제3 객체들의 배치에 대한 정보에 적어도 기반하여 결정된 상대적 위치에 기반하여, 상기 복수의 콘텐츠를 표시할 수 있다.
상술한 바와 같이, 다양한 실시예들에 따른 상기 RCS 메시지는, 메시징 클라이언트(messaging client)와 메시징 서버(messaging server)의 변경을 요구하지 않고, 다양한 배치들로 콘텐츠를 표시할 수 있다. 예를 들면, 상기 RCS 메시지는, RCS 내에서 챗봇(chatbot)을 통해 제공하는 서비스의 확장성 및 호환성을 강화할 수 있다. 상기 RCS 메시지는 다양한 배치들로 콘텐츠를 표시하기 위해 이용될 수 있기 때문에, 상기 RCS 메시지는, 전자 장치(101)의 화면의 크기 또는 유형, 전자 장치(101)의 구동 방식에 맞춰 콘텐츠를 표시할 수 있다. 예를 들면, 상기 RCS 메시지는, 상기 RCS 메시지의 구조를 조정함으로써, 스마트 워치와 같이 상대적으로 작은 크기의 디스플레이를 가지는 전자 장치 내에서 콘텐츠를 표시할 수 있다. 예를 들면, 상기 RCS 메시지는, 콘텐트 객체(463), 콘텐트 객체(466), 및 콘텐트 객체(476)와 같이, 실행가능한 객체를 포함하기 때문에, 전자 장치(101) 내에 콘텐트 객체(463), 콘텐트 객체(466), 및 콘텐트 객체(476)와 관련된 어플리케이션이 없더라도, 웹 페이지의 실행 등을 통해 상기 RCS 메시지와 관련된 서비스를 제공할 수 있다.
도 10은 다양한 실시예들에 따른 RCS 메시지를 송신하는 방법을 도시하는 흐름도이다. 이러한 방법은, 도 2에 도시된 제1 서버(예: 제1 서버(210-1), 제1 서버(210-2), 또는 제1 서버(210-3))의 프로세서에 의해 실행될 수 있다.
도 10을 참조하면, 동작 1001에서, 상기 프로세서는, 제1 레이아웃 객체, 상기 제1 레이아웃 객체 하위의 콘텐트 객체들, 상기 제1 레이아웃 객체 하위의 제2 레이아웃 객체, 및 상기 제2 레이아웃 객체의 하위의 다른 콘텐트 객체들을 포함하는 RCS 메시지를 획득할 수 있다. 예를 들면, 상기 프로세서는, 챗봇(chatbot) 서비스를 제공하기 위해, 상기 RCS 메시지를 획득할 수 있다. 예를 들면, 상기 콘텐트 객체들과 상기 제2 레이아웃 객체는 동일한 레벨을 가질 수 있다. 일부 실시예들에서, 상기 제1 레이아웃 객체의 오리엔테이션은, 상기 제2 레이아웃 객체의 오리엔테이션과 구별될 수 있다. 예를 들면, 상기 제1 레이아웃 객체는, 상기 콘텐트 객체들의 상대적 위치를 결정하기 위해 이용되고, 상기 제2 레이아웃 객체는, 상기 다른 콘텐트 객체들의 상대적 위치를 결정하기 위해 이용되며, 상기 콘텐트 객체들 및 상기 다른 콘텐트 객체들 각각은, 상기 RCS 메시지의 복수의 콘텐츠를 제공하기 위해 이용될 수 있다. 다양한 실시예들에서, 상기 RCS 메시지는, 상기 RCS 메시지가 제1 타입의 메시지임을 나타내기 위한 데이터를 포함하는 헤더를 더 포함할 수 있다. 다양한 실시예들에서, 상기 제1 레이아웃 객체, 상기 콘텐트 객체들, 상기 제2 레이아웃 객체, 및 상기 다른 콘텐트 객체들은, 상기 RCS 메시지 내의 페이로드(payload) 내에 포함될 수 있다. 다양한 실시예들에서, 상기 콘텐트 객체는, 텍스트뷰 또는 이미지뷰로 구성될(configured with) 수 있다.
동작 903에서, 상기 프로세서는, 상기 RCS 메시지를 상기 제1 서버의 통신 회로를 통해 외부 장치(예: 전자 장치(101))에게 송신할 수 있다. 다양한 실시예들에서, 상기 콘텐트 객체들은, 상기 외부 장치 내에서 상기 제1 레이아웃 객체에 기반하여 결정된 배치로 표시되고, 상기 다른 콘텐트 객체들은, 상기 외부 장치 내에서 상기 제2 레이아웃 객체에 기반하여 결정된 배치로 표시될 수 있다. 다양한 실시예들에서, 상기 RCS 메시지는, RCS 메시징(messaging) 서버를 통해 상기 외부 장치에게 송신될 수 있다.
상술한 바와 같이, 다양한 실시예들에 따른 상기 RCS 메시지는, 제1 레이아웃 객체의 하위의 제2 레이아웃 객체를 포함함으로써, 다양한 배치들로 콘텐츠를 표시할 수 있다. 다양한 실시예들에 따라 상기 RCS 메시지를 송신하는 상기 제1 서버는, 다양한 배치들로 콘텐츠를 표시할 수 있는 상기 RCS 메시지를 상기 외부 장치에게 송신함으로써, 강화된 서비스(예: 강화된 챗봇 서비스)를 제공할 수 있다.
상술한 바와 같은, 다양한 실시예들에 따른 비일시적 컴퓨터 판독 가능 저장 매체(non-transitory computer readable storage medium)는, 통신 회로, 디스플레이, 및 인스트럭션(instruction)들 및 RCS(rich communication service)를 지원하는 어플리케이션을 저장하는 적어도 하나의 메모리를 가지는 전자 장치의 하나 이상의 프로세서들에 의해 실행될 시, 외부 장치로부터 상기 통신 회로를 통해, RCS 메시지를 상기 어플리케이션을 이용하여 수신하고, 상기 RCS 메시지의 헤더(header)에 포함된 데이터에 기반하여, 상기 RCS 메시지가 제1 타입의 메시지임을 식별하고, 상기 식별에 기반하여, 상기 RCS 메시지로부터 제1 레이아웃 객체(layout object)를 식별하고, 상기 제1 레이아웃 객체의 식별에 기반하여, 상기 제1 레이아웃 객체 하위의(under) 제2 객체들 각각이 상기 어플리케이션의 사용자 인터페이스 내에서 상기 디스플레이를 이용하여 복수의 콘텐츠(contents) 각각을 제공하기 위해 이용되는 콘텐트(content) 객체인지 상기 복수의 콘텐츠의 상대적 위치(relative position)를 결정하기 위한 레이아웃 객체인지 여부를 결정하도록, 상기 전자 장치를 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램들을 저장할 수 있다.
상술한 바와 같은, 다양한 실시예들에 따른 비일시적 컴퓨터 판독 가능 저장 매체(non-transitory computer readable storage medium)는, 통신 회로를 가지는 전자 장치의 하나 이상의 프로세서들에 의해 실행될 시, 제1 레이아웃 객체(layout object), 상기 제1 레이아웃 객체의 하위의 콘텐트 객체(content object)들, 상기 제1 레이아웃 객체의 하위의 제2 레이아웃 객체, 및 상기 제2 레이아웃 객체의 하위의 다른(other) 콘텐트 객체들을 포함하는 RCS(rich communication service) 메시지를 획득하고, 상기 획득된 RCS 메시지를 상기 통신 회로를 통해 외부 장치에게 송신하도록, 상기 전자 장치를 야기하는 인스트럭션들을 포함하는 하나 이상의 프로그램들을 저장할 수 있고, 상기 제1 레이아웃 객체는, 상기 콘텐트 객체들의 상대적 위치를 결정하기 위해 이용될 수 있고, 상기 제2 레이아웃 객체는, 상기 다른 콘텐트 객체들의 상대적 위치를 결정하기 위해 이용될 수 있으며, 상기 콘텐트 객체들 및 상기 다른 콘텐트 객체들 각각은, 상기 RCS 메시지의 복수의 콘텐츠를 제공하기 위해 이용될 수 있다.
본 개시의 청구항 또는 명세서에 기재된 실시예들에 따른 방법들은 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합의 형태로 구현될(implemented) 수 있다.
소프트웨어로 구현하는 경우, 하나 이상의 프로그램(소프트웨어 모듈)을 저장하는 컴퓨터 판독 가능 저장 매체가 제공될 수 있다. 컴퓨터 판독 가능 저장 매체에 저장되는 하나 이상의 프로그램은, 전자 장치(device) 내의 하나 이상의 프로세서에 의해 실행 가능하도록 구성된다(configured for execution). 하나 이상의 프로그램은, 전자 장치로 하여금 본 개시의 청구항 또는 명세서에 기재된 실시예들에 따른 방법들을 실행하게 하는 명령어(instructions)를 포함한다.
이러한 프로그램(소프트웨어 모듈, 소프트웨어)은 랜덤 액세스 메모리 (random access memory), 플래시(flash) 메모리를 포함하는 불휘발성(non-volatile) 메모리, 롬(ROM: read only memory), 전기적 삭제가능 프로그램가능 롬(EEPROM: electrically erasable programmable read only memory), 자기 디스크 저장 장치(magnetic disc storage device), 컴팩트 디스크 롬(CD-ROM: compact disc-ROM), 디지털 다목적 디스크(DVDs: digital versatile discs) 또는 다른 형태의 광학 저장 장치, 마그네틱 카세트(magnetic cassette)에 저장될 수 있다. 또는, 이들의 일부 또는 전부의 조합으로 구성된 메모리에 저장될 수 있다. 또한, 각각의 구성 메모리는 다수 개 포함될 수도 있다.
또한, 상기 프로그램은 인터넷(Internet), 인트라넷(Intranet), LAN(local area network), WLAN(wide LAN), 또는 SAN(storage area network)과 같은 통신 네트워크, 또는 이들의 조합으로 구성된 통신 네트워크를 통하여 접근(access)할 수 있는 부착 가능한(attachable) 저장 장치(storage device)에 저장될 수 있다. 이러한 저장 장치는 외부 포트를 통하여 본 개시의 실시 예를 수행하는 장치에 접속할 수 있다. 또한, 통신 네트워크상의 별도의 저장장치가 본 개시의 실시 예를 수행하는 장치에 접속할 수도 있다.
상술한 본 개시의 구체적인 실시예들에서, 개시에 포함되는 구성 요소는 제시된 구체적인 실시 예에 따라 단수 또는 복수로 표현되었다. 그러나, 단수 또는 복수의 표현은 설명의 편의를 위해 제시한 상황에 적합하게 선택된 것으로서, 본 개시가 단수 또는 복수의 구성 요소에 제한되는 것은 아니며, 복수로 표현된 구성 요소라 하더라도 단수로 구성되거나, 단수로 표현된 구성 요소라 하더라도 복수로 구성될 수 있다.
한편 본 개시의 상세한 설명에서는 구체적인 실시 예에 관해 설명하였으나, 본 개시의 범위에서 벗어나지 않는 한도 내에서 여러 가지 변형이 가능함은 물론이다. 그러므로 본 개시의 범위는 설명된 실시 예에 국한되어 정해져서는 아니 되며 후술하는 특허청구의 범위뿐만 아니라 이 특허청구의 범위와 균등한 것들에 의해 정해져야 한다.
Claims (20)
- 전자 장치(electronic device)에 있어서,
통신 회로;
터치스크린;
RCS(rich communication service)를 지원하는 어플리케이션을 저장하는 적어도 하나의 메모리; 및
적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는,
외부 장치로부터 상기 통신 회로를 통해, RCS 메시지를 상기 어플리케이션을 이용하여 수신하고,
상기 RCS 메시지의 헤더(header)에 포함된 데이터에 기반하여, 상기 RCS 메시지가 제1 타입인지 제2 타입인지 여부를 식별하고,
상기 RCS 메시지가 제1 타입이라는 식별에 기반하여, 상기 RCS 메시지로부터 제1 레이아웃 객체(layout object)를 식별하고,
상기 제1 타입의 RCS 메시지는, 상기 제1 레이아웃 객체를 포함하는 복수의 객체들의 트리 구조를 가지며,
상기 제1 레이아웃 객체 하위의(under) 제2 객체들 각각이 콘텐트(content) 객체인지, 상기 콘텐트 객체에 의해 제공되는 복수의 콘텐츠가 상기 터치스크린 상에 표시될 상대적 위치(relative position)를 나타내기 위한 레이아웃 객체인지 식별하고,
상기 레이아웃 객체에 기반하여 식별된 상대적 위치에 기반하여, 상기 복수의 콘텐츠를 표시하도록 구성되는 전자 장치.
- 청구항 1에 있어서, 상기 제1 타입의 메시지는,
상기 레이아웃 객체에 따라 변경가능한 배치를 가지는 메세지이고,
상기 제2 타입의 메시지는,
미리 정의된 배치를 가지는 메시지인 전자 장치.
- 청구항 2에 있어서, 상기 적어도 하나의 프로세서는,
상기 상대적 위치에 적어도 기반하여, 상기 복수의 콘텐츠를 가로로(horizontally) 표시하거나 세로로(vertically) 표시하도록 구성되는 전자 장치.
- 청구항 3에 있어서, 상기 적어도 하나의 프로세서는,
상기 RCS 메시지의 상기 헤더에 포함된 상기 데이터에 기반하여, 상기 RCS 메시지가 상기 제2 타입의 메시지임을 식별하고,
상기 RCS 메시지가 상기 제2 타입의 메시지라는 식별에 기반하여, 미리 정의된 구조로 사용자 인터페이스 안에서 상기 RCS 메시지의 콘텐츠를 표시하도록 더 구성되는 전자 장치.
- 청구항 1에 있어서, 상기 적어도 하나의 프로세서는,
상기 헤더 내의 상기 데이터 내의 콘텐트 타입(content type)의 필드에 기반하여, 상기 RCS 메시지가 상기 제1 타입의 메시지임을 식별하도록, 구성되는 전자 장치.
- 청구항 1에 있어서, 상기 제1 타입의 메시지는,
트리 구조로 구성된 데이터를 페이로드 내에 포함하는 전자 장치.
- 청구항 1에 있어서, 상기 외부 장치는,
챗봇 서버(chatbot server)를 포함하는 전자 장치.
- 전자 장치(electronic device)에 있어서,
인스트럭션들을 저장하는 메모리;
통신 회로; 및
적어도 하나의 프로세서를 포함하고, 상기 적어도 하나의 프로세서는,
제1 레이아웃 객체(layout object), 상기 제1 레이아웃 객체의 하위의 콘텐트 객체(content object)들, 상기 제1 레이아웃 객체의 하위의 제2 레이아웃 객체, 및 상기 제2 레이아웃 객체의 하위의 다른(other) 콘텐트 객체들을 포함하는 RCS(rich communication service) 메시지를 획득하고,
상기 획득된 RCS 메시지를 상기 통신 회로를 통해 외부 장치에게 송신하도록,
상기 인스트럭션들을 실행하도록 구성되며,
상기 제1 레이아웃 객체는,
상기 콘텐트 객체들의 상대적 위치를 결정하기 위해 이용되고,
상기 제2 레이아웃 객체는,
상기 다른 콘텐트 객체들의 상대적 위치를 결정하기 위해 이용되며,
상기 콘텐트 객체들 및 상기 다른 콘텐트 객체들 각각은,
상기 RCS 메시지의 복수의 콘텐츠를 제공하기 위해 이용되고,
상기 RCS 메시지는, 상기 제1 레이아웃 객체를 포함하는 복수의 객체들의 트리 구조를 가지는 것인, 전자 장치.
- 청구항 8에 있어서, 상기 RCS 메시지는,
상기 RCS 메시지가 제1 타입의 메시지임을 나타내기 위한 데이터를 포함하는 헤더를 더 포함하는 전자 장치.
- 청구항 8에 있어서, 상기 제1 레이아웃 객체는,
상기 콘텐트 객체들에 의해 제공되는 콘텐츠를 상기 외부 장치 내에서 가로로 표시하거나 세로로 표시하기 위해 이용되는 전자 장치.
- 청구항 8에 있어서, 상기 콘텐트 객체들의 상대적 위치는,
상기 제1 레이아웃 객체의 오리엔테이션의 필드에 의해 결정되고,
상기 다른 콘텐트 객체들의 상대적 위치는,
상기 제2 레이아웃 객체의 오리엔테이션의 필드에 의해 결정되는 전자 장치.
- 청구항 8에 있어서, 상기 RCS 메시지는,
RCS 메시징(messaging) 서버를 통해 상기 외부 장치에게 송신되는 전자 장치.
- 청구항 8에 있어서, 상기 제1 레이아웃 객체, 상기 콘텐트 객체들, 상기 제2 레이아웃 객체, 및 상기 다른 콘텐트 객체들은,
상기 RCS 메시지 내의 페이로드(payload) 내에 포함되는 전자 장치.
- 청구항 8에 있어서, 상기 콘텐트 객체는,
텍스트뷰 또는 이미지뷰로 구성되는(configured with) 전자 장치.
- 비일시적(non-transitory) 컴퓨터 판독가능(readable) 저장 매체(storage medium)에 있어서,
통신 회로 및 RCS(rich communication service)를 지원하는 어플리케이션을 저장하는 적어도 하나의 메모리를 가지는(with) 전자 장치에 의해 실행될 시,
외부 장치로부터 상기 통신 회로를 통해, RCS 메시지를 상기 어플리케이션을 이용하여 수신하고,
상기 RCS 메시지의 헤더(header)에 포함된 데이터에 기반하여, 상기 RCS 메시지가 제1 타입인지 제2 타입인지 여부를 식별하고,
상기 RCS 메시지가 제1 타입이라는 식별에 기반하여, 상기 RCS 메시지로부터 제1 레이아웃 객체(layout object)를 식별하고,
상기 제1 타입의 RCS 메시지는, 상기 제1 레이아웃 객체를 포함하는 복수의 객체들의 트리 구조를 가지며,
상기 제1 레이아웃 객체 하위의(under) 제2 객체들 각각이 콘텐트(content) 객체인지, 상기 콘텐트 객체에 의해 제공되는 복수의 콘텐츠가 터치스크린 상에 표시될 상대적 위치(relative position)를 나타내기 위한 레이아웃 객체인지 식별하고,
상기 레이아웃 객체에 기반하여 식별된 상대적 위치에 기반하여, 상기 복수의 콘텐츠를 표시하도록,
상기 전자 장치를 야기하는 인스트럭션들을 저장하는 하나 이상의 프로그램들을 포함하는 비일시적 컴퓨터 판독가능 저장 매체.
- 청구항 15에 있어서, 상기 제1 타입의 메시지는,
상기 레이아웃 객체에 따라 변경가능한 배치를 가지는 메세지이고,
상기 제2 타입의 메시지는,
미리 정의된 배치를 가지는 메시지인 비일시적 컴퓨터 판독가능 저장 매체.
- 청구항 16에 있어서, 상기 하나 이상의 프로그램들은,
상기 상대적 위치에 적어도 기반하여, 상기 복수의 콘텐츠를 가로로(horizontally) 표시하거나 세로로(vertically) 표시하도록,
상기 전자 장치를 야기하는 인스트럭션들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체.
- 청구항 17에 있어서, 상기 하나 이상의 프로그램들은,
상기 RCS 메시지의 상기 헤더에 포함된 상기 데이터에 기반하여, 상기 RCS 메시지가 상기 제2 타입의 메시지임을 식별하고,
상기 RCS 메시지가 상기 제2 타입의 메시지라는 식별에 기반하여, 미리 정의된 구조로 사용자 인터페이스 안에서 상기 RCS 메시지의 콘텐츠를 표시하도록,
상기 전자 장치를 야기하는 인스트럭션들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체.
- 청구항 15에 있어서, 상기 하나 이상의 프로그램들은,
상기 헤더 내의 상기 데이터 내의 콘텐트 타입(content type)의 필드에 기반하여, 상기 RCS 메시지가 상기 제1 타입의 메시지임을 식별하도록,
상기 전자 장치를 야기하는 인스트럭션들을 저장하는 비일시적 컴퓨터 판독가능 저장 매체.
- 청구항 15에 있어서, 상기 제1 타입의 메시지는,
트리 구조로 구성된 데이터를 페이로드 내에 포함하는 비일시적 컴퓨터 판독가능 저장 매체.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190017986A KR102710369B1 (ko) | 2019-02-15 | 2019-02-15 | 다이나믹 레이아웃 메시지를 위한 전자 장치 및 컴퓨터 판독가능 매체 |
US16/791,112 US11188708B2 (en) | 2019-02-15 | 2020-02-14 | Electronic device, method, and computer readable medium for dynamic layout message |
EP20157483.7A EP3697032B1 (en) | 2019-02-15 | 2020-02-14 | Electronic device, method, and computer readable medium for dynamic layout message |
PCT/KR2020/002144 WO2020167050A1 (en) | 2019-02-15 | 2020-02-14 | Electronic device, method, and computer readable medium for dynamic layout message |
CN202010095544.6A CN111586235B (zh) | 2019-02-15 | 2020-02-17 | 用于动态布局消息的电子装置和计算机可读介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020190017986A KR102710369B1 (ko) | 2019-02-15 | 2019-02-15 | 다이나믹 레이아웃 메시지를 위한 전자 장치 및 컴퓨터 판독가능 매체 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200099845A KR20200099845A (ko) | 2020-08-25 |
KR102710369B1 true KR102710369B1 (ko) | 2024-09-26 |
Family
ID=69630184
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020190017986A KR102710369B1 (ko) | 2019-02-15 | 2019-02-15 | 다이나믹 레이아웃 메시지를 위한 전자 장치 및 컴퓨터 판독가능 매체 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11188708B2 (ko) |
EP (1) | EP3697032B1 (ko) |
KR (1) | KR102710369B1 (ko) |
CN (1) | CN111586235B (ko) |
WO (1) | WO2020167050A1 (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114697920A (zh) * | 2020-12-29 | 2022-07-01 | 中国移动通信有限公司研究院 | 信息传输方法、终端及业务服务器 |
CN112714406B (zh) * | 2020-12-30 | 2022-04-15 | 东软集团股份有限公司 | 一种实现5g消息转换的方法、装置及设备 |
KR20220101845A (ko) * | 2021-01-12 | 2022-07-19 | 삼성전자주식회사 | 메시지를 처리하기 위한 전자 장치 및 그의 동작 방법 |
CN115499793B (zh) * | 2021-06-18 | 2024-02-27 | 深圳艾派网络科技股份有限公司 | 一种5g短信制作方法、系统以及5g短信系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140243028A1 (en) | 2013-02-25 | 2014-08-28 | Michael J. Colombo | Enhanced text messaging service |
US20160048307A1 (en) * | 2011-09-23 | 2016-02-18 | Zynga Inc. | Systems and methods dynamic localization of a client device |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2001078314A2 (en) * | 2000-04-10 | 2001-10-18 | Avienda Technologies, Inc. | Method and system for processing bulky e-mail |
US20020103935A1 (en) | 2001-01-26 | 2002-08-01 | Neil Fishman | Pushing rich content information to mobile devices |
US20030131142A1 (en) | 2001-03-14 | 2003-07-10 | Horvitz Eric J. | Schema-based information preference settings |
KR100631604B1 (ko) * | 2004-10-26 | 2006-10-09 | 엘지전자 주식회사 | 휴대단말기의 mms메시지 표시방법 |
US8081958B2 (en) * | 2006-12-01 | 2011-12-20 | Yahoo! Inc. | User initiated invite for automatic conference participation by invitee |
KR101450584B1 (ko) * | 2007-02-22 | 2014-10-14 | 삼성전자주식회사 | 단말의 화면 표시 방법 |
KR101945897B1 (ko) * | 2012-05-03 | 2019-02-11 | 삼성전자주식회사 | 휴대단말기에서 RCS(Rich Communication Suite)의 Capability Discovery를 위한 SIP OPTIONS 메시지 교환 방법 및 장치 |
US8972509B2 (en) * | 2012-07-27 | 2015-03-03 | Adobe Systems Incorporated | Automated rich-content messaging |
US9602557B2 (en) * | 2012-10-15 | 2017-03-21 | Wowza Media Systems, LLC | Systems and methods of communication using a message header that includes header flags |
CN103023870B (zh) * | 2012-11-14 | 2016-08-31 | 小米科技有限责任公司 | 一种消息中数据的输出方法、装置和设备 |
US9397878B2 (en) * | 2013-01-29 | 2016-07-19 | Qualcomm Incorporated | Cross-platform module that is shared by client applications for access to rich communications suite resources on a client device |
US9575634B2 (en) | 2013-03-04 | 2017-02-21 | Facebook, Inc. | Techniques for asynchronous rendering |
US20140372557A1 (en) * | 2013-06-18 | 2014-12-18 | Research In Motion Limited | System and Method for Adaptation of Capability Discovery for a Multitude of Transport Protocol Requirements/Scenarios Through Interworking |
KR20150072819A (ko) * | 2013-12-20 | 2015-06-30 | 삼성전자주식회사 | 전자장치에서 디지털 콘텐츠를 디스플레이하기 위한 방법 및 장치 |
CN104468322A (zh) * | 2014-10-27 | 2015-03-25 | 东莞宇龙通信科技有限公司 | 一种发送通知的方法及装置 |
KR102267802B1 (ko) * | 2015-01-30 | 2021-06-23 | 삼성전자주식회사 | 이동 단말에서 RCS(Rich Communication Suite) 및 VoLTE(Voice over LTE) 서비스를 지원하는 방법 및 장치 |
US9647968B2 (en) | 2015-03-25 | 2017-05-09 | Pypestream Inc | Systems and methods for invoking chatbots in a channel based communication system |
GB2543067A (en) * | 2015-10-06 | 2017-04-12 | Vodafone Ip Licensing Ltd | Synchronisation of communications contacts between devices |
US20180157452A1 (en) * | 2016-12-07 | 2018-06-07 | Google Inc. | Decomposition of dynamic graphical user interfaces |
US20180192364A1 (en) * | 2016-12-23 | 2018-07-05 | OneMarket Network LLC | Transaction messages in a retailer network |
KR102266879B1 (ko) * | 2017-04-14 | 2021-06-22 | 삼성전자주식회사 | 대화형 콘텐츠 제공 시스템 |
CN107861982A (zh) * | 2017-09-29 | 2018-03-30 | 五八有限公司 | 动态确定应用程序页面布局的方法、终端、服务器及系统 |
WO2019139529A1 (en) * | 2018-01-11 | 2019-07-18 | Telefonaktiebolaget Lm Ericsson (Publ) | First base station, second base station, user equipment, and methods performed thereby, for handling a change in or more measurements |
CN108924030A (zh) * | 2018-05-31 | 2018-11-30 | 康键信息技术(深圳)有限公司 | 电子装置、动态配置消息展示方式的方法及存储介质 |
US10944743B2 (en) * | 2019-01-22 | 2021-03-09 | Adp, Llc | Rich communication services security authentication system |
-
2019
- 2019-02-15 KR KR1020190017986A patent/KR102710369B1/ko active IP Right Grant
-
2020
- 2020-02-14 EP EP20157483.7A patent/EP3697032B1/en active Active
- 2020-02-14 US US16/791,112 patent/US11188708B2/en active Active
- 2020-02-14 WO PCT/KR2020/002144 patent/WO2020167050A1/en active Application Filing
- 2020-02-17 CN CN202010095544.6A patent/CN111586235B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160048307A1 (en) * | 2011-09-23 | 2016-02-18 | Zynga Inc. | Systems and methods dynamic localization of a client device |
US20140243028A1 (en) | 2013-02-25 | 2014-08-28 | Michael J. Colombo | Enhanced text messaging service |
Also Published As
Publication number | Publication date |
---|---|
CN111586235A (zh) | 2020-08-25 |
KR20200099845A (ko) | 2020-08-25 |
EP3697032A1 (en) | 2020-08-19 |
US20200265181A1 (en) | 2020-08-20 |
WO2020167050A1 (en) | 2020-08-20 |
US11188708B2 (en) | 2021-11-30 |
EP3697032B1 (en) | 2021-10-27 |
CN111586235B (zh) | 2023-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11943399B2 (en) | Electronic device for providing various functions through application using a camera and operating method thereof | |
KR102710369B1 (ko) | 다이나믹 레이아웃 메시지를 위한 전자 장치 및 컴퓨터 판독가능 매체 | |
US10921958B2 (en) | Electronic device supporting avatar recommendation and download | |
US20210375022A1 (en) | Electronic device for providing animated image and method therefor | |
CN113366443B (zh) | 电子装置及其文件夹配置方法 | |
KR102400580B1 (ko) | 다른 전자 장치의 인증을 수행하는 전자 장치와 이의 동작 방법 | |
KR102543695B1 (ko) | 영상 처리 방법 및 이를 지원하는 전자 장치 | |
US10853024B2 (en) | Method for providing information mapped between a plurality of inputs and electronic device for supporting the same | |
KR20160039746A (ko) | 정보 공유 방법 및 이를 위한 전자 장치 | |
KR102462793B1 (ko) | 계정 그룹 기반으로 콘텐츠를 공유하는 방법 및 이를 제공하는 전자 장치 | |
US11501069B2 (en) | Electronic device for inputting characters and method of operation of same | |
KR20200072727A (ko) | 웹 콘텐츠를 ar모드에서 표시하는 전자 장치 및 방법 | |
KR102436435B1 (ko) | 전자 펜으로부터 수신한 신호에 기초하여 다양한 기능을 실행시키기 위한 전자 장치 | |
US20190246440A1 (en) | Electronic device for connecting with external devices based on connection information and operating method thereof | |
US11556604B2 (en) | Electronic device and search keyword processing method thereof | |
KR20200102838A (ko) | 이미지를 이용하여 콘텐트를 검색하기 위한 장치 및 그 제어 방법 | |
KR20190099852A (ko) | 문자를 인식하기 위한 전자 장치 및 방법 | |
KR102521408B1 (ko) | 인포그래픽을 제공하기 위한 전자 장치 및 그에 관한 방법 | |
US10770033B2 (en) | Apparatus and method for visually providing information regarding contents indicating time interval | |
KR102666045B1 (ko) | 클라우드 서비스를 제공하는 전자 장치 및 그 동작 방법 | |
KR20210122541A (ko) | 데이터의 제공 방법 및 이를 지원하는 전자 장치 | |
US20220156026A1 (en) | Foldable electronic device for displaying user interface and method therefor | |
KR102730751B1 (ko) | 아바타 추천 및 다운로드를 지원하는 전자 장치 | |
US20240045705A1 (en) | Method and electronic device for performing translation | |
US11062485B2 (en) | Display processing method and device for applying an attribute of a reference image to a target image |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
GRNT | Written decision to grant |