KR20210119174A - 전자 장치 및 이의 제어 방법 - Google Patents

전자 장치 및 이의 제어 방법 Download PDF

Info

Publication number
KR20210119174A
KR20210119174A KR1020200035733A KR20200035733A KR20210119174A KR 20210119174 A KR20210119174 A KR 20210119174A KR 1020200035733 A KR1020200035733 A KR 1020200035733A KR 20200035733 A KR20200035733 A KR 20200035733A KR 20210119174 A KR20210119174 A KR 20210119174A
Authority
KR
South Korea
Prior art keywords
application
external device
electronic device
information
icon
Prior art date
Application number
KR1020200035733A
Other languages
English (en)
Inventor
박성제
Original Assignee
삼성전자주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자주식회사 filed Critical 삼성전자주식회사
Priority to KR1020200035733A priority Critical patent/KR20210119174A/ko
Priority to US17/205,347 priority patent/US11494050B2/en
Priority to PCT/KR2021/003524 priority patent/WO2021194195A1/en
Publication of KR20210119174A publication Critical patent/KR20210119174A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/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; CALCULATING OR 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/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1633Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
    • G06F1/1684Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675
    • G06F1/1698Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675 the I/O peripheral being a sending/receiving arrangement to establish a cordless communication link, e.g. radio or infrared link, integrated cellular phone
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0481Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
    • G06F3/0482Interaction with lists of selectable items, e.g. menus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/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; CALCULATING OR 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/164Adaptation or special uses of UDP protocol
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • H04M1/72409User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories
    • H04M1/72412User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality by interfacing with external accessories using two-way short-range wireless interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

전자 장치의 제어 방법이 개시된다. 본 개시에 따른 전자 장치의 제어 방법은, 전자 장치와 연결 가능한 외부 장치를 탐색하는 단계; 상기 탐색된 외부 장치로 상기 외부 장치에 설치된 어플리케이션에 대한 정보를 요청하는 단계; 상기 외부 장치로부터 상기 설치된 어플리케이션에 대한 정보를 수신하는 단계; 상기 설치된 어플리케이션에 대한 정보에 포함된 복수의 어플리케이션 중 상기 전자 장치에서 실행 가능한 적어도 하나의 어플리케이션을 식별하는 단계; 상기 설치된 어플리케이션에 대한 정보를 바탕으로 상기 식별된 적어도 하나의 어플리케이션에 대응되는 적어도 하나의 아이콘을 디스플레이 상에 표시하는 단계; 및 상기 적어도 하나의 아이콘 중 하나가 선택되면, 상기 외부 장치와 통신을 수행하여 상기 선택된 아이콘에 대응되는 어플리케이션의 실행에 필요한 정보를 요청하여 상기 외부 장치에 설치된 어플리케이션을 실행하는 단계;를 포함한다.

Description

전자 장치 및 이의 제어 방법 {Electronic device and Method for controlling the electronic device thereof}
본 개시는 전자 장치 및 이의 제어 방법에 관한 것으로, 구체적으로, 외부 장치에 설치된 어플리케이션을 전자 장치에서 실행하기 위한 전자 장치 및 이의 제어 방법에 관한 것이다.
종래에는 외부 장치에서 설치된 어플리케이션을 외부 장치와 다른 전자 장치에서 실행하기 위해서는 해당 어플리케이션을 전자 장치에서 설치하는 과정이 필요하였다.
또한, 웹 앱(Wep App)이나 무선 외장하드를 이용하는 기존의 원격 스토리지 서비스에 따르면, 자동으로 외부 장치에 설치된 어플리케이션이 전자 장치에서 실행 가능한지 식별하거나, 자동으로 외부 장치에 설치된 어플리케이션의 실행 파일을 식별할 수 없었다.
이에, 외부 장치에 설치된 어플리케이션이 별도의 설치 없이 전자 장치에서 실행될 수 있는 기술 및 외부 장치에 설치된 어플리케이션이 자동으로 전자 장치에서 실행 가능한지 식별되는 기술의 필요성이 대두되었다.
본 개시는 상술한 필요성에 따라 안출된 것으로, 본 개시의 목적은 외부 장치에 설치된 어플리케이션을 전자 장치에서 설치하지 않고 실행하기 위한 전자 장치 및 이의 제어 방법을 제공함에 있다.
상기 목적을 달성하기 위한 본 개시의 일 실시 예에 따른, 전자 장치의 제어 방법은, 전자 장치와 연결 가능한 외부 장치를 탐색하는 단계; 상기 탐색된 외부 장치로 상기 외부 장치에 설치된 어플리케이션에 대한 정보를 요청하는 단계; 상기 외부 장치로부터 상기 설치된 어플리케이션에 대한 정보를 수신하는 단계; 상기 설치된 어플리케이션에 대한 정보에 포함된 복수의 어플리케이션 중 상기 전자 장치에서 실행 가능한 적어도 하나의 어플리케이션을 식별하는 단계; 상기 설치된 어플리케이션에 대한 정보를 바탕으로 상기 식별된 적어도 하나의 어플리케이션에 대응되는 적어도 하나의 아이콘을 디스플레이 상에 표시하는 단계; 및 상기 적어도 하나의 아이콘 중 하나가 선택되면, 상기 외부 장치와 통신을 수행하여 상기 선택된 아이콘에 대응되는 어플리케이션의 실행에 필요한 정보를 요청하여 상기 외부 장치에 설치된 어플리케이션을 실행하는 단계;를 포함한다.
한편, 본 개시의 일 실시 예에 따른, 전자 장치는 디스플레이; 통신 인터페이스; 적어도 하나의 인스트럭션을 포함하는 메모리; 및 상기 디스플레이. 통신 인터페이스 및 메모리와 연결되며, 상기 전자 장치를 제어하는 프로세서;를 포함하고, 상기 프로세서는 상기 적어도 하나의 인스트럭션을 실행함으로써, 전자 장치와 연결 가능한 외부 장치를 탐색하고, 상기 탐색된 외부 장치로, 상기 통신 인터페이스를 통해, 상기 외부 장치에 설치된 어플리케이션에 대한 정보를 요청하고, 상기 외부 장치로부터, 상기 통신 인터페이스를 통해, 상기 설치된 어플리케이션에 대한 정보를 수신하고, 상기 설치된 어플리케이션에 대한 정보에 포함된 복수의 어플리케이션 중 상기 전자 장치에서 실행 가능한 적어도 하나의 어플리케이션을 식별하고, 상기 설치된 어플리케이션에 대한 정보를 바탕으로 상기 식별된 적어도 하나의 어플리케이션에 대응되는 적어도 하나의 아이콘을 상기 디스플레이 상에 표시하고, 상기 적어도 하나의 아이콘 중 하나가 선택되면, 상기 외부 장치와 통신을 수행하여 상기 선택된 아이콘에 대응되는 어플리케이션의 실행에 필요한 정보를 요청하여 상기 외부 장치에 설치된 어플리케이션을 실행한다.
한편, 본 개시의 또 다른 실시 예에 따른, 전자 장치의 제어 방법은 전자 장치와 연결 가능한 제1 외부 장치를 탐색하는 단계; 상기 제1 외부 장치로부터 상기 제1 외부 장치에서 실행 가능한 제2 외부 장치에 설치된 어플리케이션에 대한 정보를 수신하는 단계; 상기 어플리케이션에 대한 정보를 바탕으로, 상기 제1 외부 장치에서 실행 가능한 제2 외부 장치에 설치된 어플리케이션에 대응되는 적어도 하나의 아이콘을 디스플레이 상에 표시하는 단계; 및 상기 적어도 하나의 아이콘 중 하나가 선택되면, 상기 제1 외부 장치로 상기 제1 외부 장치에서 상기 선택된 아이콘에 대응되는 어플리케이션이 실행되도록 어플리케이션 실행 요청을 전송하는 단계;를 포함한다.
본 개시의 다양한 실시 예들에 따르면, 전자 장치는 사용자의 별도의 작업 없이 외부 장치에 설치된 어플리케이션이 전자 장치에서 실행 가능한지 여부를 자동으로 식별할 수 있다.
또한, 본 개시의 다양한 실시 예들에 따르면, 전자 장치는 디스플레이가 구비되지 않은 외부 장치에 설치된 어플리케이션을 쉽게 제어할 수 있다.
도 1은 본 개시의 일 실시 예에 따른, 전자 장치의 구성을 나타내는 블록도이다.
도 2a는 본 개시의 일 실시 예에 따른, 외부 장치에 설치된 어플리케이션을 전자 장치에서 실행하기 위한 방법을 설명하기 위한 블록도이다.
도 2b는 본 개시의 일 실시 예에 따른, 외부 장치에 설치된 어플리케이션을 전자 장치에서 실행하는 실시 예를 설명하기 위한 도면이다.
도 3은 본 개시의 일 실시 예에 따른, 외부 장치에 설치된 어플리케이션을 전자 장치에서 실행시키기 위한 설정 방법을 나타내는 시퀀스도이다.
도 4는 본 개시의 일 실시 예에 따른, 외부 장치에 설치된 어플리케이션을 전자 장치에서 실행하는 방법을 나타내는 시퀀스도이다.
도 5는 본 개시의 일 실시 예에 따른, 외부 장치와 전자 장치 간의 연결이 해제됨에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
도 6은 본 개시의 일 실시 예에 따른, 공유 어플리케이션을 다른 어플리케이션과 구분하여 표시하기 위한 UI를 나타내는 도면이다.
도 7은 본 개시의 일 실시 예에 따른, 공유 어플리케이션이 설치된 장치가 복수 개인 경우, 공유 어플리케이션을 실행시킬 장치를 선택하기 위한 UI를 나타내는 도면이다.
도 8a는 본 개시의 일 실시 예에 따른, 전자 장치에서 설치된 어플리케이션을 외부 장치에서 실행시키기 위한 방법을 설명하기 위한 블록도이다.
도 8b는 본 개시의 일 실시 예에 따른, 전자 장치에서 설치된 어플리케이션을 외부 장치에서 실행하는 실시 예를 설명하기 위한 도면이다.
도 9는 본 개시의 일 실시 예에 따른, 전자 장치에서 설치된 어플리케이션을 외부 장치에서 실행시키기 위한 방법을 설명하기 위한 시퀀스도이다.
도 10a은 본 개시의 일 실시 예에 따른, 전자 장치를 통해 제2 외부 장치에 설치된 어플리케이션이 제1 외부 장치에서 실행되는 방법을 설명하기 위한 블록도이다.
도 10b는 본 개시의 일 실시 예에 따른, 전자 장치를 통해 제2 외부 장치에 설치된 어플리케이션이 제1 외부 장치에서 실행되는 실시 예를 설명하기 위한 도면이다.
도 11은 본 개시의 일 실시 예에 따른, 전자 장치를 통해 제2 외부 장치에 설치된 어플리케이션이 제1 외부 장치에서 실행되는 방법을 설명하기 위한 시퀀스도이다.
도 12는 본 개시의 일 실시 예에 따른, 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
도 1은 본 개시의 일 실시 예에 따른, 전자 장치의 구성을 나타내는 블록도이다.
도 1를 참조하면, 전자 장치(100)는 메모리(110), 통신 인터페이스(120), 디스플레이(130) 및 프로세서(140)를 포함할 수 있다. 본 개시에 따른, 전자 장치(100)는 스마트 폰, AR 글래스, 태블릿 PC, 이동 전화기, 영상 전화기, 전자책 리더기, TV, 데스크탑 PC, 랩탑 PC, 넷북 컴퓨터, 워크스테이션, 카메라, 스마트 워치 등과 같은 다양한 형태의 전자 장치로 구현될 수 있다. 다만, 이에 한정되지 않고 본 개시에 따른 전자 장치(100)는 댁내에서 사용할 수 있는 디스플레이를 포함하고 있는 다양한 전자 장치로 구현될 수 있다.
메모리(110)는 전자 장치(100)의 동작에 필요한 각종 프로그램 및 데이터를 저장할 수 있다. 구체적으로, 메모리(110)에는 적어도 하나의 명령어가 저장될 수 있다. 프로세서(140)는 메모리(110)에 저장된 명령어를 실행함으로써 전자 장치(100)의 동작을 수행할 수 있다.
메모리(110)는 비휘발성 메모리, 휘발성 메모리, 플래시메모리(flash-memory), 하드디스크 드라이브(HDD) 또는 솔리드 스테이트 드라이브(SSD) 등으로 구현될 수 있다. 메모리(110)는 프로세서(140)에 의해 액세스되며, 프로세서(140)에 의한 데이터의 독취/기록/수정/삭제/갱신 등이 수행될 수 있다. 본 개시에서 메모리라는 용어는 메모리(110), 프로세서(140) 내 롬(미도시), 램(미도시) 또는 전자 장치(100)에 장착되는 메모리 카드(미도시)(예를 들어, micro SD 카드, 메모리 스틱)를 포함할 수 있다. 또한, 메모리(110)에는 디스플레이의 디스플레이 영역에 표시될 각종 화면을 구성하기 위한 프로그램 및 데이터 등이 저장될 수 있다.
통신 인터페이스(120)는 외부 장치와 통신을 수행할 수 있다. 한편, 통신 인터페이스(120)가 외부 장치와 통신 연결되는 것은 제3 기기(예로, 중계기, 허브, 액세스 포인트, 서버 또는 게이트웨이 등)를 거쳐서 통신하는 것을 포함할 수 있다. 본 개시의 일 실시 예로, 통신 인터페이스(120)는 전자 장치(100)와 연결 가능한 외부 장치를 탐색할 수 있다. 본 개시에 따른 외부 장치는 어플리케이션을 설치하여 어플리케이션을 실행 가능한 장치일 수 있다. 일 실시 예로, 외부 장치는 태플릿 PC, 웨어러블 장치, TV, 스마트 폰 등과 같은 전자 장치로 구현될 수 있다. 다만, 이에 한정되지 않고 스피커, 냉장고, 공기 정화 장치 등과 같은 디스플레이를 포함하지 않는 전자 장치로도 구현될 수 있다.
통신 인터페이스(120)는 무선 통신 또는 유선 통신을 통해 외부 장치와 통신을 수행할 수 있다. 일 실시 예로, 무선 통신은, LTE, LTE-A(LTE Advance), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(Wireless Broadband), 또는 GSM(Global System for Mobile Communications) 등 중 적어도 하나를 사용하는 셀룰러 통신을 포함할 수 있다. 일 실시예에 따르면, 무선 통신은, 예를 들면, WiFi(wireless fidelity), 블루투스, 블루투스 저전력(BLE), 지그비(Zigbee), NFC(near field communication), 자력 시큐어 트랜스미션(Magnetic Secure Transmission), 라디오 프리퀀시(RF), 또는 보디 에어리어 네트워크(BAN) 중 적어도 하나를 포함할 수 있다. 유선 통신은, 예를 들면, USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard232), 전력선 통신, 또는 POTS(plain old telephone service) 등 중 적어도 하나를 포함할 수 있다. 무선 통신 또는 유선 통신이 수행되는 네트워크는 텔레커뮤니케이션 네트워크, 예를 들면, 컴퓨터 네트워크(예: LAN 또는 WAN), 인터넷, 또는 텔레폰 네트워크 중 적어도 하나를 포함할 수 있다.
그리고, 통신 인터페이스(120)는 탐색된 외부 장치로 외부 장치에 설치된 어플리케이션에 대한 정보를 요청할 수 있다. 그리고, 통신 인터페이스(120)는 외부 장치로부터 외부 장치에 설치된 어플리케이션에 대한 정보를 수신할 수 있다. 본 개시에 따른 어플리케이션에 대한 정보는 어플리케이션 Manifest 정보 및 외부 장치에 설치된 어플리케이션 목록을 포함할 수 있다.
그리고, 전자 장치(100)는 통신 인터페이스(120)를 통해 외부 장치와 통신을 수행하여 외부 장치에 설치된 어플리케이션의 실행에 필요한 정보를 요청하여 외부 장치에 설치된 어플리케이션을 실행할 수 있다. 이에 대한 자세한 내용은 후술하도록 한다.
디스플레이(130)는 프로세서(140)의 제어에 따라 다양한 정보를 표시할 수 있다. 디스플레이(130)는 LCD(Liquid Crystal Display Panel), LED(light emitting diode), OLED(Organic Light Emitting Diodes), LCoS(Liquid Crystal on Silicon), DLP(Digital Light Processing) 등과 같은 다양한 형태의 디스플레이로 구현될 수 있다. 또한, 디스플레이(130) 내에는 a-si TFT, LTPS(low temperature poly silicon) TFT, OTFT(organic TFT) 등과 같은 형태로 구현될 수 있는 구동 회로, 백라이트 유닛 등도 함께 포함될 수 있다.
또한, 디스플레이(130)는 터치 패널과 함께 결합되어 터치 스크린으로 구현될 수도 있다. 다만, 이는 일 실시 예일뿐이고, 디스플레이(130)는 다양하게 구현될 수 있다.
특히, 디스플레이(130)는 외부장치에서 수신한 외부 장치에 설치된 어플리케이션에 대한 정보를 바탕으로, 전자 장치(100)에서 실행 가능한 외부 장치에 설치된 적어도 하나의 어플리케이션에 대응되는 적어도 하나의 아이콘을 표시할 수 있다. 적어도 하나의 어플리케이션에 대응되는 적어도 하나의 아이콘은 다양한 방식으로 표시될 수 있으며, 후술할 도면을 통해 상술하도록 한다.
프로세서(140)는 메모리(110)와 전기적으로 연결되어 전자 장치(100)의 전반적인 동작 및 기능을 제어할 수 있다. 특히, 프로세서(140)는 외부 장치에 설치된 어플리케이션을 전자 장치(100)에서 실행하기 위한 어플리케이션 공유 기능을 제공할 수 있다. 본 개시에 따른 일 실시 예로, 도 1에 도시된 바와 같이 프로세서(140)에 포함된 복수의 모듈을 통해 어플리케이션 공유 기능이 구현될 수 있으나, 이에 한정되지 않고 어플리케이션 공유 기능이 외부 서버에서 구현될 수 있다.
어플리케이션 공유 기능은 도 1에 도시된 바와 같이, 장치 검색 모듈(210), 호환성 관리 모듈(220), UI 모듈(230), 원격 저장소 관리 모듈(240) 및 장치 연결 모듈(250)을 통해 구현될 수 있다. 복수의 모듈은 각각의 소프트웨어로 구현될 수 있으나, 이에 한정되지 않고 일부 모듈은 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또 다른 실시 예로, 복수의 모듈은 하나의 소프트웨어로 구현될 수 있다. 또한, 일부 모듈은 전자 장치(100) 내에서 구현되고, 다른 일부 모듈은 외부 서버에서 구현될 수 있다.
장치 검색 모듈(210)은 전자 장치(100)와 연결 가능한 외부 장치를 탐색할 수 있다. 구체적으로, 장치 검색 모듈(210)은 전자 장치(100)와 같은 네트워크 환경 내에 있는 외부 장치를 탐색할 수 있다. 일 실시 예로, 같은 네트워크 환경 내에 있는 외부 장치는 전자 장치(100)와 같은 네트워크 연결 환경(LAN, WAN, BT 등)내에 존재하는 외부 장치일 수 있다. 다른 실시 예로, 같은 네트워크 환경 내에 있는 외부 장치는 전자 장치(100)와 같은 Wi-Fi 환경 내에 있는 외부 장치일 수 있다.
장치 검색 모듈(210)은 UDP(User Datagram Protocol) 패킷을 네트워크 내에 각 외부 장치 IP 별 특정 포트로 발신하여 전자 장치(100)와 연결 가능한 외부 장치를 탐색할 수 있다. 일 실시 예로, 전자 장치(100)와 연결 가능한 외부 장치는 전자 장치(100)와 동일한 네트워트 환경 내에 속하는 장치일 수 있다.
그리고, 장치 검색 모듈(210)은 기 설정된 시간(예로, 30초) 내에 UDP 패킷으로 응답하는 외부 장치를 전자 장치(100)와 연결 가능한 외부 장치로 식별할 수 있다.
그리고, 장치 검색 모듈(210)은 식별된 외부 장치로 외부 장치에 설치된 어플리케이션에 대한 정보를 요청할 수 있다. 그리고, 장치 검색 모듈(210)은 외부 장치로부터 외부 장치에 설치된 어플리케이션에 대한 정보를 수신할 수 있다.
본 개시에 따른 일 실시 예로, 외부 장치에 설치된 어플리케이션에 대한 정보에는 어플리케이션 Manifest 정보 및 외부 장치에 설치된 어플리케이션 목록이 포함될 수 있다. 어플리케이션 Manifest 정보는 어플리케이션의 실행에 필요한 정보일 수 있다. 어플리케이션 Manifest 정보는 어플리케이션의 실행에 필요한 실행 코드 및 데이터들을 포함할 수 있다. 일 실시예로, 어플리케이션 Manifest 정보에는 어플리케이션의 버전에 대한 정보, 어플리케이션 실행 시 필요한 권한에 대한 정보, 어플리케이션 패키지 ID에 대한 정보, 플랫폼 API 버전에 대한 정보, 어플리케이션 실행 파일에 대한 정보, 아이콘 파일에 대한 정보 및 개발자 정보 중 적어도 하나를 포함할 수 있다. 다만, 이에 한정되지 않고, 어플리케이션 Manifest 정보는 어플리케이션 실행에 필요한 다른 정보들을 더 포함할 수 있다.
전자 장치(100)가 외부 장치로부터 외부 장치에 설치된 어플리케이션에 대한 정보를 수신하면, 호환성 관리 모듈(220)은 외부 장치에 설치된 어플리케이션에 대한 어플리케이션 Manifest 정보를 분석하여 외부 장치에 설치된 어플리케이션 중 전자 장치(100)에서 실행 가능한 적어도 하나의 어플리케이션을 식별할 수 있다.
즉, 본 개시에 따른 호환성 관리 모듈(220)은 외부 장치에 설치된 어플리케이션이 전자 장치(100)에서 실행가능한지 식별하기 위한 구성이다.
구체적으로, 호환성 관리 모듈(220)은 외부 장치에 설치된 어플리케이션에 대한 어플리케이션 Manifest 정보에 포함된 복수의 어플리케이션 각각이 실행 될 수 있는 플랫폼 최소 버전에 대한 정보, ISA(ARM, x86 등) 또는 VM 버전 및 종류에 대한 정보, 외부 장치의 종류 및 모델에 대한 정보, 외부 장치에 설치된 복수의 어플리케이션 각각에 대한 지원 국가 정보 등을 이용하여 외부 장치에 설치된 어플리케이션 목록에 포함된 어플리케이션 중 전자 장치(100)에서 실행 가능한 적어도 하나의 어플리케이션을 식별할 수 있다.
또한, 본 개시에 따른 일 실시 예로, 호환성 관리 모듈(220)은 외부 장치에서 설치된 어플리케이션을 전자 장치(100)에서 실행할 때 필요한 구성에 대한 정보를 갱신할 수 있다. 예로, 호환성 관리 모듈(220)은 외부 장치에 설치된 어플리케이션에 대한 정보를 이용하여, 전자 장치(100)에서 실행하고자 하는 외부 장치에 설치된 어플리케이션이 실행되기에 필요한 파일을 식별할 수 있다. 어플리케이션이 실행되기에 필요한 파일이 식별되면, 호환성 관리 모듈(220)은 외부 장치 내 접근이 필요한 파일 목록들에 대한 호환성 여부를 식별할 수 있다. 그리고, 식별된 호환성 여부를 바탕으로, 호환성 관리 모듈(220)은 원격 저장소 관리 모듈(240)이 관리해야 할 파일 및 폴더 목록을 획득할 수 있다.
또한, 호환성 관리 모듈(220)은 외부 장치에 설치된 어플리케이션을 전자 장치(100)에서 실행하는 경우, 호환성에 문제가 없는 어플리케이션의 설치 정보를 전자 장치(100)의 패키지 매니저의 포맷에 맞춰 재구성할 수 있다. 일 실시 예로, 외부 장치에 설치된 어플리케이션을 전자 장치(100)에서 실행하려는 경우, 해당 어플리케이션에 대한 아이콘 파일 등과 같은 부가적인 리소스 파일 등이 필요할 수 있다. 이 경우, 호환성 관리 모듈(220)가 전자 장치(100)의 패키지 매니저에 해당 어플리케이션에 대한 설치 정보를 추가하면서, 외부 장치로부터 부가적인 리소스 파일 등을 가져오거나, 전자 장치(100)가 외부 장치에 저장된 리소스 파일에 접근할 수 있도록 원격 저장소 관리 모듈(240)을 제어할 수 있다.
호환성 관리 모듈(220)을 통해, 전자 장치(100)에서 실행 가능한 어플리케이션이 식별된 경우, UI 모듈(230)은 식별된 어플리케이션에 대응되는 아이콘을 디스플레이(130)상에 표시할 수 있다. 즉, UI 모듈(230)은 디스플레이(130)에 외부 장치에 설치된 어플리케이션 중 전자 장치(100)에서 실행 가능한 어플리케이션에 대응되는 아이콘을 표시할 수 있다.
일 실시 예로, UI 모듈(230)은 외부 장치에 설치된 어플리케이션 중 전자 장치(100)에서 실행 가능한 어플리케이션에 대응되는 아이콘을 홈스크린, 앱스 목록 및 위젯 목록 등에 표시할 수 있다.
일 실시 예로, 외부 장치에 설치된 어플리케이션 중 전자 장치(100)에서 실행 가능한 어플리케이션에 대응되는 아이콘에는 전자 장치(100)에 설치된 어플리케이션과 구별되도록 외부 장치에 설치된 어플리케이션이라는 식별자를 더 포함할 수 있다.
또한, 일 실시 예로, UI 모듈(230)은 외부 장치에 설치된 어플리케이션 중 전자 장치(100)에서 실행 가능한 어플리케이션에 대한 목록을 디스플레이(130)에 표시하고, 표시된 어플리케이션에 대한 목록 중 사용자에 의해 선택된 어플리케이션에 대응되는 아이콘 만을 디스플레이(130)에 표시할 수 있다.
또한, 일 실시 예로, 외부 장치에 설치된 어플리케이션 중 전자 장치(100)에서 실행 가능한 어플리케이션에 대응되는 아이콘이 선택되면, UI 모듈(230)은 선택된 아이콘에 대응되는 어플리케이션을 전자 장치(100)에서 실행시킬지, 외부 장치에서 실행시킬지를 식별하기 위한 UI를 더 표시할 수 있다.
UI 모듈(230)이 외부 장치에 설치된 어플리케이션에 대응되는 아이콘을 표시하는 방법 및 UI 모듈(230)에 의해 어플리케이션이 실행되는 방법에 대해서는 이하의 도면을 통해 후술하도록 한다.
전자 장치(100)에서 외부 장치에 설치된 어플리케이션에 대한 실행 명령이 감지되면, 원격 저장소 관리 모듈(240)은 해당 어플리케이션에 대한 어플리케이션 Manifest 정보에 포함된 패키지 ID에 대한 정보를 통해, 패키지 ID의 유효성을 판단할 수 있다. 그리고, 원격 저장소 관리 모듈(240)은 패키지 매니저 정보를 이용하여 실행 파일의 저장 위치를 검색할 수 있다. 또한, 원격 저장소 관리 모듈(240)은 장치 연결 모듈(250)을 통해 외부 장치에 연결을 요청하고, 외부 장치의 원격 저장소 관리 모듈로부터 실행파일을 수신할 수 있다. 본 개시에 따른 장치 연결 모듈(250)은 어플리케이션이 설치된 장치와 어플리케이션을 실행하고자 하는 장치를 연결하기 위한 구성이다. 일 실시 예로, 장치 연결 모듈(250)은 외부 장치 내의 저장공간 일부를 전자 장치(100)에서 접근 가능하게 하여, 외부 장치에 설치된 어플리케이션이 전자 장치(100)에서 실행되도록 프로세서(140)를 제어 할 수 있다.
일 실시 예로, 원격 저장소 관리 모듈(240)은 외부 장치에 설치된 어플리케이션과 관련된 폴더 매핑 정보를 관리할 수 있다. 예로, 전자 장치(100)에서 실행 가능한 외부 장치에 설치된 제1 어플리케이션에 대한 파일이 저장된 위치가 전자 장치(100) 및 외부 장치에서 서로 상이할 경우, 원격 저장소 관리 모듈(240)은 선택된 아이콘에 대응되는 어플리케이션에 대한 파일들의 경로에 대한 폴더 매핑 정보를 생성할 수 있다. 예로, 전자 장치(100)에서 제1 어플리케이션에 대한 파일이 외부 장치에서는 “/opt/usr/apps/com.samsung.hello-world/bin/hello” 폴더에 저장되어 있고, 전자 장치(100)에서는 “/opt/usr/shared_apps/com.samsung.hello-world/bin/hello” 폴더에 저장되어 있는 경우, 원격 저장소 관리 모듈(240)은 “apps/com.samsung.hello-world
Figure pat00001
shared_apps/com.samsung.hello-world”와 같은 폴더 매핑 정보를 생성할 수 있다. 그리고, 전자 장치(100)의 디스플레이(130)에 표시된 제1 어플리케이션에 대한 아이콘이 선택되면, 전자 장치(100)와 외부 장치간 연결이 수행되고, 원격 저장소 관리 모듈(240)은 제1 어플리케이션에 대한 폴더 매핑 정보를 이용하여, 제1 어플리케이션을 전자 장치(100)에서 실행시킬 수 있다.
일 실시 예로, 전자 장치(100)에서 외부 장치에 설치된 제2 어플리케이션에 대한 실행 명령이 감지되면, 원격 저장소 관리 모듈(240)은 장치 연결 모듈(250)을 통해 전자 장치(100)와 외부 장치에 대한 연결을 수행할 수 있다. 그리고, 전자 장치(100)와 외부 장치가 연결되면, 원격 저장소 관리 모듈(240)은 외부 장치로 제2 어플리케이션에 대한 실행 파일에 대한 읽기를 요청을 하고, 외부 장치로부터 제2 어플리케이션 실행 파일에 대한 읽기와 관련된 정보를 수신할 수 있다. 실행 파일에 대한 읽기와 관련된 정보가 수신되면, 프로세서(140)는 수신된 정보에 포함된 어플리케이션 프로세스 코드를 실행함으로, 제2 어플리케이션이 전자 장치(100)에서 실행될 수 있다.
또한, 원격 저장소 관리 모듈(240)은 외부 장치에 설치된 어플리케이션과 관련된 파일 매핑 정보를 관리할 수 있다. 예로, 외부 장치에 설치된 제2 어플리케이션이 전자 장치(100)에서 실행 도중에 제2 어플리케이션 실행에 필요한 파일이 전자 장치(100)의 제2 어플리케이션에 대한 폴더 내에 존재하지 않는 경우, 원격 저장소 관리 모듈(240)은 제2 어플리케이션 실행에 필요한 파일에 대한 파일 매핑 정보를 생성할 수 있다. 일 실시 예로, 제2 어플리케이션 실행에 필요한 파일은 제2 어플리케이션 실행 도중 접근하게 되는 라이브러리 파일 또는 데이터 파일일 수 있다. 그리고, 제2 어플리케이션이 실행 중 라이브러리 파일 또는 데이터 파일이 필요한 경우, 원격 저장소 관리 모듈(240)은 제2 어플리케이션에 대한 파일 매핑 정보를 바탕으로, 제2 어플리케이션 실행에 필요한 파일에 대한 읽기 및 쓰기 기능을 외부 장치에 요청할 수 있다. 그리고, 원격 저장소 관리 모듈(240)은 외부 장치로부터 제2 어플리케이션 실행에 필요한 파일에 대한 읽기 및 쓰기 기능과 관련된 정보를 수신할 수 있다. 그리고, 수신한 정보를 바탕으로, 제2 어플리케이션이 전자 장치(100)에서 실행될 수 있다.
또한, 일 실시 예로, 원격 저장소 관리 모듈(240)은 제2 어플리케이션이 전자 장치(100)에서 실행되면, 제2 어플리케이션과 관련된 외부 장치에 저장되어 있는 파일을 전자 장치(100)가 접근할 수 있도록 제어할 수 있다. 예로, 제2 어플리케이션이 사진 및 동영상을 디스플레이에 표시하기 위한 갤러리 어플리케이션인 경우, 원격 저장소 관리 모듈(240)은 전자 장치(100)가 제2 어플리케이션이 설치된 외부 장치에 저장되어 있는 사진 및 동영상이 저장된 폴더에 접근을 가능하게 하여, 외부 장치에 저장되어 있는 사진 및 동영상 목록을 전자 장치(100)의 디스플레이(130) 상에 표시하도록 제어할 수 있다.
프로세서(140)는 하나 또는 복수의 프로세서로 구성될 수 있다. 이때, 하나 또는 복수의 프로세서는 CPU(Central Processing Unit), AP(application processor) 등과 같은 범용 프로세서, GPU(Graphics Processing Unit). VPU(Visual Processing Unit) 등과 같은 그래픽 전용 프로세서 또는 NPU(Neural Processing Unit) 와 같은 인공지능 전용 프로세서일 수 있다.
하나 또는 복수의 프로세서는, 메모리에 저장된 기 정의된 동작 규칙 또는 인공지능 모델에 따라, 입력 데이터를 처리하도록 제어한다. 기 정의된 동작 규칙 또는 인공지능 모델은 학습을 통해 만들어진 것을 특징으로 한다. 여기서, 학습을 통해 만들어진다는 것은, 다수의 학습 데이터들에 학습 알고리즘을 적용함으로써, 원하는 특성의 기 정의된 동작 규칙 또는 인공지능 모델이 만들어짐을 의미한다. 이러한 학습은 본 개시에 따른 인공지능이 수행되는 기기 자체에서 이루어질 수도 있고, 별도의 서버/시스템을 통해 이루어 질 수도 있다.
또한, 전자 장치(100)는 도 1에는 도시되어 있지 않으나, 입력 인터페이스를 더 포함할 수 있다. 입력 인터페이스는 사용자 명령을 입력 받을 수 있다. 일 실시 예로, 입력 인터페이스는 사용자 명령을 입력 받기 위한 물리 버튼 및 음성 인식 센서 중 적어도 하나를 포함할 수 있으며, 사용자 터치 조작을 감지하는 터치 스크린 형태로 구현될 수 있다. 구체적으로, 입력 인터페이스는 물리 버튼을 포함하고, 사용자는 물리 버튼을 누름으로써 사용자 명령을 입력할 수 있다. 그리고, 입력 인터페이스는 터치 스크린을 포함하고, 사용자는 터치 스크린을 터치함으로 사용자 명령을 입력할 수 있다. 그리고, 입력 인터페이스는 음성 인식 센서를 포함하고, 사용자는 마이크에 사용자 음성을 발화함으로, 사용자 명령을 입력할 수 있다. 이상에서는 입력 인터페이스에 관하여, 물리 버튼 및 음성 인식 센서를 포함하는 경우를 예로 들었으나, 그 밖에도 입력 인터페이스는 사용자와 상호작용하여 사용자의 명령을 입력 받을 수 있는 다양한 구성을 포함할 수 있다.
상술한 설명에서는, 외부 장치에 설치된 어플리케이션을 전자 장치(100)에서 실행하는 방법만을 설명하였으나, 본 개시에 따른 어플리케이션 공유 기능은 이에 한정되지 않고 전자 장치(100)에 설치된 어플리케이션을 외부 장치에서 실행시킬 수 있다. 또한, 전자 장치(100)는 제1 외부 장치에서 설치된 어플리케이션을 제2 외부 장치에서 실행되도록 제1 외부 장치 및 제2 외부 장치를 제어할 수 있으며, 이에 대한 자세한 내용은 후술한 도면을 통해 설명하도록 한다.
웹 앱(Wep App)이나 무선외장하드를 이용하는 기존의 원격스토리지 서비스에 따르면, 본 개시에 따른 어플리케이션 공유 기능과 달리 자동으로 외부 장치에 설치된 어플리케이션이 전자 장치(100)에서 실행 가능한지 식별하거나, 자동으로 외부 장치에 설치된 어플리케이션의 실행 파일을 식별할 수 없었다.
즉, 웹 앱(Wep App)과 같은 비교 예에 따르면, 전자 장치(100)에 설치되지 않은 어플리케이션을 실행하기 위해서는 해당 어플리케이션을 설치하는 과정을 거치거나, 브라우저(Browser)나 웹 런타임(Web Runtime)과 같은 중간 단계의 어플리케이션을 실행시킨 후, 웹 앱과 관련된 URL을 전달받아 실행시키는 단계가 선행되어야 한다. 즉, 본 개시에 따른 어플리케이션 공유 기능과 다르게 웹 앱의 비교 예에는 외부 장치에 설치된 어플리케이션을 전자 장치(100)에서 설치 없이 바로 실행할 수 없다.
또한, 무선외장하드(예, NFS(Network File System) 또는 CIFS(Common Internet File System))와 같은 비교 예에 따르면, 전자 장치(100)에서 일정 어플리케이션을 실행하기 위해서는 사용자가 해당 어플리케이션을 전자 장치(100)에 설치하는 과정을 진행해야 하며, 설치를 통해 지정된 경로에 따라 해당 어플리케이션 파일들이 복사된다.
따라서, 본 개시에 따른 어플리케이션 공유 기능에 따르면, 상술한 비교 예와 달리, 호환성 관리 모듈(220)이 외부 장치에 설치된 어플리케이션이 전자 장치(100)에서 실행가능한지 식별하고, 원격 저장소 관리 모듈(240)이 외부 장치에 설치된 어플리케이션에 대한 파일 정보 및 폴더 정보를 관리하여, 어플리케이션의 공유 가능성이 자동으로 분석되고 사용자의 별도 작업 없이 공유 어플리케이션의 실행 파일이 자동으로 식별될 수 있다.
또한, 본 개시에 따른 어플리케이션 공유 기능을 통해, 전자 장치(100)는 디스플레이가 구비되지 않은 외부 장치에 설치된 어플리케이션을 쉽게 제어할 수 있게 된다. 또한, 전자 장치(100)는 전자 장치(100)에 설치된 어플리케이션을 디스플레이가 구비되지 않은 외부 장치에서 실행 가능하도록 제어할 수 있다.
도 2a는 본 개시의 일 실시 예에 따른, 외부 장치에 설치된 어플리케이션을 전자 장치에서 실행하기 위한 방법을 설명하기 위한 블록도이며, 도 2b는 본 개시의 일 실시 예에 따른, 외부 장치에 설치된 어플리케이션을 전자 장치에서 실행하는 실시 예를 설명하기 위한 도면이다.
도 2a를 참조하면, 본 개시에 따른 일 실시 예로, 전자 장치(100)는 외부 장치(300)에서 설치된 어플리케이션을 전자 장치(100)에서 실행할 수 있다.
즉, 전자 장치(100)는 전자 장치(100)와 연결 가능한 외부 장치(300)를 탐색하고, 탐색된 외부 장치(300)와 연결을 수행할 수 있다. 일 실시 예로, UDP 패킷을 네트워크 내에 각 외부 장치 IP 별 특정 포트로 발신하고, UDP 패킷에 응답하는 정보를 전자 장치(100)로 수신하는 외부 장치(300)를 전자 장치(100)와 연결 가능한 외부 장치(300)로 식별할 수 있다.
그리고, 전자 장치(100)는 연결된 외부 장치(300)로부터 외부 장치(300)에 설치된 어플리케이션에 대한 정보를 획득하고, 획득한 정보를 통해 전자 장치(100)에서 실행 가능한 적어도 하나의 어플리케이션을 식별할 수 있다. 일 실시 예로, 설치된 어플리케이션에 대한 정보는 어플리케이션 Manifest 정보 및 상기 외부 장치에 설치된 어플리케이션에 대한 목록에 대한 정보를 포함할 수 있다.
그리고, 식별된 적어도 하나의 어플리케이션에 각각 대응되는 아이콘을 전자 장치(100)의 디스플레이(130)상에 표시할 수 있다. 그리고, 적어도 하나의 아이콘 중 하나가 선택되면, 외부 장치(300)와 통신을 수행하여 선택된 아이콘에 대응되는 어플리케이션의 실행에 필요한 정보를 요청하여 외부 장치(300)에 설치된 어플리케이션을 실행할 수 있다.
도 2b를 참조하면, 본 개시에 따른 전자 장치(100)가 TV로 구현되며, 본 개시에 따른 외부 장치(300)가 스마트 워치로 구현되는 경우를 나타내고 있다. 즉, 일 실시 예로, 전자 장치(100)는 스마트 워치인 외부 장치(300)에 설치된 헬스 케어 어플리케이션을 TV인 전자 장치(100)에서 실행할 수 있다. 그리고, 전자 장치(100)는 외부 장치(300)에 저장되어 있는 헬스 케어 어플리케이션에 대한 사용자 정보를 접근하여 전자 장치(100)에서 외부 장치(300)를 사용한 사용자에 대한 헬스 케어 정보를 표시하거나 관리할 수 있다.
또한, 일 실시 예로, 전자 장치(100)는 외부 장치(300)에 설치된 어플리케이션에 대한 관리를 수행할 수 있다. 즉, 전자 장치(100)는 외부 장치(300)에 설치된 어플리케이션에 대한 업데이트를 수행할 수 있다. 또한, 전자 장치(100)는 외부 장치(300)에 설치된 어플리케이션에 대한 설정을 변경할 수 있다.
외부 장치(300)에 설치된 어플리케이션을 전자 장치(100)에서 실행하기 위한 방법에 대해서는 도 3, 도 4 및 도 5를 통해 후술하도록 한다.
도 3은 본 개시의 일 실시 예에 따른, 외부 장치에 설치된 어플리케이션을 전자 장치에서 실행시키기 위한 설정 방법을 나타내는 시퀀스도이다.
먼저, 전자 장치(100)는 외부 장치(300)로 UDP 패킷을 전송할 수 있다(S305). 즉, 전자 장치(100)는 전자 장치(100)와 통신 연결된 네트워크 내에 각 외부 장치에 대한 IP별 특정 포트로 UDP 패킷을 발신하여, 전자 장치(100)와 연결 가능한 외부 장치(300)를 탐색할 수 있다. 그리고, 외부 장치(300)는 UDP 패킷에 응답하는 정보를 전자 장치(100)로 전송할 수 있다(S310).
전자 장치(100)가 외부 장치(300)로부터 UDP 패킷에 응답하는 정보를 수신하면, 전자 장치(100)는 해당 외부 장치(300)를 연결 가능한 장치로 식별하고, 외부 장치(300)와 연결을 수행할 수 있다(S315). 또한, 외부 장치(300)는 전자 장치(100)와 연결을 수행할 수 있다(S320).
그리고, 전자 장치(100)는 공유 장치 목록을 갱신할 수 있다(S325). 즉, 연결이 수행된 외부 장치(300)를 공유 가능한 장치로 식별하여, 공유 장치 목록에 외부 장치(300)를 추가할 수 있다.
그리고, 전자 장치(100)는 외부 장치(300)에 설치된 어플리케이션에 대한 정보를 외부 장치(300)에 요청할 수 있다(S330). 그리고, 외부 장치(300)는 외부 장치(300)에 설치된 어플리케이션에 대한 정보를 전자 장치(100)로 전송할 수 있다(S335). 본 개시에 따른 일 실시 예로, 외부 장치에 설치된 어플리케이션에 대한 정보에는 어플리케이션 Manifest 정보 및 외부 장치에 설치된 어플리케이션 목록이 포함될 수 있다.
전자 장치(100)가 외부 장치(300)에 설치된 어플리케이션에 대한 정보를 획득하면, 전자 장치(100)는 외부 장치(300)에 설치된 어플리케이션에 대한 정보에 포함된 복수의 어플리케이션 중 전자 장치(100)에서 실행 가능한 적어도 하나의 어플리케이션을 식별할 수 있다(S340). 일 실시 예로, 전자 장치(100)는 외부 장치(300)에 설치된 어플리케이션에 대한 어플리케이션 Manifest 정보를 분석하여 외부 장치(300)에 설치된 어플리케이션 중 전자 장치(100)에서 실행 가능한 적어도 하나의 어플리케이션을 식별할 수 있다. 구체적으로, 전자 장치(100)는 외부 장치(300)에 설치된 어플리케이션에 대한 어플리케이션 Manifest 정보에 포함된 복수의 어플리케이션 각각이 실행 될 수 있는 플랫폼 최소 버전에 대한 정보, ISA(ARM, x86 등) 또는 VM 버전 및 종류에 대한 정보, 외부 장치(300)의 종류 및 모델에 대한 정보, 외부 장치(300)에 설치된 복수의 어플리케이션 각각에 대한 지원 국가 정보 등을 이용하여 외부 장치(300)에 설치된 어플리케이션 목록에 포함된 어플리케이션 중 전자 장치(100)에서 실행 가능한 적어도 하나의 어플리케이션을 식별할 수 있다.
전자 장치(100)에서 실행 가능한 적어도 하나의 어플리케이션이 식별되면, 전자 장치(100)는 공유 어플리케이션 목록을 갱신할 수 있다(S345). 일 실시 예로, 식별된 어플리케이션을 공유 어플리케이션 목록에 추가할 수 있다. 그리고, 공유 어플리케이션에 대응되는 아이콘을 표시할 수 있다(S350). 일 실시 예로, 전자 장치(100)는 외부 장치(300)에 설치된 어플리케이션 중 전자 장치(100)에서 실행 가능한 어플리케이션에 대응되는 아이콘을 홈스크린, 앱스 목록 및 위젯 목록 등에 표시할 수 있다.
또한, 일 실시 예로, 전자 장치(100)는 외부 장치에 설치된 어플리케이션 중 전자 장치(100)에서 실행 가능한 어플리케이션에 대응되는 아이콘에는 전자 장치(100)에 설치된 어플리케이션과 구별되도록 외부 장치에 설치된 어플리케이션이라는 식별자를 더 포함할 수 있다.
외부 장치에 설치된 어플리케이션에 대한 아이콘을 표시하는 방법에 대해서는 도 6 및 도 7을 통해 후술하도록 한다.
도 4는 본 개시의 일 실시 예에 따른, 외부 장치에 설치된 어플리케이션을 전자 장치에서 실행하는 방법을 나타내는 시퀀스도이다.
전자 장치(100)는 외부 장치(300)와 연결이 수행되고(S405), 외부 장치(300)는 전자 장치(100)와 연결이 수행된 경우(S410), 전자 장치(100)에서 외부 장치(300)에 설치된 어플리케이션에 대응되는 아이콘이 선택될 수 있다(S415).
즉, 도 3의 S350 단계에 따라 전자 장치(100)에서 공유 어플리케이션에 대응되는 적어도 하나의 아이콘이 표시되고, 사용자에 의해 적어도 하나의 아이콘 중 하나의 아이콘이 선택될 수 있다.
아이콘이 선택되면, 전자 장치(100)는 선택된 아이콘에 대응되는 어플리케이션의 실행에 필요한 정보를 외부 장치(300)에 요청할 수 있다(S420). 즉, 아이콘이 선택되면, 전자 장치(100)는 선택된 아이콘에 대응되는 어플리케이션에 대한 실행 명령이 감지된 것으로 식별하고, 전자 장치(100)는 해당 어플리케이션에 대한 어플리케이션 Manifest 정보에 포함된 패키지 ID에 대한 정보를 통해, 패키지 ID의 유효성을 판단할 수 있다. 그리고, 전자 장치(100)는 패키지 매니저 정보를 이용하여 실행 파일의 저장 위치를 검색할 수 있다. 그리고, 외부 장치(300)는 전자 장치(100)로 실행파일을 전송할 수 있다(S425).
전자 장치(100)가 외부 장치(300)로부터 선택된 아이콘에 대응되는 실행 파일에 필요한 정보를 수신하면, 전자 장치(100)는 선택된 아이콘에 대응되는 어플리케이션을 실행할 수 있다(S430). 일 실시 예로, 전자 장치(100)는 외부 장치에 설치된 어플리케이션과 관련된 폴더 매핑 정보 및 파일 매핑 정보를 통해, 선택된 아이콘에 대응되는 어플리케이션을 실행할 수 있다.
도 5는 본 개시의 일 실시 예에 따른, 외부 장치와 전자 장치 간의 연결이 해제됨에 따른 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
먼저, 전자 장치(100)는 외부 장치(300)와 연결이 해제된 것을 식별할 수 있다(S510). 일 실시 예로, 외부 장치(300)가 전자 장치(100)와 같은 네트워크 환경 내에 있지 않는 경우, 전자 장치(100)는 외부 장치(300)와 연결이 해제된 것으로 식별할 수 있다. 일 실시 예로, 전자 장치(100)와 외부 장치(300)간 연결이 수행된 후, 전자 장치(100)가 UDP 패킷을 외부 장치(300) IP에 대한 포트로 발신하였으나, 기 설정된 시간(예로, 30초) 내에 전자 장치(100)가 외부 장치(300)로부터 UDP 패킷에 응답하는 정보를 수신하지 못한 경우, 전자 장치(100)는 외부 장치(300)와 연결이 해제된 것으로 식별할 수 있다.
외부 장치(300)와 연결이 해제된 것으로 식별되면, 전자 장치(100)는 공유 장치 목록을 갱신할 수 있다(S520). 즉, 기존에 공유 장치 목록에 포함되어 있던 외부 장치(300)를 공유 장치 목록에서 삭제하여 공유 장치 목록을 갱신할 수 있다.
그리고, 전자 장치(100)는 공유 어플리케이션 목록을 갱신할 수 있다(S530). 즉, 기존의 공유 어플리케이션 목록에서 외부 장치(300)에 설치된 어플리케이션을 삭제하여 공유 어플리케이션 목록을 갱신할 수 있다.
그리고, 현재 실행 중인 어플리케이션이 외부 장치에 설치된 어플리케이션인 것으로 식별되면(S540), 전자 장치(100)는 실행 중인 어플리케이션을 강제 종료할 수 있다(S550). 일 실시 예로, 전자 장치(100)는 실행 중인 어플리케이션을 강제 종료하면서, 외부 장치(300)와의 연결이 해제되었음을 알리는 UI를 표시할 수 있다.
도 6은 본 개시의 일 실시 예에 따른, 공유 어플리케이션을 다른 어플리케이션과 구분하여 표시하기 위한 UI를 나타내는 도면이다.
본 개시의 일 실시 예에 따르면, 외부 장치(300)에 설치된 어플리케이션 중 전자 장치(100)에서 실행 가능한 어플리케이션에 대응되는 아이콘을 전자 장치(100)에 설치된 어플리케이션과 구별되도록 표시할 수 있다.
도 6을 참조하면, 전자 장치(100)는 디스플레이(130) 상에 표시되는 적어도 하나의 어플리케이션에 대응되는 아이콘을 표시할 수 있다.
그리고, 일 실시 예로, 외부 장치(300)에 설치된 어플리케이션 중 전자 장치(100)에서 실행 가능한 제1 어플리케이션에 대응되는 아이콘(610)은 “Shared”의 제1 식별자(10)를 더 포함할 수 있다. 즉, 외부 장치(300)에 설치된 제1 어플리케이션에 대응되는 아이콘(610)이 제1 식별자(10)를 포함함으로 인해, 사용자는 해당 어플리케이션이 외부 장치(300)에 설치된 어플리케이션임을 쉽게 알 수 있다.
본 개시에 따른 일 실시 예로, 전자 장치(100)에 설치된 제2 어플리케이션이 외부 장치(300)에서 실행가능 하도록 공유된 경우, 전자 장치(100)는 디스플레이(130) 상에 제2 어플리케이션에 대응되는 아이콘(620)에 “Local Shared”의 제2 식별자(20)를 더 포함하여 표시할 수 있다. 즉, 외부 장치(300)에서 실행 가능하도록 공유된 제2 어플리케이션에 대응되는 아이콘(620)이 제2 식별자(20)를 포함함으로 인해, 사용자는 해당 어플리케이션이 외부 장치(300)에서 실행가능한 어플리케이션임을 쉽게 알 수 있다.
본 개시에 따른 일 실시 예로, 전자 장치(100)는 복수의 외부 장치에 설치된 제3 어플리케이션을 제3 어플리케이션이 설치된 복수의 외부 장치 중 하나의 외부 장치에서 실행되도록 제어할 수 있다. 그리고, 복수의 외부 장치에 설치된 제3 어플리케이션에 대응되는 아이콘(630)은 “Multi Shared”의 제3 식별자(30)를 더 포함할 수 있다. 즉, 복수의 외부 장치에 설치된 제3 어플리케이션에 대응되는 아이콘(630)이 제3 식별자(30)를 포함함으로 인해, 사용자는 제3 어플리케이션을 복수의 외부 장치 중 하나의 외부 장치에서 실행되도록 전자 장치(100)가 제어할 수 있음을 쉽게 알 수 있다. 그리고, 제3 어플리케이션에 대응되는 아이콘(630)이 선택된 경우, 전자 장치(100)는 디스플레이(130) 상에 복수의 외부 장치 중 어플리케이션을 실행시킬 외부 장치를 선택할 수 있는 UI를 더 표시할 수 있다. 복수의 외부 장치 중 어플리케이션을 실행시킬 외부 장치를 선택할 수 있는 UI에 대해서는 도 7을 통해 후술하도록 한다.
본 개시에 따른 일 실시 예로, 제4 어플리케이션이 전자 장치(100)에 설치되고, 외부 장치(300)에서 실행 가능하도록 공유된 어플리케이션이고, 외부 장치(300)에 설치되고, 전자 장치(100)에서 실행 가능한 어플리케이션인 경우, 전자 장치(100)는 제4 어플리케이션에 대응되는 아이콘(640)에 제1 식별자(10) 및 제2 식별자(20)를 더 포함하여 표시할 수 있다. 즉, 제4 어플리케이션은 전자 장치(100) 및 외부 장치(300) 모두에 설치되어 있을 수 있다. 그리고, 전자 장치(100)에서 외부 장치(300)에 설치된 제4 어플리케이션을 실행하거나, 외부 장치(300)에서 전자 장치(100)에 설치된 제4 어플리케이션을 실행할 수 있다.
도 6에서는 제1 식별자(10), 제2 식별자(20) 및 제3 식별자(30)가 텍스트인 것으로 도시되어 있으나, 이에 한정되지 않는다. 즉, 제1 식별자(10), 제2 식별자(20) 및 제3 식별자(30)는 다른 어플리케이션 아이콘과 구별될 수 있는 다양한 식별자로 구현될 수 있다.
도 7은 본 개시의 일 실시 예에 따른, 공유 어플리케이션이 설치된 장치가 복수 개인 경우, 공유 어플리케이션을 실행시킬 장치를 선택하기 위한 UI를 나타내는 도면이다.
본 개시에 따른 일 실시 예로, 복수의 외부 장치에 설치된 제3 어플리케이션에 대응되는 아이콘(630)이 선택되면, 전자 장치(100)는 디스플레이(130) 상에 제3 어플리케이션을 실행시킬 외부 장치를 선택하기 위한 UI(700)를 표시할 수 있다.
일 실시 예로, 제3 어플리케이션이 전자 장치(100)와 연결된 '나의 핸드폰', '거실 TV' 및 '나의 냉장고'에 설치되어 있는 경우, UI(700)에는 '나의 핸드폰'에 대응되는 제1 아이콘(710), '거실 TV'에 대응되는 제2 아이콘(720) 및 '나의 냉장고'에 대응되는 제3 아이콘(730)을 포함할 수 있다. 그리고, 아이콘 중 하나가 선택되면, 전자 장치(100)는 선택된 아이콘에 대응되는 외부 장치에서 제3 어플리케이션을 실행하도록 제어할 수 있다. 구체적으로, UI(700)에 표시된 아이콘 중 제2 아이콘(720)이 선택되면, 전자 장치(100)는 “거실 TV”에 대응되는 외부 장치에서 제3 어플리케이션이 실행되도록 제어할 수 있다.
도 8a는 본 개시의 일 실시 예에 따른, 전자 장치에서 설치된 어플리케이션을 외부 장치에서 실행시키기 위한 방법을 설명하기 위한 블록도이며, 도 8b는 본 개시의 일 실시 예에 따른, 전자 장치에서 설치된 어플리케이션을 외부 장치에서 실행하는 실시 예를 설명하기 위한 도면이다.
본 개시에 따른 일 실시 예로, 전자 장치(100)는 전자 장치(100)에 설치된 어플리케이션을 외부 장치(300)에서 실행되도록 제어할 수 있다. 즉, 전자 장치(100)는 전자 장치(100)와 연결 가능한 외부 장치(300)를 탐색하고, 탐색된 외부 장치(300)와 연결을 수행할 수 있다. 일 실시 예로, UDP 패킷을 네트워크 내에 각 외부 장치 IP 별 특정 포트로 발신하고, UDP 패킷에 응답하는 정보를 전자 장치(100)로 수신하는 외부 장치(300)를 전자 장치(100)와 연결 가능한 외부 장치(300)로 식별할 수 있다.
그리고, 전자 장치(100)는 연결된 외부 장치(300)로 전자 장치(100)에 설치된 어플리케이션에 대한 정보를 전송하고, 외부 장치(300)는 전자 장치(100)에 설치된 어플리케이션에 대한 정보를 통해, 외부 장치(300)에서 실행 가능한 적어도 하나의 어플리케이션을 식별할 수 있다. 일 실시 예로, 설치된 어플리케이션에 대한 정보는 어플리케이션 Manifest 정보 및 전자 장치에 설치된 어플리케이션에 대한 목록에 대한 정보를 포함할 수 있다. 상술한 설명에서는, 외부 장치(300)에서 실행 가능한 적어도 하나의 어플리케이션을 외부 장치(300)에서 식별하는 것으로 상술하였지만, 이에 한정되지 않고, 전자 장치(100)가 외부 장치(300)에서 실행 가능한 적어도 하나의 어플리케이션을 식별할 수 있다.
그리고, 전자 장치(100)는 식별된 적어도 하나의 어플리케이션에 각각 대응되는 아이콘을 전자 장치(100)의 디스플레이 상에 표시할 수 있다. 그리고, 적어도 하나의 아이콘 중 하나가 선택되면, 전자 장치(100)는 외부 장치(300)와 통신을 수행하여 선택된 아이콘에 대응되는 어플리케이션을 외부 장치(300)에서 실행되도록 제어할 수 있다.
도 8b는 본 개시에 따른 전자 장치(100)가 스마트 폰으로 구현되며, 외부 장치(300)가 공기 정화 장치로 구현되는 경우를 나타내고 있다. 즉, 본 개시에 따른 일 실시 예로, 전자 장치(100)는 전자 장치(100)에 설치된 공기 정화 장치 제어 어플리케이션을 공기 정화 장치인 외부 장치(300)에서 실행되도록 제어할 수 있다. 즉, 전자 장치(100)는 전자 장치(100)에 설치된 공기 정화 장치 제어 어플리케이션을 외부 장치(300)에서 실행되도록 제어하여, 외부 장치(300)를 제어할 수 있다. 그리고, 공기 정화 장치 제어 어플리케이션이 전자 장치(100)에 설치되어 있음으로 인해, 전자 장치(100)는 공기 정화 장치인 외부 장치(300)가 설치된 댁내의 환경 정보를 쉽게 관리할 수 있다.
또한, 상술한 바와 같은 실시 예를 통해, 전자 장치(100)는 저장 공간이 부족한 외부 장치(300)에서도 전자 장치(100)에 설치된 어플리케이션이 실행되도록 제어할 수 있다.
도 9는 본 개시의 일 실시 예에 따른, 전자 장치에서 설치된 어플리케이션을 외부 장치에서 실행시키기 위한 방법을 설명하기 위한 시퀀스도이다.
전자 장치(100)는 외부 장치(300)와 연결이 수행되고(S905), 외부 장치(300)는 전자 장치(100)와 연결이 수행된 경우(S910), 전자 장치(100)에서 사용자에 의해 전자 장치(100)에 설치된 어플리케이션에 대응되는 아이콘이 선택될 수 있다(S915). 즉, 전자 장치(100)에서 전자 장치(100)에 설치된 어플리케이션 중 외부 장치(300)에서 실행가능한 적어도 하나의 어플리케이션에 대응되는 적어도 하나의 아이콘이 표시되고, 사용자에 의해 적어도 하나의 아이콘 중 하나의 아이콘이 선택될 수 있다.
아이콘이 선택되면, 전자 장치(100)는 선택된 아이콘에 대응되는 어플리케이션을 실행시킬 장치가 외부 장치(300)인 것으로 식별할 수 있다(S920). 일 실시 예로, 아이콘이 선택되면, 도 7과 같이 전자 장치(100)는 디스플레이(130) 상에 선택된 아이콘에 대응되는 어플리케이션을 실행시킬 외부 장치를 선택할 UI를 표시하고, UI를 통해, 선택된 아이콘에 대응되는 어플리케이션을 실행시킬 장치를 외부 장치(300)인 것으로 식별할 수 있다.
선택된 아이콘에 대응되는 어플리케이션을 실행시킬 장치가 외부 장치(300)인 것으로 식별되면, 전자 장치(100)는 외부 장치(300)로 선택된 아이콘에 대응되는 어플리케이션의 실행 요청을 전송할 수 있다(S925).
외부 장치(300)가 어플리케이션의 실행 요청을 전달 받으면, 외부 장치(300)는 선택된 아이콘에 대응되는 어플리케이션을 실행하고(S930), 어플리케이션 실행 정보를 전자 장치(100)에 전송할 수 있다(S935). 즉, 전자 장치(100)는 외부 장치(300)에서 수신한 어플리케이션 실행 정보를 통해 외부 장치(300)에서 해당 어플리케이션이 실행되도록 제어할 수 있다.
도 10a은 본 개시의 일 실시 예에 따른, 전자 장치를 통해 제2 외부 장치에 설치된 어플리케이션이 제1 외부 장치에서 실행되는 방법을 설명하기 위한 블록도이다.
본 개시에 따른 일 실시 예로, 전자 장치(100)는 제2 외부 장치(300-2)에 설치된 어플리케이션을 제1 외부 장치(300-1)에서 실행되도록 제1 외부 장치(300-1) 및 제2 외부 장치(300-2)를 제어할 수 있다.
즉, 전자 장치(100)는 제1 외부 장치(300-1) 및 제2 외부 장치(300-2)와 연결이 수행되면, 제2 외부 장치(300-2)에 설치된 어플리케이션 중 제1 외부 장치(300-1)에서 실행 가능한 적어도 하나의 어플리케이션을 식별할 수 있다. 일 실시 예로, 전자 장치(100)는 제2 외부 장치(300-2)로부터 제2 외부 장치(300-2)에 설치된 어플리케이션에 대한 정보를 획득하고, 제1 외부 장치(300-1)로부터 제1 외부 장치(300-1)에 대한 정보를 획득할 수 있다. 일 실시 예로, 제2 외부 장치(300-2)에 설치된 어플리케이션에 대한 정보는 어플리케이션 Manifest 정보 및 상기 외부 장치에 설치된 어플리케이션에 대한 목록에 대한 정보를 포함할 수 있다. 그리고, 제1 외부 장치(300-1)에 대한 정보는 제1 외부 장치(300-1)에서 실행시킬 수 있는 어플리케이션에 대한 정보를 포함할 수 있다.
그리고, 전자 장치(100)는 제2 외부 장치(300-2)에 설치된 어플리케이션에 대한 정보 및 제1 외부 장치(300-1)에 대한 정보를 바탕으로, 제2 외부 장치(300-2)에 설치된 어플리케이션 중 제1 외부 장치(300-1)에서 실행 가능한 적어도 하나의 어플리케이션을 식별할 수 있다.
다만, 이에 한정되지 않고, 제1 외부 장치(300-1)가 제2 외부 장치(300-2)에 설치된 어플리케이션 중 제1 외부 장치(300-1)에서 실행 가능한 적어도 하나의 어플리케이션을 식별할 수도 있다. 구체적으로, 전자 장치(100)는 전자 장치와 연결 가능한 제1 외부 장치(300-1)를 탐색하고, 탐색된 제1 외부 장치(300-1)로부터 제1 외부 장치(300-1)에서 실행가능한 제2 외부 장치(300-2)에 설치된 어플리케이션에 대한 정보를 수신할 수 있다.
그리고, 전자 장치(100)는 수신된 어플리케이션에 대한 정보를 바탕으로, 제1 외부 장치(300-1)에서 실행 가능한 제2 외부 장치(300-2)에 설치된 어플리케이션 각각에 대응되는 아이콘을 디스플레이(130) 상에 표시할 수 있다.
그리고, 제2 외부 장치(300-2)에 설치된 어플리케이션에 대응되는 아이콘이 선택되면, 전자 장치(100)는 선택된 아이콘에 대응되는 어플리케이션을 제1 외부 장치(300-1)에서 실행되도록 어플리케이션 실행 요청을 제1 외부 장치(300-1)로 전송할 수 있다. 제1 외부 장치(300-1)에서 제2 외부 장치(300-2)에 설치된 어플리케이션을 실행시키는 방법에 대해서는 도 11을 통해 후술하도록 한다.
도 10b는 본 개시의 일 실시 예에 따른, 전자 장치를 통해 제2 외부 장치에 설치된 어플리케이션이 제1 외부 장치에서 실행되는 실시 예를 설명하기 위한 도면이다.
도 10b를 참조하면, 본 개시에 따른, 전자 장치(100)가 스마트폰으로 구현되며, 제1 외부 장치(300-1)는 TV, 제2 외부 장치(300-2)는 인공지능 스피커로 구현되는 경우를 나타내고 있다. 즉, 일 실시 예로, 전자 장치(100)는 제2 외부 장치(300-2)에 설치된 인공지능 음성인식 어플리케이션을 제1 외부 장치(300-1)에서 실행되도록 제1 외부 장치(300-1)를 제어할 수 있다. 그리고, 제1 외부 장치(300-1)에서도 별도의 음성 인식 어플리케이션에 대한 설치 없이, 제1 외부 장치(300-1)에서 제2 외부 장치(300-2)에 설치된 음성 인식 어플리케이션이 실행되어, 제1 외부 장치(300-1)를 통해서도 음성 인식 서비스가 제공될 수 있다.
또한, 일 실시 예로, 제1 외부 장치(300-1)의 디스플레이를 통해 제2 외부 장치(300-2)에 설치된 음성 인식 어플리케이션에 대한 관리를 수행할 수 있다. 즉, 전자 장치(100)는 제1 외부 장치(300-1)에서 제2 외부 장치(300-2)에 설치된 어플리케이션이 실행되도록 제어하여, 제1 외부 장치(300-1)에서 제2 외부 장치(300-2)에 설치된 음성 인식 어플리케이션에 대한 설정을 변경시킬 수 있다. 또한, 제1 외부 장치(300-1)에서 제2 외부 장치(300-2)에 설치된 음성 인식 어플리케이션에 대한 업데이트가 수행될 수 있다.
상술한 바와 같은 실시 예를 통해, 전자 장치(100)는 디스플레이를 포함하지 않은 제2 외부 장치(300-2)에 설치된 어플리케이션을 디스플레이를 포함하는 제1 외부 장치(300-1)에서 실행되도록 제어하여, 제1 외부 장치(300-1)에서 제2 외부 장치(300-2)에 설치된 어플리케이션에 대한 관리가 수행 될 수 있다.
도 11은 본 개시의 일 실시 예에 따른, 전자 장치를 통해 제2 외부 장치에 설치된 어플리케이션이 제1 외부 장치에서 실행되는 방법을 설명하기 위한 시퀀스도이다.
먼저, 도 9에서 설명한 바와 같이, 전자 장치(100), 제1 외부 장치(300-1) 및 제2 외부 장치(300-2)간 연결이 수행될 수 있다. 제1 외부 장치(300-1)와 제2 외부 장치(300-2)간 연결이 수행되면, 제1 외부 장치(300-1)는 제2 외부 장치(300-2)로 제2 외부 장치(300-2)에 설치된 어플리케이션에 대한 정보를 요청할 수 있다(S1105). 그리고, 제2 외부 장치(300-2)는 제1 외부 장치(300-1)로 제2 외부 장치(300-2)에 설치된 어플리케이션에 대한 정보를 전송할 수 있다(S1110). 그리고, 제1 외부 장치(300-1)는 전자 장치(100)로 제1 외부 장치(300-1)에서 실행 가능한 제2 외부 장치(300-2)에 설치된 어플리케이션에 대한 정보를 전송할 수 있다(S1115).
그리고, 전자 장치(100)는 수신한 어플리케이션에 대한 정보를 바탕으로, 제1 외부 장치(300-1)에서 실행 가능한 제2 외부 장치(300-2)에 설치된 적어도 하나의 어플리케이션에 각각 대응되는 아이콘이 전자 장치(100)의 디스플레이상에 표시될 수 있다.
그리고, 전자 장치(100)에서 사용자에 의해 제2 외부 장치(300-2)에 설치된 어플리케이션에 대응되는 아이콘이 선택되면(S1120), 전자 장치(100)는 선택된 아이콘에 대응되는 어플리케이션을 실행시킬 장치가 제1 외부 장치(300-1)인 것으로 식별할 수 있다(S1125). 일 실시 예로, 제2 외부 장치(300-2)에 설치된 어플리케이션에 대응되는 아이콘이 선택되면, 전자 장치(100)는 디스플레이(130) 상에 선택된 아이콘에 대응되는 어플리케이션을 실행시킬 외부 장치를 선택하기 위한 UI를 표시할 수 있다. 그리고, 전자 장치(100)는 UI를 통해, 어플리케이션을 실행시킬 외부 장치가 제1 외부 장치(300-1)인 것으로 식별할 수 있다.
선택된 아이콘에 대응되는 어플리케이션을 실행시킬 장치가 제1 외부 장치(300-1)인 것으로 식별되면, 전자 장치(100)는 제1 외부 장치(300-1)로 해당 어플리케이션에 대한 실행 요청을 전송할 수 있다(S1130). 그리고, 제1 외부 장치(300-1)는 제2 외부 장치(300-2)로 선택된 아이콘에 대응되는 어플리케이션의 실행에 필요한 정보를 요청할 수 있다(S1135). 그리고, 제2 외부 장치(300-2)는 요청받은 실행에 필요한 정보를 제1 외부 장치(300-1)에 전송하고(S1140), 제1 외부 장치(300-1)는 수신한 정보를 통해 제2 외부 장치(300-2)에 설치된 어플리케이션을 실행할 수 있다(S1145).
그리고, 제1 외부 장치(300-1)는 S1145 단계에서 실행된 어플리케이션에 대응되는 어플리케이션 실행 정보를 전자 장치(100)로 전송할 수 있다(S1150). 즉, 제1 외부 장치(300-1)에서 선택된 아이콘에 대응되는 어플리케이션이 실행되면, 제1 외부 장치(300-1)는 실행된 어플리케이션에 대응되는 어플리케이션 실행 정보를 전자 장치(100)로 전송할 수 있다. 즉, 전자 장치(100)는 제1 외부 장치(300-1)에서 수신한 어플리케이션 실행 정보를 통해 제1 외부 장치(300-1)에서 제2 외부 장치(300-2)에 설치된 어플리케이션이 실행되도록 제어할 수 있다.
도 12는 본 개시의 일 실시 예에 따른, 전자 장치의 제어 방법을 설명하기 위한 흐름도이다.
먼저, 전자 장치(100)는 전자 장치(100)와 연결 가능한 외부 장치(300)를 탐색할 수 있다(S1210). 본 개시에 따른 외부 장치는 어플리케이션을 설치하여 어플리케이션을 실행 가능한 장치일 수 있다. 구체적으로, 전자 장치(100)는 전자 장치(100)와 같은 네트워크 환경 내에 있는 외부 장치를 탐색할 수 있다. 일 실시 예로, 같은 네트워크 환경 내에 있는 외부 장치는 전자 장치(100)와 같은 네트워크 연결 환경(LAN, WAN, BT 등)내에 존재하는 외부 장치일 수 있다. 다른 실시 예로, 같은 네트워크 환경 내에 있는 외부 장치는 전자 장치(100)와 같은 Wi-Fi 환경 내에 있는 외부 장치일 수 있다.
그리고, 전자 장치(100)는 탐색된 외부 장치(300)로 외부 장치(300)에 설치된 어플리케이션에 대한 정보를 요청할 수 있다(S1220). 그리고, 전자 장치(100)는 외부 장치(300)로부터 설치된 어플리케이션에 대한 정보를 수신할 수 있다(S1230). 일 실시 예로, 외부 장치에 설치된 어플리케이션에 대한 정보에는 어플리케이션 Manifest 정보 및 외부 장치에 설치된 어플리케이션 목록이 포함될 수 있다. 어플리케이션 Manifest 정보는 어플리케이션의 실행에 필요한 정보일 수 있다. 일 실시 예로, 어플리케이션 Manifest 정보는 어플리케이션의 실행에 필요한 실행 코드 및 데이터들을 포함할 수 있다. 일 실시예로, 어플리케이션 Manifest 정보에는 어플리케이션의 버전에 대한 정보, 어플리케이션 실행 시 필요한 권한에 대한 정보, 어플리케이션 패키지 ID에 대한 정보, 플랫폼 API 버전에 대한 정보, 어플리케이션 실행 파일에 대한 정보, 아이콘 파일에 대한 정보 및 개발자 정보 중 적어도 하나를 포함할 수 있다. 다만, 이에 한정되지 않고, 어플리케이션 Manifest 정보는 어플리케이션 실행에 필요한 다른 정보들을 더 포함할 수 있다.
전자 장치(100)가 외부 장치(300)로부터 외부 장치(300)에 설치된 어플리케이션에 대한 정보를 수신하면, 전자 장치(100)는 외부 장치(300)에 설치된 어플리케이션에 대한 정보에 포함된 복수의 어플리케이션 중 전자 장치(100)에서 실행 가능한 적어도 하나의 어플리케이션을 식별할 수 있다(S1240). 일 실시 예로, 전자 장치(100)는 외부 장치(300)에 설치된 어플리케이션에 대한 어플리케이션 Manifest 정보에 포함된 복수의 어플리케이션 각각이 실행 될 수 있는 플랫폼 최소 버전에 대한 정보, ISA(ARM, x86 등) 또는 VM 버전 및 종류에 대한 정보, 외부 장치(300)의 종류 및 모델에 대한 정보, 외부 장치에 설치된 복수의 어플리케이션 각각에 대한 지원 국가 정보 등을 이용하여 외부 장치에 설치된 어플리케이션 목록에 포함된 어플리케이션 중 전자 장치(100)에서 실행 가능한 적어도 하나의 어플리케이션을 식별할 수 있다.
그리고, 전자 장치(100)는 설치된 어플리케이션에 대한 정보를 바탕으로, 식별된 적어도 하나의 어플리케이션에 대응되는 적어도 하나의 아이콘을 디스플레이 상에 표시할 수 있다(S1250). 일 실시 예로, 전자 장치(100)는 외부 장치(300)에 설치된 어플리케이션 중 전자 장치(100)에서 실행 가능한 어플리케이션에 대응되는 아이콘을 디스플레이 상의 홈스크린, 앱스 목록 및 위젯 목록 등에 표시할 수 있다.
디스플레이 상에 표시된 적어도 하나의 아이콘 중 하나가 선택되면(S1260), 전자 장치(100)는 외부 장치(300)와 통신을 수행하여 선택된 아이콘에 대응되는 어플리케이션의 실행에 필요한 정보(실행 코드 및 데이터 등)를 요청할 수 있다(S1270).
그리고, 전자 장치(100)는 실행에 필요한 정보(실행 코드 및 데이터 등)를 외부 장치(300)로부터 획득하여 외부 장치(300)에 설치된 어플리케이션을 실행할 수 있다(S1280).
상술한 바와 같이 본 문서의 다양한 실시 예가 첨부된 도면을 참조하여 기재되었다. 그러나, 상술한 기재는 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 문서의 실시 예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 문서에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
본 문서에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상"등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.
본 문서에서 사용된 "제1," "제2," "첫째," 또는 "둘째," 등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 예를 들면, 제1 사용자 기기와 제2 사용자 기기는, 순서 또는 중요도와 무관하게, 서로 다른 사용자 기기를 나타낼 수 있다. 예를 들면, 본 문서에 기재된 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 바꾸어 명명될 수 있다.
본 문서에서 사용된 "모듈", "유닛", "부(part)" 등과 같은 용어는 적어도 하나의 기능이나 동작을 수행하는 구성요소를 지칭하기 위한 용어이며, 이러한 구성요소는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈", "유닛", "부(part)" 등은 각각이 개별적인 특정한 하드웨어로 구현될 필요가 있는 경우를 제외하고는, 적어도 하나의 모듈이나 칩으로 일체화되어 적어도 하나의 프로세서로 구현될 수 있다.
본 문서에서 사용된 용어들은 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 다른 실시 예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 문서에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 문서에 사용된 용어들 중 일반적인 사전에 정의된 용어들은, 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 문서에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 문서에서 정의된 용어일지라도 본 문서의 실시 예들을 배제하도록 해석될 수 없다.
본 개시의 다양한 실시 예들에 따른 전자 장치는, 예를 들면, 스마트폰(smartphone), 태블릿 PC(tablet personal computer), 이동 전화기(mobile phone), 영상 전화기, 인공지능 스피커(AI speaker), 전자책 리더기(e-book reader), 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), 넷북 컴퓨터(netbook computer), 워크스테이션(workstation), 서버, PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 모바일 의료기기, 카메라(camera), 또는 웨어러블 장치(wearable device) 중 적어도 하나를 포함할 수 있다.
어떤 실시 예에 따르면, 전자 장치는 가구(furniture) 또는 건물/구조물의 일부, 전자 보드(electronic board), 전자 사인 수신 장치(electronic signature receiving device), 프로젝터(projector), 또는 각종 계측 기기(예: 수도, 전기, 가스, 또는 전파 계측 기기 등) 중 적어도 하나를 포함할 수 있다. 다양한 실시 예에서, 전자 장치는 전술한 다양한 장치들 중 하나 또는 그 이상의 조합일 수 있다. 어떤 실시 예에 따른 전자 장치는 플렉서블 전자 장치일 수 있다. 또한, 본 문서의 실시 예에 따른 전자 장치는 전술한 기기들 이외에도 액세스 포인트(AP)나 게이트 웨이(Gateway) 또는 라우터(Router), 스위치(Switch) 등의 네트워크 장비와 연결을 통하여 외부 인터넷과 연결이 되는 전자장치를 포함할 수 있고, 기술 발전에 따른 새로운 전자 장치를 포함할 수 있다.
본 문서에서 도면 번호 "100"으로 나타내어 지는 전자 장치(100)는 타 전자 장치에 대한 등록, 제어, 관리 등을 수행할 수 있는 장치이다. 경우에 따라, 도면 번호 전자 장치(100)는 제어 장치로 명명될 수도 있고, 그 밖의 다른 전자 장치는 피 제어 장치라고 명명될 수도 있다.
이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합으로 구현될 수 있다. 하드웨어적인 구현에 의하면, 본 개시에서 설명되는 실시 예들은 ASICs(Application Specific Integrated Circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서(processors), 제어기(controllers), 마이크로 컨트롤러(micro-controllers), 마이크로 프로세서(microprocessors), 기타 기능 수행을 위한 전기적인 유닛(unit) 중 적어도 하나를 이용하여 구현될 수 있다. 특히, 이상에서 설명된 다양한 실시 예들은 전자 장치(100)의 프로세서(140)에 의해 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 문서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 상기 소프트웨어 모듈들 각각은 본 문서에서 설명되는 하나 이상의 기능 및 작동을 수행할 수 있다.
본 개시의 다양한 실시 예들은 기기(machine)(예: 컴퓨터)로 읽을 수 있는 저장 매체(machine-readable storage media)에 저장될 수 있는 명령어를 포함하는 소프트웨어로 구현될 수 있다. 기기(machine)는, 저장 매체로부터 저장된 명령어를 호출하고, 호출된 명령어에 따라 동작이 가능한 장치로서, 개시된 실시 예들의 전자 장치(100)를 포함할 수 있다.
이러한 명령어가 프로세서에 의해 실행될 경우, 프로세서가 직접, 또는 상기 프로세서의 제어 하에 다른 구성요소들을 이용하여 명령어에 해당하는 기능을 수행할 수 있다. 명령어는 컴파일러 또는 인터프리터에 의해 생성 또는 실행되는 코드를 포함할 수 있다. 예컨대, 저장매체에 저장된 명령어가 프로세서에 의해 실행됨으로써, 상술한 전자 장치의 제어방법이 실행될 수 있다. 일 예로, 저장매체에 저장된 명령어가 기기(또는 전자 장치)의 프로세서에 의해 실행됨으로써, 전자 장치와 연결 가능한 외부 장치를 탐색하는 단계; 탐색된 외부 장치로 외부 장치에 설치된 어플리케이션에 대한 정보를 요청하는 단계; 외부 장치로부터 설치된 어플리케이션에 대한 정보를 수신하는 단계; 설치된 어플리케이션에 대한 정보에 포함된 복수의 어플리케이션 중 전자 장치에서 실행 가능한 적어도 하나의 어플리케이션을 식별하는 단계; 설치된 어플리케이션에 대한 정보를 바탕으로 식별된 적어도 하나의 어플리케이션에 대응되는 적어도 하나의 아이콘을 디스플레이 상에 표시하는 단계; 및 적어도 하나의 아이콘 중 하나가 선택되면, 외부 장치와 통신을 수행하여 선택된 아이콘에 대응되는 어플리케이션의 실행에 필요한 정보를 요청하여 외부 장치에 설치된 어플리케이션을 실행하는 단계;가 수행될 수 있다.
기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장됨을 구분하지 않는다.
일 실시 예에 따르면, 본 문서에 개시된 다양한 실시 예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory (CD-ROM))의 형태로, 또는 어플리케이션 스토어(예: 플레이 스토어™, 앱스토어™)를 통해 온라인으로 배포될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
다양한 실시 예들에 따른 구성 요소(예: 모듈 또는 프로그램) 각각은 단수 또는 복수의 개체로 구성될 수 있으며, 전술한 해당 서브 구성 요소들 중 일부 서브 구성 요소가 생략되거나, 또는 다른 서브 구성 요소가 다양한 실시 예에 더 포함될 수 있다. 대체적으로 또는 추가적으로, 일부 구성 요소들(예: 모듈 또는 프로그램)은 하나의 개체로 통합되어, 통합되기 이전의 각각의 해당 구성 요소에 의해 수행되는 기능을 동일 또는 유사하게 수행할 수 있다. 다양한 실시 예들에 따른, 모듈, 프로그램 또는 다른 구성 요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱하게 실행되거나, 적어도 일부 동작이 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안될 것이다.
110: 메모리 120: 통신 인터페이스
130: 디스플레이 140: 프로세서

Claims (20)

  1. 전자 장치의 제어 방법에 있어서,
    전자 장치와 연결 가능한 외부 장치를 탐색하는 단계;
    상기 탐색된 외부 장치로 상기 외부 장치에 설치된 어플리케이션에 대한 정보를 요청하는 단계;
    상기 외부 장치로부터 상기 설치된 어플리케이션에 대한 정보를 수신하는 단계;
    상기 설치된 어플리케이션에 대한 정보에 포함된 복수의 어플리케이션 중 상기 전자 장치에서 실행 가능한 적어도 하나의 어플리케이션을 식별하는 단계;
    상기 설치된 어플리케이션에 대한 정보를 바탕으로 상기 식별된 적어도 하나의 어플리케이션에 대응되는 적어도 하나의 아이콘을 디스플레이 상에 표시하는 단계; 및
    상기 적어도 하나의 아이콘 중 하나가 선택되면, 상기 외부 장치와 통신을 수행하여 상기 선택된 아이콘에 대응되는 어플리케이션의 실행에 필요한 정보를 요청하여 상기 외부 장치에 설치된 어플리케이션을 실행하는 단계;를 포함하는 제어 방법.
  2. 제1항에 있어서,
    상기 탐색하는 단계는,
    UDP 패킷을 네트워크 내에 각 외부 장치 IP 별 특정 포트로 발신하는 단계; 및
    상기 UDP 패킷에 응답하는 정보를 상기 전자 장치로 수신하는 외부 장치를 상기 전자 장치와 연결 가능한 외부 장치로 식별하는 단계;를 포함하는 제어 방법.
  3. 제1항에 있어서,
    상기 설치된 어플리케이션에 대한 정보는,
    어플리케이션 Manifest 정보 및 상기 외부 장치에 설치된 어플리케이션에 대한 목록에 대한 정보를 포함하는 제어 방법.
  4. 제1항에 있어서,
    상기 식별된 적어도 하나의 어플리케이션에 대응되는 적어도 하나의 아이콘에는 상기 전자 장치에 설치된 어플리케이션에 대응되는 아이콘과 구별하기 위한 식별자를 더 포함하는 제어 방법.
  5. 제1항에 있어서,
    상기 표시하는 단계는,
    상기 식별된 적어도 하나의 어플리케이션에 대한 목록을 표시하는 단계; 및
    상기 목록에 표시된 어플리케이션 중 적어도 하나가 선택되면, 상기 선택된 적어도 하나의 어플리케이션에 대응되는 아이콘을 디스플레이 상에 표시하는 단계;를 더 포함하는 제어 방법.
  6. 제1항에 있어서,
    상기 실행하는 단계는,
    상기 선택된 아이콘에 대응되는 실행파일을 수신하여 저장하는 단계; 및
    상기 선택된 아이콘에 대응되는 어플리케이션에 대한 Manifest 정보에 포함된 패키지 ID에 대한 정보 및 패키지 매니저 정보를 이용하여 상기 외부 장치 내에서 상기 어플리케이션에 대한 파일이 저장된 위치를 검색하는 단계;를 더 포함하는 제어 방법.
  7. 제6항에 있어서,
    상기 어플리케이션에 대한 파일이 저장된 위치가 상기 전자 장치 및 상기 외부 장치에서 서로 상이한 경우, 상기 어플리케이션에 대한 파일의 저장 위치를 식별하기 위한 폴더 매핑 정보를 생성하는 단계; 및
    상기 폴더 매핑 정보를 이용하여, 상기 선택된 아이콘에 대응되는 어플리케이션을 실행하는 단계를 포함하는 제어 방법.
  8. 제1항에 있어서,
    상기 실행하는 단계는,
    상기 선택된 아이콘에 대응되는 어플리케이션이 상기 전자 장치에서 실행되기에 필요한 파일이 상기 전자 장치에 저장되어 있는지 여부를 식별하는 단계;
    상기 파일이 상기 전자 장치 내에 저장되어 있지 않은 경우, 상기 외부 장치 내에 저장된 상기 파일에 대한 파일 매핑 정보를 생성하는 단계; 및
    상기 적어도 하나의 아이콘 중 하나가 선택되면, 상기 파일 매핑 정보를 통해 상기 외부 장치로 상기 파일에 대한 읽기 및 쓰기 기능을 요청하여, 상기 선택된 아이콘에 대응되는 어플리케이션을 실행하는 단계를 포함하는 제어 방법.
  9. 제1항에 있어서,
    상기 실행하는 단계는,
    상기 선택된 아이콘에 대응되는 어플리케이션의 설치 정보를 상기 전자 장치의 패키지 매니저의 포맷에 맞춰 재구성하는 단계를 더 포함하는 것을 특징으로 하는 제어 방법.
  10. 전자 장치에 있어서,
    디스플레이;
    통신 인터페이스;
    적어도 하나의 인스트럭션을 포함하는 메모리; 및
    상기 디스플레이. 통신 인터페이스 및 메모리와 연결되며, 상기 전자 장치를 제어하는 프로세서;를 포함하고,
    상기 프로세서는 상기 적어도 하나의 인스트럭션을 실행함으로써,
    전자 장치와 연결 가능한 외부 장치를 탐색하고,
    상기 탐색된 외부 장치로, 상기 통신 인터페이스를 통해, 상기 외부 장치에 설치된 어플리케이션에 대한 정보를 요청하고,
    상기 외부 장치로부터, 상기 통신 인터페이스를 통해, 상기 설치된 어플리케이션에 대한 정보를 수신하고,
    상기 설치된 어플리케이션에 대한 정보에 포함된 복수의 어플리케이션 중 상기 전자 장치에서 실행 가능한 적어도 하나의 어플리케이션을 식별하고,
    상기 설치된 어플리케이션에 대한 정보를 바탕으로 상기 식별된 적어도 하나의 어플리케이션에 대응되는 적어도 하나의 아이콘을 상기 디스플레이 상에 표시하고,
    상기 적어도 하나의 아이콘 중 하나가 선택되면, 상기 외부 장치와 통신을 수행하여 상기 선택된 아이콘에 대응되는 어플리케이션의 실행에 필요한 정보를 요청하여 상기 외부 장치에 설치된 어플리케이션을 실행하는 전자 장치.
  11. 제10항에 있어서,
    상기 프로세서는,
    UDP 패킷을 네트워크 내에 각 외부 장치 IP 별 특정 포트로 발신하고,
    상기 UDP 패킷에 응답하는 정보를 상기 전자 장치로 수신하는 외부 장치를 상기 전자 장치와 연결 가능한 외부 장치로 식별하는 전자 장치.
  12. 제10항에 있어서,
    상기 설치된 어플리케이션에 대한 정보는,
    어플리케이션 Manifest 정보 및 상기 외부 장치에 설치된 어플리케이션에 대한 목록에 대한 정보를 포함하는 전자 장치.
  13. 제10항에 있어서,
    상기 식별된 적어도 하나의 어플리케이션에 대응되는 적어도 하나의 아이콘에는 상기 전자 장치에 설치된 어플리케이션에 대응되는 아이콘과 구별하기 위한 식별자를 더 포함하는 전자 장치.
  14. 제10항에 있어서,
    상기 프로세서는,
    상기 식별된 적어도 하나의 어플리케이션에 대한 목록을 표시하고,
    상기 목록에 표시된 어플리케이션 중 적어도 하나가 선택되면, 상기 선택된 적어도 하나의 어플리케이션에 대응되는 아이콘을 디스플레이 상에 표시하는 전자 장치.
  15. 제10항에 있어서,
    상기 프로세서는,
    상기 선택된 아이콘에 대응되는 실행파일을 수신하여 상기 메모리에 저장하고,
    상기 선택된 아이콘에 대응되는 어플리케이션에 대한 Manifest 정보에 포함된 패키지 ID에 대한 정보 및 패키지 매니저 정보를 이용하여 상기 외부 장치 내에서 상기 어플리케이션에 대한 파일이 저장된 위치를 검색하는 전자 장치.
  16. 제15항에 있어서,
    상기 프로세서는,
    상기 어플리케이션에 대한 파일이 저장된 위치가 상기 전자 장치 및 상기 외부 장치에서 서로 상이한 경우, 상기 어플리케이션에 대한 파일의 저장 위치를 식별하기 위한 폴더 매핑 정보를 생성하고,
    상기 폴더 매핑 정보를 이용하여, 상기 선택된 아이콘에 대응되는 어플리케이션을 실행하는 전자 장치.
  17. 제10항에 있어서,
    상기 프로세서는,
    상기 선택된 아이콘에 대응되는 어플리케이션이 상기 전자 장치에서 실행되기에 필요한 파일이 상기 전자 장치에 저장되어 있는지 여부를 식별하고,
    상기 파일이 상기 전자 장치 내에 저장되어 있지 않은 경우, 상기 외부 장치 내에 저장된 상기 파일에 대한 파일 매핑 정보를 생성하고,
    상기 적어도 하나의 아이콘 중 하나가 선택되면, 상기 파일 매핑 정보를 통해 상기 외부 장치로 상기 파일에 대한 읽기 및 쓰기 기능을 요청하여, 상기 선택된 아이콘에 대응되는 어플리케이션을 실행하는 전자 장치.
  18. 제10항에 있어서,
    상기 프로세서는,
    상기 선택된 아이콘에 대응되는 어플리케이션의 설치 정보를 상기 전자 장치의 패키지 매니저의 포맷에 맞춰 재구성하는 것을 특징으로 하는 전자 장치.
  19. 전자 장치의 제어 방법에 있어서,
    전자 장치와 연결 가능한 제1 외부 장치를 탐색하는 단계;
    상기 제1 외부 장치로부터 상기 제1 외부 장치에서 실행 가능한 제2 외부 장치에 설치된 어플리케이션에 대한 정보를 수신하는 단계; 및
    상기 어플리케이션에 대한 정보를 바탕으로, 상기 제1 외부 장치에서 실행 가능한 제2 외부 장치에 설치된 어플리케이션에 대응되는 적어도 하나의 아이콘을 디스플레이 상에 표시하는 단계; 및 상기 적어도 하나의 아이콘 중 하나가 선택되면, 상기 제1 외부 장치로 상기 제1 외부 장치에서 상기 선택된 아이콘에 대응되는 어플리케이션이 실행되도록 어플리케이션 실행 요청을 전송하는 단계;를 포함하는 제어 방법.
  20. 제19항에 있어서,
    상기 제1 외부 장치에서 상기 선택된 아이콘에 대응되는 어플리케이션이 실행되면, 상기 제1 외부 장치로부터 상기 실행된 어플리케이션에 대응되는 어플리케이션 실행 정보를 수신하는 단계;를 더 포함하는 제어 방법.
KR1020200035733A 2020-03-24 2020-03-24 전자 장치 및 이의 제어 방법 KR20210119174A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020200035733A KR20210119174A (ko) 2020-03-24 2020-03-24 전자 장치 및 이의 제어 방법
US17/205,347 US11494050B2 (en) 2020-03-24 2021-03-18 Electronic device and method for controlling the electronic device
PCT/KR2021/003524 WO2021194195A1 (en) 2020-03-24 2021-03-22 Electronic device and method for controlling the electronic device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200035733A KR20210119174A (ko) 2020-03-24 2020-03-24 전자 장치 및 이의 제어 방법

Publications (1)

Publication Number Publication Date
KR20210119174A true KR20210119174A (ko) 2021-10-05

Family

ID=77857459

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200035733A KR20210119174A (ko) 2020-03-24 2020-03-24 전자 장치 및 이의 제어 방법

Country Status (3)

Country Link
US (1) US11494050B2 (ko)
KR (1) KR20210119174A (ko)
WO (1) WO2021194195A1 (ko)

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS4943488B1 (ko) 1971-04-30 1974-11-21
US8346847B2 (en) 2009-06-03 2013-01-01 Apple Inc. Installing applications based on a seed application from a separate device
JP4943488B2 (ja) 2009-11-05 2012-05-30 株式会社エヌ・ティ・ティ・データ 通信装置間で近距離無線通信を行ってアプリケーションを送受信する通信システム、通信方法及びプログラム
KR101973531B1 (ko) 2010-12-17 2019-09-02 삼성전자주식회사 복수의 클라이언트 간의 어플리케이션 자동 공유 방법 및 장치
KR20120100045A (ko) 2011-03-02 2012-09-12 삼성전자주식회사 사용자 단말 장치, 디스플레이 장치, 그 ui 제공 방법 및 제어 방법
US8775850B2 (en) 2011-06-28 2014-07-08 Amazon Technologies, Inc. Transferring state information between electronic devices
KR101271996B1 (ko) 2011-09-02 2013-06-05 엘지전자 주식회사 외부기기 리스트 제공방법 및 그를 이용한 영상 표시 기기
US8949179B2 (en) * 2012-04-23 2015-02-03 Google, Inc. Sharing and synchronizing electronically stored files
KR101978957B1 (ko) * 2012-05-09 2019-05-16 엘지전자 주식회사 디스플레이 장치 및 애플리케이션 실행 및 설치 방법
KR102107404B1 (ko) 2013-10-30 2020-05-07 삼성전자주식회사 어플리케이션을 공유하는 전자 장치 및 그 제어 방법
WO2015183014A1 (en) 2014-05-28 2015-12-03 Samsung Electronics Co., Ltd. Apparatus and method for controlling internet of things devices
KR102330255B1 (ko) 2014-05-28 2021-11-23 삼성전자주식회사 사물 인터넷 기기들을 제어하기 위한 제어 장치 및 방법
US11283866B2 (en) * 2014-07-07 2022-03-22 Citrix Systems, Inc. Providing remote access to applications through interface hooks
US9872174B2 (en) 2014-09-19 2018-01-16 Google Inc. Transferring application data between devices
US20160321055A1 (en) * 2015-04-28 2016-11-03 Microsoft Technology Licensing, Llc Mapping between local and remote for seamless build and design time experience
CN104850463B (zh) 2015-06-08 2019-11-15 三星电子(中国)研发中心 应用程序共享方法及装置
WO2016200018A1 (en) 2015-06-08 2016-12-15 Samsung Electronics Co., Ltd. Method and apparatus for sharing application

Also Published As

Publication number Publication date
WO2021194195A1 (en) 2021-09-30
US11494050B2 (en) 2022-11-08
US20210303132A1 (en) 2021-09-30

Similar Documents

Publication Publication Date Title
US10244039B2 (en) Shell integration on a mobile device for an application executing remotely on a server
US10509829B2 (en) Contextual search using natural language
US20200364085A1 (en) Task scheduling based on performance control conditions for multiple processing units
EP2955618B1 (en) Method and apparatus for sharing content of electronic device
US10261683B2 (en) Electronic apparatus and screen display method thereof
CN106133826B (zh) 用于语言模型自定义的灵活模式
US20130237152A1 (en) Methods and systems for hardware and software related to a near field communications task launcher
US20160150063A1 (en) Method of sharing contents and electronic device thereof
EP3021562A1 (en) Method for sharing screen and electronic device thereof
EP3121700B1 (en) Electronic device and method for managing objects in recommended folders
KR102277460B1 (ko) 화면을 공유하기 위한 방법 및 그 전자 장치
US20150220247A1 (en) Electronic device and method for providing information thereof
KR20160069445A (ko) 웹 어플리케이션 관리를 위한 사용자 장치 및 그 방법
US11030143B2 (en) System for sharing content between electronic devices, and content sharing method for electronic device
US20160007084A1 (en) Method and apparatus for sharing data of electronic device
US10466856B2 (en) Electronic device having two displays and a method for executing a different application on each display of the electronic device based on simultaneous inputs into a plurality of application icons
US11089127B2 (en) Electronic device and method for providing IP network service
EP2869604B1 (en) Method, apparatus and device for processing a mobile terminal resource
US11323880B2 (en) Method for wireless connection and electronic device therefor
US20170046279A1 (en) Content security processing method and electronic device supporting the same
KR20160059252A (ko) 인텐트 처리 방법 및 그 전자 장치
US11669867B2 (en) Mobile terminal and method of managing application thereof, and system for providing target advertisement using the same
US20160197780A1 (en) Method and apparatus for transmitting configuration information
KR20210119174A (ko) 전자 장치 및 이의 제어 방법
WO2022052758A1 (zh) 配网方法及设备