Electronic device, method, and non-transitory computer-readable recording medium for processing sharing of duplicate file

By exchanging hash values to detect duplicates, the system prevents unnecessary file transmissions, enhancing data management efficiency and reducing redundancy in file sharing between electronic devices.

WO2026071450A1PCT designated stage Publication Date: 2026-04-02SAMSUNG ELECTRONICS CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Filing Date
2025-08-01
Publication Date
2026-04-02

AI Technical Summary

Technical Problem

Existing file sharing technologies do not effectively prevent the transmission of duplicate files between electronic devices, leading to inefficiencies and potential data redundancy.

Method used

Implementing a system where electronic devices exchange hash values of files to be shared, allowing them to determine if a corresponding file already exists on the receiving device, thereby preventing duplicate transmissions.

Benefits of technology

This approach reduces data redundancy by ensuring that files are only transmitted if they are not already present on the recipient device, optimizing storage and bandwidth usage.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure KR2025011551_02042026_PF_FP_ABST
    Figure KR2025011551_02042026_PF_FP_ABST
Patent Text Reader

Abstract

An electronic device is disclosed. The electronic device may, on the basis of receiving an input for selecting a file to be transmitted to an external electronic device, transmit a hash value related to the file to the external electronic device through a communication circuit. The electronic device may receive, through the communication circuit, a response to the hash value from the external electronic device. The response may indicate that the hash value corresponding to the transmitted hash value exists in the external electronic device. The electronic device may, on the basis of receiving the response, stop transmission of the file being transmitted to the external electronic device.
Need to check novelty before this filing date? Find Prior Art

Description

Electronic device, method, and non-transient computer-readable recording medium for handling the sharing of duplicate files

[0001] The following descriptions relate to an electronic device, a method, and a non-transient computer-readable recording medium for handling the sharing of duplicate files.

[0002] An electronic device can communicate wirelessly in short range with an external electronic device located at a short range. For example, short-range wireless communication may include Bluetooth, BLE (Bluetooth Low Energy), or Wi-Fi Direct. For example, Wi-Fi Direct may refer to a technology that provides a direct connection between Wi-Fi-enabled electronic devices without an access point.

[0003] An electronic device can share files within the electronic device with an external electronic device through short-range wireless communication with the external electronic device.

[0004] An electronic device is disclosed. The electronic device may include at least one processor comprising a communication circuit and a processing circuit, and a memory comprising one or more storage media for storing instructions. When the instructions are executed individually or collectively by the at least one processor, the electronic device may cause the electronic device to transmit a hash value associated with said file to said external electronic device through the communication circuit based on receiving an input selecting a file to be transmitted to said external electronic device. When the instructions are executed individually or collectively by the at least one processor, the electronic device may cause the electronic device to receive a response regarding said hash value from said external electronic device through the communication circuit. said response may indicate that a hash value corresponding to said transmitted hash value exists in said external electronic device. When the instructions are executed individually or collectively by the at least one processor, the electronic device may cause the transmission of said file to said external electronic device to stop based on receiving said response.

[0005] An electronic device is disclosed. The electronic device may include at least one processor comprising a communication circuit and a processing circuit, and a memory comprising one or more storage media for storing instructions. When the instructions are executed individually or collectively by the at least one processor, the electronic device may cause the electronic device to receive a transmission request from the external electronic device to transmit a file to the electronic device via the communication circuit. When the instructions are executed individually or collectively by the at least one processor, the electronic device may cause the electronic device to receive a hash value associated with the file via the communication circuit after receiving the transmission request. When the instructions are executed individually or collectively by the at least one processor, the electronic device may cause the electronic device to determine whether a hash value corresponding to the received hash value exists among the hash values ​​within the electronic device. When the above instructions are executed individually or collectively by the at least one processor, the electronic device may cause the external electronic device to send a response, which causes the external electronic device to stop the transmission of the file being transmitted to the electronic device based on the existence of the hash value corresponding to the received hash value.

[0006] A method is disclosed. The method may be performed by an electronic device comprising a communication circuit. The method may include an operation of transmitting a hash value associated with said file to said external electronic device through said communication circuit, based on receiving an input selecting a file to be transmitted to an external electronic device. The method may include an operation of receiving a response regarding said hash value from said external electronic device through said communication circuit. said response may indicate that a hash value corresponding to said transmitted hash value exists in said external electronic device. The method may include an operation of stopping the transmission of said file being transmitted to said external electronic device based on receiving said response.

[0007] A method is disclosed. The method may be performed by an electronic device including a communication circuit. The method may include an operation of receiving, through the communication circuit, a transmission request from an external electronic device for an external electronic device to transmit a file to the electronic device. The method may include an operation of receiving a hash value associated with the file through the communication circuit after receiving the transmission request. The method may include an operation of determining whether a hash value corresponding to the received hash value exists among the hash values ​​within the electronic device. The method may include an operation of transmitting a response to the external electronic device, which causes the external electronic device to stop transmitting the file being transmitted to the electronic device based on the existence of the hash value corresponding to the received hash value.

[0008] A non-transitory computer-readable storage medium is disclosed. The non-transitory computer-readable storage medium may store a program comprising instructions. When the instructions are executed individually or collectively by at least one processor of an electronic device comprising a communication circuit, the electronic device may cause the electronic device to transmit a hash value associated with said file to said external electronic device through the communication circuit based on receiving an input selecting a file to be transmitted to said external electronic device. When the instructions are executed individually or collectively by the at least one processor, the electronic device may cause the electronic device to receive a response regarding said hash value from said external electronic device through the communication circuit. said response may indicate that a hash value corresponding to said transmitted hash value exists in said external electronic device. When the above instructions are executed individually or collectively by the at least one processor, the electronic device may cause the transmission of the file being transmitted to the external electronic device to stop based on receiving the response.

[0009] A non-transient computer-readable recording medium is disclosed. The non-transient computer-readable recording medium may store a program comprising instructions. When the instructions are executed individually or collectively by at least one processor of an electronic device comprising a communication circuit, the electronic device may cause the external electronic device to receive a transmission request from the external electronic device to transmit a file to the electronic device through the communication circuit. When the instructions are executed individually or collectively by the at least one processor, the electronic device may cause the electronic device to receive a hash value associated with the file through the communication circuit after receiving the transmission request. When the instructions are executed individually or collectively by the at least one processor, the electronic device may cause the electronic device to determine whether a hash value corresponding to the received hash value exists among the hash values ​​within the electronic device. When the above instructions are executed individually or collectively by the at least one processor, the electronic device may cause the external electronic device to send a response, which causes the external electronic device to stop the transmission of the file being transmitted to the electronic device based on the existence of the hash value corresponding to the received hash value.

[0010] FIG. 1 is a block diagram of an electronic device in a network environment according to various embodiments.

[0011] FIG. 2 is a block diagram of an electronic device and an external electronic device according to one embodiment.

[0012] FIG. 3 is a block diagram of an electronic device and an external electronic device according to one embodiment.

[0013] FIG. 4 is a flowchart illustrating operations for transmitting a file of an electronic device according to one embodiment.

[0014] FIG. 5 is a flowchart illustrating operations to prevent duplicate sharing of files of an electronic device according to one embodiment.

[0015] FIG. 6 is a flowchart illustrating operations to prevent duplicate sharing of files of an electronic device according to one embodiment.

[0016] FIG. 7 is a flowchart illustrating operations for an electronic device to determine the transmission order of files according to one embodiment.

[0017] FIG. 8 is a flowchart illustrating operations for receiving a file of an external electronic device according to one embodiment.

[0018] FIG. 9 is a flowchart illustrating operations to prevent duplicate sharing of files of an external electronic device according to one embodiment.

[0019] FIG. 10 is a flowchart illustrating operations to prevent duplicate sharing of files of an external electronic device according to one embodiment.

[0020] FIG. 11 is a flowchart illustrating operations between an electronic device and an external electronic device according to one embodiment.

[0021] FIG. 12a is a flowchart illustrating operations for deleting files between an electronic device and an external electronic device according to one embodiment.

[0022] FIG. 12b is a flowchart illustrating operations for canceling file sharing between an electronic device and an external electronic device according to one embodiment.

[0023] FIG. 12c is a flowchart illustrating operations for file sharing between an electronic device and an external electronic device according to one embodiment.

[0024] FIG. 13a is a drawing illustrating a user interface (UI) for setting duplicate file sharing according to one embodiment.

[0025] FIG. 13b is a drawing illustrating a UI displayed in response to a file sharing request according to one embodiment.

[0026] FIG. 13c is a drawing illustrating a UI displayed as file sharing is completed, according to one embodiment.

[0027] FIG. 1 is a block diagram of an electronic device (101) in a network environment (100) according to various embodiments.

[0028] Referring to FIG. 1, in a network environment (100), an electronic device (101) may communicate with an electronic device (102) through a first network (198) (e.g., a short-range wireless communication network) or with at least one of an electronic device (104) or a server (108) through a second network (199) (e.g., a long-range wireless communication network). According to one embodiment, the electronic device (101) may communicate with the electronic device (104) through a server (108). According to one embodiment, the electronic device (101) may include a processor (120), memory (130), input module (150), sound output module (155), display module (160), audio module (170), sensor module (176), interface (177), connection terminal (178), haptic module (179), camera module (180), power management module (188), battery (189), communication module (190), subscriber identification module (196), or antenna module (197). In some embodiments, at least one of these components (e.g., connection terminal (178)) may be omitted from the electronic device (101), or one or more other components may be added. In some embodiments, some of these components (e.g., sensor module (176), camera module (180), or antenna module (197)) may be integrated into a single component (e.g., display module (160)).

[0029] The processor (120) can control at least one other component (e.g., hardware or software component) of the electronic device (101) connected to the processor (120) by executing software (e.g., program (140)), and can perform various data processing or operations. According to one embodiment, as at least part of the data processing or operations, the processor (120) can store commands or data received from other components (e.g., sensor module (176) or communication module (190)) in volatile memory (132), process the commands or data stored in volatile memory (132), and store the resulting data in non-volatile memory (134). According to one embodiment, the processor (120) may include a main processor (121) (e.g., central processing unit or application processor) or an auxiliary processor (123) that can operate independently or together with it (e.g., graphics processing unit, neural processing unit (NPU), image signal processor, sensor hub processor, or communication processor). For example, if the electronic device (101) includes a main processor (121) and an auxiliary processor (123), the auxiliary processor (123) may be configured to use less power than the main processor (121) or to be specialized for a designated function. The auxiliary processor (123) may be implemented separately from the main processor (121) or as part thereof.

[0030] The auxiliary processor (123) may control at least some of the functions or states associated with at least one component of the electronic device (101) (e.g., display module (160), sensor module (176), or communication module (190)) on behalf of the main processor (121) while the main processor (121) is in an inactive (e.g., sleep) state, or together with the main processor (121) while the main processor (121) is in an active (e.g., application execution) state. According to one embodiment, the auxiliary processor (123) (e.g., image signal processor or communication processor) may be implemented as part of another functionally related component (e.g., camera module (180) or communication module (190)). According to one embodiment, the auxiliary processor (123) (e.g., neural network processing unit) may include a hardware structure specialized for processing an artificial intelligence model. The artificial intelligence model may be generated through machine learning. Such learning may be performed, for example, on the electronic device (101) itself where the artificial intelligence model is executed, or through a separate server (e.g., server (108)). The learning algorithm may include, for example, supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but is not limited to the examples described above. The artificial intelligence model may include a plurality of artificial neural network layers.An artificial neural network may be a deep neural network (DNN), a convolutional neural network (CNN), a recurrent neural network (RNN), a restricted Boltzmann machine (RBM), a deep belief network (DBN), a bidirectional recurrent deep neural network (BRDNN), a deep Q-network, or a combination of two or more of the above, but is not limited to the examples described above. In addition to the hardware structure, the artificial intelligence model may include a software structure, either additionally or substantially.

[0031] The memory (130) can store various data used by at least one component of the electronic device (101) (e.g., processor (120) or sensor module (176)). The data may include, for example, input data or output data for software (e.g., program (140)) and related commands. The memory (130) may include volatile memory (132) or non-volatile memory (134).

[0032] The program (140) may be stored as software in memory (130) and may include, for example, an operating system (142), middleware (144), or an application (146).

[0033] The input module (150) can receive commands or data to be used for a component of the electronic device (101) (e.g., processor (120)) from outside the electronic device (101) (e.g., user). The input module (150) may include, for example, a microphone, a mouse, a keyboard, a key (e.g., a button), or a digital pen (e.g., a stylus pen).

[0034] The sound output module (155) can output a sound signal to the outside of the electronic device (101). The sound output module (155) may include, for example, a speaker or a receiver. The speaker may be used for general purposes, such as multimedia playback or recording playback. The receiver may be used to receive incoming calls. According to one embodiment, the receiver may be implemented separately from the speaker or as part thereof.

[0035] The display module (160) can visually provide information to an external (e.g., user) of the electronic device (101). The display module (160) may include, for example, a display, a holographic device, or a projector and a control circuit for controlling said device. According to one embodiment, the display module (160) may include a touch sensor configured to detect a touch, or a pressure sensor configured to measure the intensity of the force generated by said touch.

[0036] The audio module (170) can convert sound into an electrical signal or, conversely, convert an electrical signal into sound. According to one embodiment, the audio module (170) can acquire sound through the input module (150) or output sound through the sound output module (155) or an external electronic device (e.g., electronic device (102)) (e.g., speaker or headphones) connected directly or wirelessly to the electronic device (101).

[0037] The sensor module (176) can detect the operating state of the electronic device (101) (e.g., power or temperature) or the external environmental state (e.g., user state) and generate an electrical signal or data value corresponding to the detected state. According to one embodiment, the sensor module (176) may include, for example, a gesture sensor, a gyroscope sensor, a barometric pressure sensor, a magnetic sensor, an accelerometer sensor, a grip sensor, a proximity sensor, a color sensor, an IR (infrared) sensor, a biosensor, a temperature sensor, a humidity sensor, or an illuminance sensor.

[0038] The interface (177) may support one or more specified protocols that can be used for the electronic device (101) to be connected directly or wirelessly to an external electronic device (e.g., electronic device (102)). According to one embodiment, the interface (177) may include, for example, a high definition multimedia interface (HDMI), a universal serial bus (USB) interface, an SD card interface, or an audio interface.

[0039] The connection terminal (178) may include a connector through which the electronic device (101) can be physically connected to an external electronic device (e.g., electronic device (102)). According to one embodiment, the connection terminal (178) may include, for example, an HDMI connector, a USB connector, an SD card connector, or an audio connector (e.g., a headphone connector).

[0040] The haptic module (179) can convert an electrical signal into a mechanical stimulus (e.g., vibration or movement) or an electrical stimulus that the user can perceive through tactile or kinesthetic senses. According to one embodiment, the haptic module (179) may include, for example, a motor, a piezoelectric element, or an electric stimulation device.

[0041] The camera module (180) can capture still images and video. According to one embodiment, the camera module (180) may include one or more lenses, image sensors, image signal processors, or flashes.

[0042] The power management module (188) can manage the power supplied to the electronic device (101). According to one embodiment, the power management module (188) can be implemented, for example, as at least part of a power management integrated circuit (PMIC).

[0043] The battery (189) can supply power to at least one component of the electronic device (101). According to one embodiment, the battery (189) may include, for example, a non-rechargeable primary battery, a rechargeable secondary battery, or a fuel cell.

[0044] The communication module (190) can support the establishment of a direct (e.g., wired) communication channel or a wireless communication channel between an electronic device (101) and an external electronic device (e.g., electronic device (102), electronic device (104), or server (108)), and the performance of communication through the established communication channel. The communication module (190) may include one or more communication processors that operate independently of the processor (120) (e.g., application processor) and support direct (e.g., wired) communication or wireless communication. According to one embodiment, the communication module (190) may include a wireless communication module (192) (e.g., cellular communication module, short-range wireless communication module, or GNSS (global navigation satellite system) communication module) or a wired communication module (194) (e.g., LAN (local area network) communication module, or power line communication module). The corresponding communication module among these communication modules can communicate with an external electronic device (104) through a first network (198) (e.g., a short-range communication network such as Bluetooth, WiFi (wireless fidelity) direct, or IrDA (infrared data association)) or a second network (199) (e.g., a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a LAN or WAN). These various types of communication modules may be integrated into a single component (e.g., a single chip) or implemented as multiple separate components (e.g., multiple chips). The wireless communication module (192) can identify or authenticate the electronic device (101) within a communication network such as the first network (198) or the second network (199) using subscriber information (e.g., International Mobile Subscriber Identifier (IMSI)) stored in the subscriber identification module (196).

[0045] The wireless communication module (192) can support 5G networks and next-generation communication technologies following 4G networks, for example, new radio access technology. NR access technology can support high-speed transmission of high-capacity data (enhanced mobile broadband (eMBB)), minimization of terminal power and connection of multiple terminals (massive machine type communications (mMTC)), or high reliability and low latency (ultra-reliable and low-latency communications (URLLC)). The wireless communication module (192) can support a high-frequency band (e.g., mmWave band) to achieve a high data transmission rate, for example. The wireless communication module (192) can support various technologies for securing performance in the high-frequency band, such as beamforming, massive MIMO (multiple-input and multiple-output), full-dimensional MIMO (FD-MIMO), array antenna, analog beam-forming, or large-scale antenna. The wireless communication module (192) can support various requirements specified in the electronic device (101), external electronic device (e.g., electronic device (104)), or network system (e.g., second network (199)). According to one embodiment, the wireless communication module (192) can support a Peak data rate (e.g., 20 Gbps or more) for realizing eMBB, loss coverage (e.g., 664 dB or less) for realizing mMTC, or U-plane latency (e.g., downlink (DL) and uplink (UL) each 0.5 ms or less, or round trip 6 ms or less) for realizing URLLC.

[0046] An antenna module (197) can transmit a signal or power to or from an external source (e.g., an external electronic device). According to one embodiment, the antenna module (197) may include an antenna comprising a radiator made of a conductor or a conductive pattern formed on a substrate (e.g., a PCB). According to one embodiment, the antenna module (197) may include a plurality of antennas (e.g., an array antenna). In this case, at least one antenna suitable for a communication method used in a communication network, such as a first network (198) or a second network (199), may be selected from the plurality of antennas, for example, by a communication module (190). A signal or power may be transmitted or received between the communication module (190) and an external electronic device through the selected at least one antenna. According to some embodiments, in addition to the radiator, other components (e.g., a radio frequency integrated circuit (RFIC)) may be additionally formed as part of the antenna module (197).

[0047] According to various embodiments, the antenna module (197) may form a mmWave antenna module. According to one embodiment, the mmWave antenna module may include a printed circuit board, an RFIC disposed on or adjacent to a first surface (e.g., bottom surface) of the printed circuit board and capable of supporting a specified high frequency band (e.g., mmWave band), and a plurality of antennas (e.g., array antennas) disposed on or adjacent to a second surface (e.g., top surface or side surface) of the printed circuit board and capable of transmitting or receiving a signal of the specified high frequency band.

[0048] At least some of the above components can be connected to each other via a communication method between peripheral devices (e.g., bus, GPIO (general purpose input and output), SPI (serial peripheral interface), or MIPI (mobile industry processor interface)) and exchange signals (e.g., commands or data) with each other.

[0049] According to one embodiment, commands or data may be transmitted or received between the electronic device (101) and an external electronic device (104) through a server (108) connected to a second network (199). Each of the external electronic devices (102, or 104) may be the same or different type of device as the electronic device (101). According to one embodiment, all or part of the operations performed on the electronic device (101) may be performed on one or more of the external electronic devices (102, 104, or 108). For example, if the electronic device (101) needs to perform a function or service automatically or in response to a request from a user or another device, the electronic device (101) may request one or more external electronic devices to perform at least part of the function or service instead of performing the function or service itself or additionally. One or more external electronic devices that receive the above request may execute at least part of the requested function or service, or additional function or service related to the request, and transmit the result of the execution to the electronic device (101). The electronic device (101) may provide the result as is or additionally processed as at least part of the response to the request. For this purpose, for example, cloud computing, distributed computing, mobile edge computing (MEC), or client-server computing technology may be used. The electronic device (101) may provide ultra-low latency services using, for example, distributed computing or mobile edge computing. In another embodiment, the external electronic device (104) may include an Internet of Things (IoT) device. The server (108) may be an intelligent server using machine learning and / or neural networks. According to one embodiment, the external electronic device (104) or the server (108) may be included within the second network (199).The electronic device (101) can be applied to intelligent services (e.g., smart home, smart city, smart car, or healthcare) based on 5G communication technology and IoT-related technology.

[0050] FIG. 2 is a block diagram of an electronic device and an external electronic device according to one embodiment.

[0051] The electronic device (101) of FIG. 2 may correspond to the electronic device (101) of FIG. 1. The external electronic device (102) of FIG. 2 may correspond to the electronic device (102) of FIG. 1.

[0052] Referring to FIG. 2, the electronic device (101) may include at least one of a processor (120), memory (130), a display (260), or a communication circuit (290). The processor (120) of FIG. 2 may correspond to the processor (120) of FIG. 1. The memory (130) of FIG. 2 may correspond to the memory (130) of FIG. 1. The display (260) of FIG. 2 may correspond to the display module (160) of FIG. 1. The communication circuit (290) of FIG. 2 may correspond to the communication module (190) of FIG. 1.

[0053] In one embodiment, the processor (120) may include a hardware component for processing data based on one or more instructions. The hardware component for processing data may include, for example, an arithmetic and logic unit (ALU), a field programmable gate array (FPGA), and / or a central processing unit (CPU). The number of processors (120) may be one or more. For example, the processor (120) may have the structure of a multi-core processor such as a dual core, a quad core, or a hexa core.

[0054] In one embodiment, the memory (130) may include a hardware component for storing data and / or instructions that are input to and / or output to the processor (120). The memory (130) may include, for example, volatile memory such as random-access memory (RAM) and / or non-volatile memory such as read-only memory (ROM). Volatile memory may include, for example, at least one of dynamic RAM (DRAM), static RAM (SRAM), cache RAM, and pseudo SRAM (PSRAM). Non-volatile memory may include, for example, programmable ROM (PROM), erasable PROM (EPROM), electrically erasable PROM (EEPROM), flash memory, hard disk, compact disk, and embedded multimedia card (eMMC).

[0055] In one embodiment, the memory (130) may include program modules described with reference to FIG. 3 (e.g., UI (user interface) module (310), duplication handler (320), and / or file transfer handler (330) of FIG. 3).

[0056] In one embodiment, the display (260) can output visualized information to the user of the electronic device (101). For example, the display (260) can output screens (1301, 1302, 1303) described with reference to FIGS. 13a to 13c.

[0057] For example, the display (260) can be controlled by a processor (120) including a circuit such as a GPU (graphic processing unit) to output visualized information to a user. The display (260) may include a flat panel display (FPD) and / or electronic paper. The FPD may include a liquid crystal display (LCD), a plasma display panel (PDP), and / or one or more light emitting diodes (LEDs). The LEDs may include organic LEDs (OLEDs).

[0058] In one embodiment, the communication circuit (290) may include hardware components to support the transmission and / or reception of electrical signals between an electronic device (101) and an external electronic device (102). The communication circuit (290) may include, for example, at least one of a modem, an antenna, and an optic / electronic converter. The communication circuit (290) may support the transmission and / or reception of electrical signals based on various types of protocols such as Ethernet, LAN (local area network), WAN (wide area network), Wi-Fi (wireless fidelity), Wi-Fi Direct, Bluetooth, BLE (Bluetooth low energy), ZigBee, LTE (long term evolution), 5G NR (new radio) and / or 6G.

[0059] According to one embodiment, within the memory (130) of the electronic device (101), one or more instructions (or commands) representing operations and / or operations to be performed on data by the processor (120) of the electronic device (101) may be stored. A set of one or more instructions may be referred to as firmware, an operating system, a process, a routine, a sub-routine, and / or an application. For example, the electronic device (101) and / or the processor (120) may perform at least one of the operations of FIGS. 4 through 7 and FIGS. 11 through 12c when a set of multiple instructions distributed in the form of an operating system, firmware, a driver, and / or an application is executed. In the following, the statement that an application is installed within an electronic device (101) may mean that one or more instructions provided in the form of an application are stored in memory (130), and that said one or more applications are stored in a format executable by a processor (120) (e.g., a file having an extension specified by the operating system of the electronic device (101)). For example, an application may include a program and / or library related to a service provided to a user.

[0060] Referring to FIG. 2, the external electronic device (102) may include at least one of a processor (225), memory (235), display (265), or communication circuit (295).

[0061] The processor (225) of Fig. 2 may correspond to the processor (120) of Fig. 1. The memory (235) of Fig. 2 may correspond to the memory (130) of Fig. 1. The display (265) of Fig. 2 may correspond to the display module (160) of Fig. 1. The communication circuit (295) of Fig. 2 may correspond to the communication module (190) of Fig. 1.

[0062] In one embodiment, the processor (225) may include a hardware component for processing data based on one or more instructions. For example, the processor (225) may have the structure of a multi-core processor such as a dual core, a quad core, or a hexa core.

[0063] In one embodiment, the memory (235) may include a hardware component for storing data and / or instructions that are input and / or output to the processor (225).

[0064] In one embodiment, the memory (235) may include program modules described with reference to FIG. 3 (e.g., UI (user interface) module (315), duplication handler (325), and / or file transfer handler (335) of FIG. 3).

[0065] In one embodiment, the display (265) can output visualized information to a user of an external electronic device (102). For example, the display (265) can output screens (1301, 1302, 1303) described with reference to FIGS. 13a through 13c.

[0066] In one embodiment, the communication circuit (295) may include hardware components to support the transmission and / or reception of electrical signals between the electronic device (101) and the external electronic device (102).

[0067] According to one embodiment, within the memory (235) of an external electronic device (102), one or more instructions (or commands) representing operations and / or operations to be performed on data by the processor (225) of the external electronic device (102) may be stored. For example, the external electronic device (102) and / or the processor (225) may perform at least one of the operations of FIGS. 8 through 12c when a set of multiple instructions distributed in the form of an operating system, firmware, driver, and / or application is executed. Hereinafter, the statement that an application is installed within the external electronic device (102) may mean that one or more instructions provided in the form of an application are stored in the memory (235), and that said one or more applications are stored in a format executable by the processor (225) (e.g., a file having an extension specified by the operating system of the external electronic device (102)).

[0068] Referring to FIG. 2, an electronic device (101) may be connected to an external electronic device (102) via direct wireless communication (210). In one embodiment, the direct wireless communication (210) may be wireless communication based on a short-range communication network (or a first network (198 in FIG. 1)) (e.g., Bluetooth, BLE, Wi-Fi, Wi-Fi Direct, UWB and / or IrDA). In one embodiment, the direct wireless communication (210) may be wireless communication in which the wireless signal between the electronic device (101) and the external electronic device (102) does not pass through another device (e.g., a server (108), and / or an access point).

[0069] In one embodiment, direct wireless communication (210) between an electronic device (101) and an external electronic device (102) may be established upon the electronic device (101) receiving a request to share (or, transmit) a file. In one embodiment, direct wireless communication (210) between the electronic device (101) and the external electronic device (102) may be maintained until the requested file is transferred from the electronic device (101) to the external electronic device (102). In one embodiment, direct wireless communication (210) between the electronic device (101) and the external electronic device (102) may be maintained until the direct wireless communication (210) is released by the communication environment.

[0070] According to an embodiment, when direct wireless communication (210) is disabled by a communication environment, the electronic device (101) can transmit a file requested for sharing to an external electronic device (102) via indirect wireless communication (215).

[0071] In one embodiment, the electronic device (101) may be wirelessly connected to the external electronic device (102) via indirect wireless communication (215) based on the direct wireless communication (210) with the external electronic device (102) being disabled. In one embodiment, the electronic device (101) may be wirelessly connected to the external electronic device (102) via indirect wireless communication (215) based on the direct wireless communication (210) being disabled by the communication environment before the transmission of a file requested for sharing to the external electronic device (102) is completed.

[0072] In one embodiment, the indirect wireless communication (215) may be wireless communication based on a remote communication network (or a second network (199 in FIG. 2)) (e.g., a legacy cellular network, a 5G network, a next-generation communication network, the Internet, or a computer network (e.g., a LAN or WAN)). In one embodiment, the indirect wireless communication (215) may be wireless communication in which a wireless signal between an electronic device (101) and an external electronic device (102) passes through another device (e.g., a server (108), and / or an access point).

[0073] In one embodiment, the electronic device (101) and / or external electronic device (102) may perform the operations described with reference to FIGS. 4 through 12c via indirect wireless communication (215) via another device (e.g., server (108), and / or access point). In one embodiment, the electronic device (101) and / or external electronic device (102) may perform the operations described with reference to FIGS. 4 through 12c via indirect wireless communication (215) via another device (e.g., server (108), and / or access point) while direct wireless communication (210) is disabled.

[0074] For example, an electronic device (101) may transmit identification information (e.g., hash value) of a file for which sharing is requested via indirect wireless communication (215), and receive a response indicating whether the identification information is duplicated. For example, an external electronic device (102) may receive identification information (e.g., hash value) of a file for which sharing is requested via indirect wireless communication (215), and transmit a response indicating whether the identification information is duplicated.

[0075] In one embodiment, the electronic device (101) can transmit a shared requested file that was not transmitted to the external electronic device (102) via indirect wireless communication (215) while direct wireless communication (210) with the external electronic device (102) is disabled.

[0076] Hereinafter, with reference to FIGS. 3 to FIGS. 13c, the operation of sharing a file from an electronic device (101) to an external electronic device (102) can be specifically described.

[0077] FIG. 3 is a block diagram of an electronic device and an external electronic device according to one embodiment.

[0078] Figure 3 can be explained with reference to Figures 1 and 2.

[0079] Referring to FIG. 3, the electronic device (101) may include a UI (user interface) module (310), a duplication handler (320), a file transfer handler (330), and / or a file storage (340). In one embodiment, the UI module (310), the duplication handler (320), and / or the file transfer handler (330) may be a program module containing instructions stored in the memory (130) of the electronic device (101). In one embodiment, the file storage (340) may be a part of the storage space in the memory (130). In the following, the operations of the UI module (310), the duplication handler (320), and / or the file transfer handler (330) may be understood as being performed by the electronic device (101) when the processor (120) executes the instructions of the UI module (310), the duplication handler (320), and / or the file transfer handler (330).

[0080] In one embodiment, the UI module (310) may process an input requesting the sharing of a file (or, content). For example, processing an input requesting the sharing of a file (or, content) may include the UI module (310) identifying an input requesting the sharing of a file (or, content). For example, processing an input requesting the sharing of a file (or, content) may include the UI module (310) forwarding the identified input to modules related to sharing (e.g., a duplication handler (320), a file transfer handler (330), and / or a file storage (340)). For example, processing an input requesting the sharing of a file (or, content) may include the UI module (310) outputting a result representing the result processed by modules (e.g., duplication handler (320), file transfer handler (330), and / or file storage (340)) based on the identified input.

[0081] In one embodiment, the file may include content and metadata about the content. In one embodiment, the content may be referred to as the essence data of the file. In one embodiment, the content may include an image (e.g., a still image, or a video), text (e.g., a document, a book, or program source code), and / or audio. In one embodiment, the metadata may indicate a file name, an extension (or file type), a time of creation, and / or file-specific information (e.g., in the case of an image, camera information, camera settings, and / or location information).

[0082] In one embodiment, an input requesting the sharing of a file (or, content) may include a sequence of one or more inputs. For example, a sequence of one or more inputs may include an input for selecting a file (or, content) to be shared, and / or an input for selecting an external electronic device (102) to which the file (or, content) will be transmitted.

[0083] In one embodiment, an input requesting the sharing of a file (or, content) may include a touch input obtained through a display (260), a voice input obtained through a microphone (e.g., the audio module (170) of FIG. 1), and / or a gesture obtained through a camera (e.g., the camera module (180) of FIG. 1), and / or a sensor module (176)).

[0084] In one embodiment, the UI module (310) may output a screen showing the processing result of an identified input through a display (260). However, it is not limited thereto. For example, the UI module (310) may output an audio signal showing the processing result of an identified input through a speaker (e.g., the sound output module (155) of FIG. 1).

[0085] In one embodiment, the duplication handler (320) can control the transmission of a file requested for sharing through a message channel (350) with an external electronic device (102). In one embodiment, the message channel (350) may be a channel established based on receiving an input to share a file of the electronic device (101) with the external electronic device (102) via direct wireless communication (210). For example, the message channel (350) may be established via the communication circuit (290) of the electronic device (101) and the communication circuit (295) of the external electronic device (102). In one embodiment, the message channel (350) may be changed to a message channel based on indirect wireless communication (215) to the external electronic device (102) when direct wireless communication (210) is disabled due to the communication environment. In one embodiment, the message channel (350) may be a path through which commands (e.g., commands described with reference to FIGS. 11 to 12c, e.g., OnSendFileRequest, OnSendFile, OnReceiveStatusRequest) between the duplication handler (320) and the duplication handler (325) are transmitted.

[0086] In one embodiment, the duplication handler (320) can control the transfer of a file based on whether the requested file for sharing is duplicated. In one embodiment, the duplication handler (320) can control the transfer of a file by transmitting a value indicating whether the requested file for sharing is duplicated to the file transfer handler (330).

[0087] In one embodiment, the duplication handler (320) may control the transmission of a file requested for sharing to prevent duplicate file sharing to an external electronic device (102). For example, the duplication handler (320) may not initiate the transmission of a file requested for sharing to an external electronic device (102) to prevent duplicate file sharing to an external electronic device (102). For example, the duplication handler (320) may stop the transmission of a file requested for sharing that is being transmitted to an external electronic device (102) to prevent duplicate file sharing to an external electronic device (102). For example, the duplication handler (320) may request the deletion of a file requested for sharing that has been transmitted to an external electronic device (102) to prevent duplicate file sharing to an external electronic device (102). In one embodiment, operations to prevent duplicate file sharing may be described with reference to FIGS. 5 and 6.

[0088] For example, the duplication handler (320) can determine whether there is a duplicate file in the external electronic device (102) based on whether a file corresponding to the file requested for sharing exists in the external electronic device (102) via the message channel (350). For example, the duplication handler (320) can determine whether there is a duplicate file in the external electronic device (102) based on whether there is a file among a plurality of files stored in the external electronic device (102) that has identification information corresponding to the identification information of the file to be shared by the electronic device (101) via the message channel (350). For example, the duplication handler (320) can determine whether there is a duplicate file in the external electronic device (102) based on whether the identification information of the file to be shared by the electronic device (101) exists in the external electronic device (102) among the identification information stored in the external electronic device (102) via the message channel (350).

[0089] In one embodiment, the duplication handler (320) may request the file transfer handler (330) to transfer the file requested for sharing. In one embodiment, the duplication handler (320) may request the file transfer handler (330) to transfer the file requested for sharing by transmitting a value indicating whether the file is duplicated.

[0090] In one embodiment, the file transfer handler (330) can transmit a file requested for sharing to the external electronic device (102) (or the file transfer handler (335) of the external electronic device (102)) via a data channel (355) with the external electronic device (102). In one embodiment, the data channel (355) may be a channel for sharing a file of the electronic device (101) with the external electronic device (102) via direct wireless communication (210). For example, the data channel (355) may be established via the communication circuit (290) of the electronic device (101) and the communication circuit (295) of the external electronic device (102). In one embodiment, the data channel (355) may be changed to a data channel based on indirect wireless communication (215) to the external electronic device (102) when direct wireless communication (210) is disabled due to the communication environment.

[0091] In one embodiment, the file transfer handler (330) may transfer files requested for sharing via the data channel (355) to the file transfer handler (335) according to a specified transfer order. In one embodiment, the specified transfer order may be based on the order of selection of the files. For example, in a sequence of one or more inputs requesting the sharing of a file (or content), the transfer order of a file selected by the first input may precede the transfer order of a file selected by the later input. In one embodiment, the specified transfer order may be based on the likelihood of duplication of the files. For example, the file transfer handler (330) may set the transfer order of a file determined to have a high likelihood of duplication among the files sorted according to the input order to have the latest order. In one embodiment, the determination of the file transfer order may be explained with reference to FIG. 7.

[0092] In one embodiment, the file transfer handler (330) may stop sharing some of the files based on a value indicating whether there is a duplicate of the files from the duplication handler (320) while transferring the files to the file transfer handler (335). For example, stopping the sharing of some files may include the file transfer handler (330) not initiating the transfer of the files for which sharing was requested. For example, stopping the sharing of some files may include the file transfer handler (330) stopping the transfer of the files for which sharing was requested that are currently being transferred. For example, stopping the sharing of some files may include the file transfer handler (330) requesting the external electronic device (102) to delete the files for which sharing was requested that have been transferred.

[0093] In one embodiment, the file transfer handler (330) may maintain sharing of some of the files based on a value indicating whether there is a duplicate of the files from the duplication handler (320) while transferring the files to the file transfer handler (335). For example, maintaining sharing of some of the files may include the file transfer handler (330) processing a request to complete the transfer of the files for which sharing was requested.

[0094] In one embodiment, the file storage (340) may store files. In one embodiment, the file storage (340) may store identification information for each of the files. In one embodiment, the identification information may be a hash value of the file. For example, the hash value of the file may be a hash value for partial data (e.g., content) excluding metadata from the file's data. For example, the hash value of the file may be a hash value for the file's data including metadata. In one embodiment, the identification information of the file may be a checksum of the file. For example, the checksum of the file may be a value of length (e.g., 4 bytes) selected according to a specified rule among the hash values ​​of the file.

[0095] Referring to FIG. 3, the external electronic device (102) may include a UI module (315), a duplication handler (325), a file transfer handler (335), and / or a file storage (345). The UI module (315), the duplication handler (325), the file transfer handler (335), and the file storage (345) may correspond to the UI module (310), the duplication handler (320), the file transfer handler (330), and the file storage (340), respectively.

[0096] In one embodiment, the UI module (315), the duplication handler (325), and / or the file transfer handler (335) may be a program module containing instructions stored in the memory (235) of the external electronic device (102). In one embodiment, the file storage (345) may be part of the storage space in the memory (235). Hereinafter, the operations of the UI module (315), the duplication handler (325), and / or the file transfer handler (335) may be understood as being performed by the external electronic device (102) when the processor (225) executes the instructions of the UI module (315), the duplication handler (325), and / or the file transfer handler (335).

[0097] In one embodiment, the UI module (315) may process a request to share (or transmit) a file (or, content) from the electronic device (101). For example, processing a request to share a file (or, content) may include the UI module (315) identifying a request to share a file (or, content) from the electronic device (101). For example, processing a request to share a file (or, content) may include the UI module (315) transmitting the identified sharing request to modules related to sharing (e.g., a duplication handler (325), a file transfer handler (335), and / or a file storage (345)). For example, processing a sharing request for a file (or, content) may include the UI module (315) outputting a result representing the result processed by modules (e.g., duplication handler (325), file transfer handler (335), and / or file storage (345)) based on the identified sharing request.

[0098] In one embodiment, a request to share a file (or content) can be obtained from an electronic device (101) via a message channel (350) based on direct wireless communication (210).

[0099] In one embodiment, the UI module (315) may output a screen showing the processing result of an identified sharing request (or, transmission request) through a display (265). However, it is not limited thereto. For example, the UI module (315) may output an audio signal showing the processing result of an identified sharing request through a speaker (e.g., the sound output module (155) of FIG. 1).

[0100] In one embodiment, the duplication handler (325) can control the reception of a file requested for sharing through a message channel (350) with the electronic device (101). For example, the duplication handler (325) can receive a sharing request (or transmission request) for the electronic device (101) to transmit a file to an external electronic device (102) through the message channel (350) from the duplication handler (320) of the electronic device (101).

[0101] In one embodiment, the duplication handler (325) can control the reception of a file based on whether the requested file for sharing is duplicated. In one embodiment, the duplication handler (325) can control the reception of a file by transmitting a value indicating whether the requested file for sharing is duplicated to the duplication handler (320).

[0102] In one embodiment, the duplication handler (325) may control the reception of a file requested for sharing to prevent the sharing of duplicate files from the electronic device (101). In one embodiment, operations to prevent the sharing of duplicate files may be described with reference to FIGS. 9 and FIGS. 10.

[0103] For example, the duplication handler (325) can determine, via the message channel (350), whether a duplicate file corresponding to the file requested for sharing exists in the external electronic device (102). For example, the duplication handler (325) can determine, via the message channel (350), whether a duplicate file exists among a plurality of files stored in the external electronic device (102) that has identification information corresponding to the identification information of the file to be shared by the electronic device (101). For example, the duplication handler (325) can determine, via the message channel (350), whether the identification information of the file to be shared by the electronic device (101) exists in the external electronic device (102) from the identification information stored in the external electronic device (102).

[0104] In one embodiment, the duplication handler (325) may request the file transfer handler (335) to receive the file requested for sharing.

[0105] In one embodiment, the file transfer handler (335) can receive a file requested for sharing from the electronic device (101) (or the file transfer handler (330)) through a data channel (355) with the electronic device (101). In one embodiment, the file transfer handler (335) can receive files requested for sharing sequentially through the data channel (355).

[0106] In one embodiment, the file storage (345) may store files. In one embodiment, the file storage (345) may store identification information for each of the files. In one embodiment, the identification information may be a hash value of the file. For example, the hash value of the file may be a hash value for partial data (e.g., content) excluding metadata from the file's data. For example, the hash value of the file may be a hash value for the file's data including metadata. In one embodiment, the identification information of the file may be a checksum for the file.

[0107] FIG. 4 is a flowchart illustrating operations for transmitting a file of an electronic device according to one embodiment.

[0108] FIG. 4 can be explained with reference to FIGS. 1 to 3.

[0109] Referring to FIG. 4, in operation 410, the electronic device (101) may receive an input requesting the sharing of a file (or, content). In one embodiment, the input requesting the sharing of a file may include a sequence of one or more inputs. For example, the sequence of one or more inputs may include an input for selecting the file (or, content) to be shared, and / or an input for selecting an external electronic device (102) to which the file (or, content) will be transmitted.

[0110] In one embodiment, the electronic device (101) may transmit a file sharing request to an external electronic device (102) via a message channel (350). For example, the electronic device (101) may transmit a file sharing request to the external electronic device (102) via a specified API (application programming interface) (e.g., onSendFileRequest). In one embodiment, the file sharing request may include file information for at least one file that the electronic device (101) is to transmit to the external electronic device (102). In one embodiment, the file information may be part of the metadata of at least one file to be transmitted. For example, the file information may include the file name and / or extension (or file type) of at least one file to be transmitted.

[0111] In one embodiment, the electronic device (101) may receive a response to a file sharing request from an external electronic device (102) via a message channel (350). For example, the electronic device (101) may receive a response to a file sharing request from the external electronic device (102) via a specified API (e.g., onReceiveFile). In one embodiment, the response to the file sharing request may indicate whether the file sharing request is approved or rejected. In one embodiment, the response to the file sharing request may indicate whether there is duplicate file information. In one embodiment, the duplicate file information may indicate whether the file name and / or extension (or file type) of a file stored in the memory (235) (or file storage (345)) of the external electronic device (102) corresponds to the file name and / or extension (or file type) of at least one file that the electronic device (101) is to transmit to the external electronic device (102).

[0112] In one embodiment, the electronic device (101) may perform operations 420 and 430 based on receiving an input requesting file sharing. In one embodiment, the electronic device (101) may perform operations 420 and 430 based on transmitting a file sharing request to an external electronic device (102). In one embodiment, the electronic device (101) may perform operations 420 and 430 based on receiving a response to the file sharing request from the external electronic device (102).

[0113] For example, the electronic device (101) may perform operation 420 and operation 430 in parallel. For example, the electronic device (101) performing operation 420 and operation 430 in parallel may include at least a portion of the operation time of operation 420 and the operation time of operation 430 overlapping. However, it is not limited thereto. For example, the electronic device (101) may perform operation 420 and operation 430 sequentially. For example, the electronic device (101) performing operation 420 and operation 430 sequentially may involve the electronic device (101) completing one operation of operation 420 or operation 430 and then performing the other operation.

[0114] In operation 420, the electronic device (101) may perform a duplication prevention procedure based on whether there is a duplicate file. In one embodiment, the electronic device (101) may perform a duplication prevention procedure based on whether there exists a file corresponding to the file to be shared by the electronic device (101) among a plurality of files stored in the external electronic device (102). In one embodiment, the electronic device (101) may perform a duplication prevention procedure based on whether there exists a file having identification information corresponding to the identification information of the file to be shared by the electronic device (101) among a plurality of files stored in the external electronic device (102). In one embodiment, the electronic device (101) may perform a duplication prevention procedure based on whether the identification information of the file to be shared by the electronic device (101) exists in the external electronic device (102) among the identification information stored in the external electronic device (102).

[0115] In one embodiment, the electronic device (101) may query the external electronic device (102) for whether a file is duplicated via a message channel (350). For example, the electronic device (101) may query the external electronic device (102) for whether a file is duplicated via a specified API (e.g., isExistHash). In one embodiment, the query for whether a file is duplicated may include identification information of at least one file to be transmitted by the electronic device (101) to the external electronic device (102). In one embodiment, the identification information may be a hash value of the file and / or a checksum.

[0116] In one embodiment, the electronic device (101) may receive a response to a query regarding whether a file is duplicated from an external electronic device (102) via a message channel (350). For example, the electronic device (101) may receive a response to a query from the external electronic device (102) that includes a specified field (e.g., HashFlag). In one embodiment, the response to the query may indicate whether the hash value of the file is duplicated. In one embodiment, the hash value duplication may indicate whether the hash value of a file stored in the memory (235) (or file storage (345)) of the external electronic device (102) corresponds to the hash value of at least one file that the electronic device (101) is transmitting to the external electronic device (102), has completed transmission, or is scheduled to transmit.

[0117] In one embodiment, the electronic device (101) may query the external electronic device (102) for the transmission status of a file to be transmitted. For example, the electronic device (101) may query the external electronic device (102) for the transmission status of a file through a specified API (e.g., onReceiveStatusRequest).

[0118] In one embodiment, the electronic device (101) may receive a response to a query regarding the file transmission status from an external electronic device (102) via a message channel (350). For example, the electronic device (101) may receive a response to a query from the external electronic device (102) via a specified API (e.g., ReceiveStatus). In one embodiment, the response to the query may indicate the file transmission status. In one embodiment, the file transmission status may indicate one of the following: before file transmission, during file transmission, or completed file transmission.

[0119] In one embodiment, the electronic device (101) may perform a duplicate prevention procedure based on receiving a response to a query regarding whether a file is duplicated and / or a response to a query regarding the transmission status of the file. In one embodiment, the duplicate prevention procedure may include the electronic device (101) not initiating the transmission of the file for which sharing is requested to the external electronic device (102). In one embodiment, the duplicate prevention procedure may include the electronic device (101) stopping the transmission of the file for which sharing is requested that is being transmitted to the external electronic device (102). In one embodiment, the duplicate prevention procedure may include the electronic device (101) requesting the external electronic device (102) to delete the file for which sharing is requested that has been transmitted. In one embodiment, the duplicate prevention procedure may be described with reference to FIGS. 5 and FIGS. 6.

[0120] In operation 430, the electronic device (101) can transmit a file to an external electronic device (102). In one embodiment, if the file for which sharing is requested includes multiple files, the electronic device (101) can transmit multiple files to the external electronic device (102) in a specified transmission order.

[0121] In one embodiment, the electronic device (101) can notify the external electronic device (102) of the transmission of a file to be transmitted. For example, the electronic device (101) can notify the external electronic device (102) of the transmission of a file through a specified API (e.g., onSendFile).

[0122] In one embodiment, the electronic device (101) may receive a response regarding a file transmission notification from an external electronic device (102) via a message channel (350). For example, the electronic device (101) may receive a response regarding a file transmission notification from the external electronic device (102) via a specified API (e.g., onSuccess).

[0123] In one embodiment, the electronic device (101) can transmit a file to an external electronic device (102) via a data channel (355) based on receiving a response to a notification of file transmission via a message channel (350).

[0124] In FIG. 4, it is described that the electronic device (101) transmits a file to only one external electronic device (102), but this is merely an example. According to an embodiment, the electronic device (101) may transmit the same file to multiple external electronic devices simultaneously (or sequentially). For example, the electronic device (101) may perform operations 420 and 430 of FIG. 4 in parallel to one external electronic device. For example, the electronic device (101) may perform operation 420 of FIG. 4 first and then perform operation 430 to other external electronic devices.

[0125] FIG. 5 is a flowchart illustrating operations to prevent duplicate sharing of files of an electronic device according to one embodiment.

[0126] FIG. 5 can be described with reference to FIG. 1 through 4. The operations of FIG. 5 may be included in the operation 420 of FIG. 4.

[0127] Referring to FIG. 5, in operation 510, the electronic device (101) can transmit file identification information to an external electronic device (102). For example, the electronic device (101) can transmit file identification information to the external electronic device (102) via a specified API (e.g., isExistHash). In one embodiment, the electronic device (101) can transmit identification information for each of the files to be shared to the external electronic device (102). In one embodiment, the file identification information may be a unique value of the file. In one embodiment, the file identification information may be a hash value of the file and / or a checksum.

[0128] For example, the external electronic device (102) can identify the identification information received from the electronic device (101) among the identification information of each file included in the memory (235) (or file storage (345)) of the external electronic device (102) based on receiving the identification information of the file. For example, the external electronic device (102) can identify the corresponding identification information in the file storage (345) based on the identification information received from the electronic device (101). For example, the external electronic device (102) can transmit a hash flag having a specified value (e.g., 1) to the electronic device (101) based on the identification information corresponding to the identification information received from the electronic device (101) being retrieved in the file storage (345). For example, the external electronic device (102) may transmit a hash flag having a specified other value (e.g., 0) to the electronic device (101) based on the fact that identification information corresponding to identification information received from the electronic device (101) is not found in the file storage (345).

[0129] In operation 520, the electronic device (101) may receive a response from an external electronic device (102) indicating whether a file is duplicated. For example, the electronic device (101) may receive a response indicating whether a file is duplicated, including a specified field (e.g., HashFlag).

[0130] In operation 530, the electronic device (101) can determine whether a file is duplicated. For example, the electronic device (101) can determine whether a file is duplicated based on a response indicating whether a file is duplicated received from an external electronic device (102).

[0131] For example, the electronic device (101) can determine that a file is a duplicate based on the hash flag having a specified value (e.g., 1). For example, the electronic device (101) can determine that a file is not a duplicate based on the hash flag having a specified other value (e.g., 0).

[0132] Based on the determination in operation 530 that the file is duplicated, the electronic device (101) can perform operation 540. Based on the determination in operation 530 that the file is not duplicated, the electronic device (101) can perform operation 550.

[0133] In operation 540, the electronic device (101) can stop sharing the file. In one embodiment, the electronic device (101) can stop sharing the file in different ways depending on the file transmission status.

[0134] For example, the electronic device (101) may not initiate the transmission of duplicate files if the transmission of duplicate files has not yet begun. For example, the electronic device (101) may delete duplicate files from the list of at least one file to be transmitted so that the transmission of duplicate files is not initiated. Hereinafter, the list of at least one file to be transmitted may be referred to as a shared list.

[0135] For example, the electronic device (101) may stop the transmission of duplicate files if the transmission of duplicate files is in progress. For example, the electronic device (101) may not proceed with the transmission of duplicate files further so that the transmission of duplicate files is not completed. For example, if the transmission of duplicate files is in progress, the electronic device (101) may indicate to the external electronic device (102) that the transmission of duplicate files is not proceeding further through a specified API (e.g., onCancelSendFile).

[0136] For example, the electronic device (101) may request the external electronic device (102) to delete the duplicate file when the transmission of the duplicate file is complete. For example, the electronic device (101) may request the external electronic device (102) to delete the duplicate file through a specified API (e.g., onDeleteReceivedFile) when the transmission of the duplicate file is complete.

[0137] In operation 550, the electronic device (101) may maintain a file share. For example, the electronic device (101) may maintain a file share until the file transfer is completed. For example, the electronic device (101) may query the external electronic device (102) for the file transfer status via a specified API (e.g., onReceiveStatusRequest) and receive a response to the query from the external electronic device (102) via a specified API (e.g., ReceiveStatus). In one embodiment, the electronic device (101) may identify that the file transfer is completed based on the response to the query indicating that the file transfer is completed. In one embodiment, the electronic device (101) may notify the external electronic device (102) of the next file transfer via a specified API (e.g., onSendFile) based on identifying that the file transfer is completed.

[0138] According to an embodiment, based on a decision to maintain file sharing, the electronic device (101) can adjust the transmission order of files determined not to be duplicates among files sorted according to a specified transmission order. For example, the electronic device (101) can adjust the transmission order of files determined not to be duplicates to have an earlier transmission order.

[0139] FIG. 6 is a flowchart illustrating operations to prevent duplicate sharing of files of an electronic device according to one embodiment.

[0140] FIG. 6 can be described with reference to FIG. 1 through 5. The operations of FIG. 6 may be included in the operations 530 and 540 of FIG. 5.

[0141] Referring to FIG. 6, in operation 610, the electronic device (101) can identify that a file is duplicated. The electronic device (101) can identify that a file is duplicated based on a response from an external electronic device (102) indicating whether the file is duplicated. For example, the electronic device (101) can identify that a file is duplicated based on receiving a response containing a specified field (e.g., HashFlag) having a specified value (e.g., 1) for which a hash flag is specified.

[0142] In operation 620, the electronic device (101) can determine whether the file is in transit or before transmission. For example, the electronic device (101) can query the external electronic device (102) for the file transmission status via a specified API (e.g., onReceiveStatusRequest) and receive a response to the query from the external electronic device (102) via a specified API (e.g., ReceiveStatus). In one embodiment, the electronic device (101) can determine whether the response to the query indicates that the file is in transit or before transmission.

[0143] According to an embodiment, the electronic device (101) can determine whether a file is being transmitted or not through a file transfer handler (330). For example, the electronic device (101) can determine whether a file is being transmitted to an external electronic device (102) through a data channel (355) without querying the external electronic device (102) about the file transmission status through a message channel (350). For example, the electronic device (101) can determine whether a file is being transmitted or not by querying the file transfer handler (330) through the data channel (355) about whether a file is being transmitted to an external electronic device (102).

[0144] Based on determining in operation 620 that the file is in transmission, the electronic device (101) may perform operation 630. For example, operation 630 may be performed by the electronic device (101) when the electronic device (101) receives a response containing a specified field (e.g., HashFlag) having a value (e.g., 1) for which a hash flag is specified, and the file transmission status is in transmission. Based on determining in operation 620 that the file is not yet in transmission, the electronic device (101) may perform operation 640. For example, operation 640 may be performed by the electronic device (101) when the electronic device (101) receives a response containing a specified field (e.g., HashFlag) having a value (e.g., 1) for which a hash flag is specified, and the file transmission status is not yet in transmission.

[0145] In operation 630, the electronic device (101) may stop the transmission of the file. For example, the electronic device (101) may not proceed further with the transmission of the duplicate file so that the transmission of the duplicate file is not completed. For example, if the electronic device (101) is in the middle of transmitting the duplicate file, it may indicate to the external electronic device (102) via a specified API (e.g., onCancelSendFile) that the transmission of the duplicate file will not proceed further.

[0146] In operation 640, the electronic device (101) may delete a file from the shared list. For example, the electronic device (101) may delete a duplicate file from the shared list so that the transmission of the duplicate file is not initiated. According to an embodiment, operation 640 may be understood as an operation in which the electronic device (101) does not initiate the transmission of the duplicate file when the transmission of the duplicate file is prior to.

[0147] According to an embodiment, the electronic device (101) may request the external electronic device (102) to delete the duplicate file when the transmission of the duplicate file is complete. In one embodiment, the duplicate file that has been transmitted may have a different name from the name of the existing file in the external electronic device (102). For example, if the duplicate file that has been transmitted is stored in the same location (e.g., the same folder) as the existing file in the external electronic device (102), the name of the duplicate file that has been transmitted may be different from the name of the existing file. For example, the name of the duplicate file that has been transmitted may be a name in which a specified value (e.g., a number) is added to the name of the existing file. However, it is not limited thereto. For example, if the duplicate file that has been transmitted is stored in a different location (e.g., a different folder) than the existing file in the external electronic device (102), the name of the duplicate file that has been transmitted may be the same as the name of the existing file.

[0148] For example, when the electronic device (101) receives a response containing a specified field (e.g., HashFlag) having a value (e.g., 1) for which a hash flag is specified, and the file transfer status is that the file transfer is complete, the electronic device (101) may request the external electronic device (102) to delete duplicate files. For example, when the file transfer is complete, the electronic device (101) may request the external electronic device (102) to delete duplicate files through a specified API (e.g., onDeleteReceivedFile). However, it is not limited thereto. For example, even when the electronic device (101) receives a response containing a specified field (e.g., HashFlag) having a value (e.g., 1) for which a hash flag is specified, and the file transfer status is that the file transfer is complete, the electronic device (101) may not request the external electronic device (102) to delete duplicate files.

[0149] FIG. 7 is a flowchart illustrating operations for an electronic device to determine the transmission order of files according to one embodiment.

[0150] FIG. 7 can be described with reference to FIG. 1 through 4. The operations of FIG. 7 may be included in the operation 430 of FIG. 4.

[0151] Referring to FIG. 7, in operation 710, the electronic device (101) can transmit meta information to an external electronic device (102). For example, the electronic device (101) can transmit meta information to the external electronic device (102) via a specified API (e.g., onSendFileRequest) through a message channel (350). For example, the electronic device (101) can transmit meta information to the external electronic device (102) via a specified API (e.g., isExistMetaData). In one embodiment, the meta information transmitted to the external electronic device (102) via onSendFileRequest may include the file name and / or extension (or file type) of at least one file to be transmitted. In one embodiment, the meta information transmitted to the external electronic device (102) via isExistMetaData may include the extension (or file type) and / or file size of at least one file to be transmitted, but is not limited thereto. For example, the meta information transmitted to an external electronic device (102) via isExistMetaData may indicate the time of creation and / or specific information of the file (e.g., in the case of an image, camera information, camera settings, and / or location information).

[0152] In one embodiment, the meta information transmitted to the external electronic device (102) via onSendFileRequest and the meta information transmitted to the external electronic device (102) via isExistMetaData may not overlap with each other.

[0153] In operation 720, the electronic device (101) can receive a response from an external electronic device (102) indicating whether there is a duplicate of meta information. In one embodiment, the electronic device (101) can receive a response regarding meta information from an external electronic device (102) through a message channel (350).

[0154] For example, the electronic device (101) may receive a response to onSendFileRequest via a specified API (e.g., onReceiveFile). In one embodiment, the response to onSendFileRequest may indicate whether there is a duplicate of file information. In one embodiment, the duplicate of file information may indicate whether the file name and / or extension (or file type) of a file stored in the memory (235) (or file storage (345)) of the external electronic device (102) corresponds to the file name and / or extension (or file type) of at least one file that the electronic device (101) is to transmit to the external electronic device (102).

[0155] For example, the electronic device (101) may receive a response to isExistMetaData containing a specified field (e.g., MetaDataFlag). In one embodiment, the response to isExistMetaData may indicate whether there is a duplicate of file information. In one embodiment, the duplicate of file information may indicate whether the file extension (or file type) and / or file size stored in the memory (235) (or file storage (345)) of the external electronic device (102) corresponds to at least one file extension (or file type) and / or file size that the electronic device (101) is to transmit to the external electronic device (102).

[0156] In operation 730, the electronic device (101) can determine the transmission order of files to be transmitted based on whether there is duplication of meta information.

[0157] In one embodiment, the electronic device (101) can transmit files requested for sharing via the data channel (355) to an external electronic device (102) according to a specified transmission order. For example, the electronic device (101) can determine the transmission order of the files such that the file determined to have a high probability of duplication among the files sorted according to the specified transmission order has the latest order. For example, the electronic device (101) can determine that a file with duplicate meta information has a high probability of duplication. For example, the electronic device (101) can determine that a file with non-duplicate meta information has a low probability of duplication.

[0158] In one embodiment, the electronic device (101) can determine the transmission order of a plurality of files such that the transmission priority of some files among the plurality of files for which sharing is requested that meta information exists in the external electronic device (102) is lower than the transmission priority of other files for which meta information does not exist in the external electronic device (102).

[0159] In operation 740, the electronic device (101) can transmit files sequentially according to the transmission order of the files. In one embodiment, the electronic device (101) can notify the external electronic device (102) of the transmission of files to be transmitted. For example, the electronic device (101) can notify the external electronic device (102) of the transmission of selected files according to the transmission order through a specified API (e.g., onSendFile). In one embodiment, the electronic device (101) can receive a response regarding the notification of file transmission from the external electronic device (102) through a message channel (350). For example, the electronic device (101) can receive a response regarding the notification of transmission of selected files according to the transmission order from the external electronic device (102) through a specified API (e.g., onSuccess). In one embodiment, the electronic device (101) can transmit a selected file to an external electronic device (102) via a data channel (355) in a transmission order based on receiving a response to a file transmission notification via a message channel (350).

[0160] According to an embodiment, operations 710 to 730 may be performed repeatedly while operation 740 is performed. If the transmission order of files to be transmitted is changed by operations 710 to 730 performed repeatedly while operation 740 is performed, in operation 740, the electronic device (101) may transmit the files sequentially according to the changed transmission order of the files.

[0161] FIG. 8 is a flowchart illustrating operations for receiving a file of an external electronic device (102) according to one embodiment.

[0162] FIG. 8 can be explained with reference to FIGS. 1 to 7.

[0163] Referring to FIG. 8, in operation 810, the external electronic device (102) can receive a request to share a file.

[0164] In one embodiment, an external electronic device (102) may receive a file sharing request from an electronic device (101) via a message channel (350). For example, the external electronic device (102) may receive a file sharing request from the electronic device (101) via a specified API (e.g., onSendFileRequest). In one embodiment, the file sharing request may include file information for at least one file that the electronic device (101) is to transmit to the external electronic device (102). In one embodiment, the file information may be part of the metadata of at least one file to be transmitted. For example, the file information may include the file name and / or extension (or file type) of at least one file to be transmitted.

[0165] In one embodiment, the external electronic device (102) may display a UI (e.g., UI (1320) of FIG. 13b) that asks the user whether to receive a file based on receiving a file sharing request from the electronic device (101) via a message channel (350) through a display (265). However, it is not limited thereto. In one embodiment, the external electronic device (102) may output an audio signal that asks the user whether to receive a file based on receiving a file sharing request from the electronic device (101) via a message channel (350) through a speaker (e.g., sound output module (155) of FIG. 1).

[0166] In one embodiment, the external electronic device (102) may receive an input indicating whether to receive a shared file. For example, the external electronic device (102) may decide not to receive the file based on receiving an input selecting a specified item within the UI (1320) (e.g., item (1325) in FIG. 13b). For example, the external electronic device (102) may decide to receive the file based on receiving an input selecting a specified item within the UI (1320) (e.g., item (1327) in FIG. 13b).

[0167] In one embodiment, the external electronic device (102) can identify whether there is a duplicate of file information. In one embodiment, the external electronic device (102) can identify whether there is a duplicate of file information based on determining that a file is received. In one embodiment, the external electronic device (102) can determine whether a file having file information corresponding to file information (e.g., file name, and / or extension (or file type)) included in a specified API (e.g., onSendFileRequest) is stored in the file storage (345). In one embodiment, the external electronic device (102) can determine whether file information corresponding to file information (e.g., file name, and / or extension (or file type)) included in a specified API (e.g., onSendFileRequest) is stored in the file storage (345).

[0168] In one embodiment, the external electronic device (102) may transmit a response to a file sharing request to the electronic device (101) via a message channel (350). For example, the external electronic device (102) may transmit a response to a file sharing request to the electronic device (101) via a designated API (e.g., onReceiveFile). In one embodiment, the response to the file sharing request may indicate whether the file sharing request is approved or rejected. In one embodiment, the response to the file sharing request may indicate whether there is duplicate file information. In one embodiment, the duplicate file information may indicate whether the file name and / or extension (or file type) of a file stored in the memory (235) (or file storage (345)) of the external electronic device (102) corresponds to the file name and / or extension (or file type) of at least one file that the electronic device (101) is to transmit to the external electronic device (102).

[0169] In one embodiment, the external electronic device (102) may perform operations 820 and 830 based on receiving a file sharing request. In one embodiment, the external electronic device (102) may perform operations 820 and 830 based on receiving an input from the electronic device (101) that approves the file sharing request (e.g., an input selecting item (1327) in FIG. 13b).

[0170] For example, the external electronic device (102) may perform operation 820 and operation 830 in parallel. For example, the external electronic device (102) performing operation 820 and operation 830 in parallel may include at least a portion of the operation time of operation 820 and the operation time of operation 830 overlapping. However, it is not limited thereto. For example, the external electronic device (102) may perform operation 820 and operation 830 sequentially. For example, the external electronic device (102) performing operation 820 and operation 830 sequentially may involve the external electronic device (102) performing one operation after completing one operation of operation 820 or operation 830.

[0171] In operation 820, the external electronic device (102) can perform a duplicate prevention procedure based on whether there is a duplicate of the file.

[0172] In one embodiment, the external electronic device (102) may perform a duplicate prevention procedure based on whether there exists a file among a plurality of files stored in the external electronic device (102) that corresponds to a file to be shared by the electronic device (101). In one embodiment, the external electronic device (102) may perform a duplicate prevention procedure based on whether there exists a file among a plurality of files stored in the external electronic device (102) that has identification information corresponding to identification information of a file to be shared by the electronic device (101). In one embodiment, the external electronic device (102) may perform a duplicate prevention procedure based on whether identification information of a file to be shared by the electronic device (101) exists in the external electronic device (102) among the identification information stored in the external electronic device (102).

[0173] In one embodiment, an external electronic device (102) may receive a query regarding whether a file is duplicated from an electronic device (101) via a message channel (350). For example, the external electronic device (102) may receive a query regarding whether a file is duplicated from the electronic device (101) via a specified API (e.g., isExistHash). In one embodiment, the query regarding whether a file is duplicated may include identification information of at least one file to be transmitted by the electronic device (101) to the external electronic device (102). In one embodiment, the identification information may be a hash value of the file and / or a checksum.

[0174] In one embodiment, the external electronic device (102) can identify whether a file is duplicated based on a hash value represented by a specified API (e.g., isExistHash). In one embodiment, the external electronic device (102) can determine whether a file having a hash value corresponding to the hash value represented by the specified API (e.g., isExistHash) is stored in the file storage (345). In one embodiment, the external electronic device (102) can determine whether a hash value corresponding to the hash value represented by the specified API (e.g., isExistHash) is stored in the file storage (345).

[0175] In one embodiment, the external electronic device (102) may transmit a response to a query regarding whether a file is duplicated to the electronic device (101) via a message channel (350). For example, the external electronic device (102) may transmit a response to a query regarding whether a file is duplicated to the electronic device (101) including a specified field (e.g., HashFlag). In one embodiment, the response to the query may indicate whether the hash value of the file is duplicated. In one embodiment, the hash value duplication may indicate whether the hash value of the file stored in the memory (235) (or file storage (345)) of the external electronic device (102) corresponds to the hash value of at least one file transmitted by the electronic device (101) to the external electronic device (102).

[0176] In one embodiment, an external electronic device (102) may receive a query regarding the file transfer status from an electronic device (101). For example, the external electronic device (102) may receive a query regarding the file transfer status from the electronic device (101) via a specified API (e.g., onReceiveStatusRequest).

[0177] In one embodiment, an external electronic device (102) may transmit a response to a query regarding the file transmission status to an electronic device (101) via a message channel (350). For example, the external electronic device (102) may transmit a response to the query to the electronic device (101) via a specified API (e.g., ReceiveStatus). In one embodiment, the response to the query may indicate the file transmission status. In one embodiment, the file transmission status may indicate one of the following: before file transmission, during file transmission, or completed file transmission.

[0178] In one embodiment, the external electronic device (102) may perform a duplicate prevention procedure based on transmitting a response to a query regarding whether a file is duplicated and / or a response to a query regarding the transmission status of the file. In one embodiment, the duplicate prevention procedure may include the external electronic device (102) receiving a notification from the electronic device (101) indicating that it has not initiated the transmission of the file for which sharing is requested. In one embodiment, the duplicate prevention procedure may include the external electronic device (102) receiving a notification from the electronic device (101) indicating that it has stopped the transmission of the file for which sharing is requested that is currently being transmitted. In one embodiment, the duplicate prevention procedure may include the external electronic device (102) deleting duplicate files among the files for which transmission is completed from the electronic device (101). In one embodiment, the duplicate prevention procedure may include the external electronic device (102) receiving a request from the electronic device (101) to delete the file for which sharing is requested that has been transmitted. In one embodiment, the duplication prevention procedure can be described with reference to FIGS. 9 and FIGS. 10.

[0179] In operation 830, the external electronic device (102) can receive a file from the electronic device (101). In one embodiment, the external electronic device (102) can receive multiple files from the electronic device (101) in a specified transmission order if the file for which sharing is requested includes multiple files.

[0180] In one embodiment, an external electronic device (102) may receive a notification of file transmission from the electronic device (101) to be transmitted by the electronic device (101). For example, the external electronic device (102) may receive a notification of file transmission from the electronic device (101) via a specified API (e.g., onSendFile).

[0181] In one embodiment, an external electronic device (102) may transmit a response to an electronic device (101) regarding a file transmission notification via a message channel (350). For example, the external electronic device (102) may transmit a response to an electronic device (101) regarding a file transmission notification via a specified API (e.g., onSuccess).

[0182] In one embodiment, an external electronic device (102) can receive a file from an electronic device (101) through a data channel (355) based on transmitting a response to a file transmission notification through a message channel (350).

[0183] FIG. 9 is a flowchart illustrating operations to prevent duplicate sharing of files of an external electronic device according to one embodiment.

[0184] FIG. 9 can be described with reference to FIG. 1 through 8. The operations of FIG. 9 may be included in the operation 820 of FIG. 8.

[0185] Referring to FIG. 9, in operation 910, an external electronic device (102) may receive identification information of a file from an electronic device (101). For example, the external electronic device (102) may receive identification information of a file from the electronic device (101) via a specified API (e.g., isExistHash). In one embodiment, the external electronic device (102) may receive identification information of each of the files to be shared from the electronic device (101). In one embodiment, the identification information of a file may be a unique value of the file. In one embodiment, the identification information of a file may be a hash value of the file and / or a checksum.

[0186] In operation 920, the external electronic device (102) can identify whether there is a duplicate of a file. For example, the external electronic device (102) can identify the identification information received from the electronic device (101) among the identification information of each file contained in the memory (235) (or file storage (345)) of the external electronic device (102) based on receiving the identification information of the file. For example, the external electronic device (102) can identify the corresponding identification information in the file storage (345) based on the identification information received from the electronic device (101).

[0187] In operation 930, the external electronic device (102) can determine whether a file is duplicated. For example, the external electronic device (102) can determine whether a file is duplicated based on a hash value received from the electronic device (101).

[0188] For example, the external electronic device (102) can determine that a file is duplicated based on the identification information corresponding to the identification information received from the electronic device (101) being searched in the file storage (345). For example, the external electronic device (102) can determine that a file is not duplicated based on the identification information corresponding to the identification information received from the electronic device (101) not being searched in the file storage (345).

[0189] Based on the determination in operation 930 that the file is duplicated, the external electronic device (102) can perform operation 940. Based on the determination in operation 930 that the file is not duplicated, the external electronic device (102) can perform operation 950.

[0190] In operation 950, the external electronic device (102) may transmit a response to the electronic device (101) that causes the file to be shared. The external electronic device (102) may transmit a response to the electronic device (101) that causes the file to be shared, including a specified field (e.g., HashFlag). For example, the external electronic device (102) may transmit a hash flag having a specified other value (e.g., 0) to the electronic device (101). For example, the external electronic device (102) may transmit a hash flag having a specified other value (e.g., 0) to the electronic device (101) based on the fact that identification information corresponding to identification information received from the electronic device (101) is not found in the file storage (345).

[0191] In operation 940, the external electronic device (102) may transmit a response to the electronic device (101) that causes the file to stop sharing. The external electronic device (102) may transmit a response to the electronic device (101) that causes the file to stop sharing, including a specified field (e.g., HashFlag). For example, the external electronic device (102) may transmit a hash flag having a specified value (e.g., 1) to the electronic device (101). For example, the external electronic device (102) may transmit a hash flag having a specified value (e.g., 1) to the electronic device (101) based on the identification information corresponding to the identification information received from the electronic device (101) being retrieved from the file storage (345).

[0192] According to an embodiment, the external electronic device (102) may delete duplicate files when the transmission of duplicate files is complete. For example, the external electronic device (102) may delete duplicate files based on receiving a request to delete duplicate files from the electronic device (101). However, it is not limited thereto. For example, the external electronic device (102) may determine whether a file received from the electronic device (101) is a duplicate file. For example, the external electronic device (102) may delete a file received from the electronic device (101) that is determined to be a duplicate file. In one embodiment, the determination of whether a file is a duplicate file may be based on comparing the hash value of a file received from the electronic device (101) with the hash value of each of the files stored in the external electronic device (102). For example, the external electronic device (102) can determine that the file received from the device (101) is a duplicate file based on the fact that the hash value of the file received from the electronic device (101) is compared with the hash values ​​of the files stored within the external electronic device (102).

[0193] FIG. 10 is a flowchart illustrating operations to prevent duplicate sharing of files of an external electronic device according to one embodiment.

[0194] FIG. 10 can be described with reference to FIGS. 1 through 9. The operations of FIG. 10 may be included in the operations 930 and 940 of FIG. 9.

[0195] Referring to FIG. 10, in operation 1010, the external electronic device (102) can identify that a file is duplicated. For example, the external electronic device (102) can identify that a file is duplicated based on the identification information received from the electronic device (101) being identified among the identification information of each file contained in the memory (235) (or file storage (345)) of the external electronic device (102). For example, the external electronic device (102) can identify that a file is duplicated based on the identification information corresponding to the identification information received from the electronic device (101) being searched in the file storage (345).

[0196] In operation 1020, the external electronic device (102) can determine whether the file is being transmitted or not. For example, the external electronic device (102) can determine whether the file is being transmitted or not based on receiving a query about the file transmission status from the electronic device (101) through a specified API (e.g., onReceiveStatusRequest).

[0197] Based on determining in operation 1020 that the file is in transmission, the external electronic device (102) may perform operation 1030. For example, operation 1030 may be performed by the external electronic device (102) when the file is duplicated and the file transmission status is in transmission. Based on determining in operation 1020 that the file is not yet transmitted, the external electronic device (102) may perform operation 1040. For example, operation 1040 may be performed by the external electronic device (102) when the file is duplicated and the file transmission status is not yet transmitted.

[0198] In operation 1030, the external electronic device (102) may send a request to the electronic device (101) that causes the file to stop being transmitted. The external electronic device (102) may send a request to the electronic device (101) that causes the file to stop being transmitted through a specified API (e.g., ReceiveStatus). For example, the external electronic device (102) may cause the electronic device (101) to stop the file transmission by sending a specified API (e.g., ReceiveStatus) to the electronic device (101) that indicates the file transmission status is that the file is being transmitted.

[0199] For example, the electronic device (101) may stop the transmission of duplicate files so that the transmission of duplicate files is not completed, based on receiving a specified API (e.g., ReceiveStatus) indicating that the transmission status of the file is in progress. For example, the electronic device (101) may indicate to the external electronic device (102) that the transmission of duplicate files is not to be continued, via a specified API (e.g., onCancelSendFile), based on receiving a specified API (e.g., ReceiveStatus) indicating that the transmission status of the file is in progress.

[0200] In operation 1040, the external electronic device (102) may send a response to the electronic device (101) that causes the file to be shared. The external electronic device (102) may send a request to the electronic device (101) that causes the file to be shared through a specified API (e.g., ReceiveStatus). For example, the external electronic device (102) may cause the electronic device (101) to delete the file from the shared list by sending a specified API (e.g., ReceiveStatus) to the electronic device (101) that indicates the file's transfer status is pre-transfer. For example, the electronic device (101) may delete the file from the shared list so that the transfer of duplicate files is not initiated based on receiving a specified API (e.g., ReceiveStatus) that indicates the file's transfer status is pre-transfer.

[0201] According to an embodiment, the external electronic device (102) may delete duplicate files when the transmission of duplicate files is complete. For example, the external electronic device (102) may delete duplicate files based on receiving a request to delete duplicate files from the electronic device (101). For example, the external electronic device (102) may receive a request to delete duplicate files from the electronic device (101) via a specified API (e.g., onDeleteReceivedFile) when the transmission of duplicate files is complete. For example, the external electronic device (102) may delete duplicate files that have been transmitted based on receiving a specified API (e.g., onDeleteReceivedFile) requesting the deletion of duplicate files. For example, the external electronic device (102) may determine whether a file received from the electronic device (101) is a duplicate file. For example, the external electronic device (102) may delete a file from the electronic device (101) that is determined to be a duplicate file. In one embodiment, the determination of whether a file is a duplicate may be based on comparing the hash value of a file received from an electronic device (101) with the hash value of each of the files stored in an external electronic device (102). For example, the external electronic device (102) may determine that a file received from the device (101) is a duplicate file based on the fact that the hash value of a file received from the electronic device (101) is confirmed against the hash values ​​of the files stored in the external electronic device (102).

[0202] FIG. 11 is a flowchart illustrating operations between an electronic device and an external electronic device according to one embodiment.

[0203] FIG. 11 can be explained with reference to FIGS. 1 to 10.

[0204] Referring to FIG. 11, in operation 1110, the duplication handler (320) may send a file sharing request to the file storage (345) via a specified API (e.g., onSendFileRequest). For example, the duplication handler (320) may send a file sharing request to the duplication handler (325) via a specified API (e.g., onSendFileRequest), and the duplication handler (325) may forward the file sharing request from the duplication handler (320) to the file storage (345). For example, the duplication handler (325) may forward the file sharing request from the duplication handler (320) to the file storage (345) based on the determination that the file is received. In one embodiment, the file sharing request may include file information of at least one file that the electronic device (101) is to send to an external electronic device (102). In one embodiment, the file information may be part of the metadata of at least one file to be transmitted. For example, the file information may include the file name and / or extension (or file type) of at least one file to be transmitted.

[0205] In one embodiment, the file storage (345) can identify whether there is a duplicate of file information. In one embodiment, the file storage (345) can determine whether a file having file information corresponding to file information (e.g., file name, and / or extension (or file type)) included in a specified API (e.g., onSendFileRequest) is stored in the file storage (345). In one embodiment, the file storage (345) can determine whether file information corresponding to file information (e.g., file name, and / or extension (or file type)) included in a specified API (e.g., onSendFileRequest) is stored in the file storage (345).

[0206] In operation 1115, the file storage (345) may send a response to a file sharing request to the duplication handler (320) via a specified API (e.g., onReceiveFile). For example, the file storage (345) may send a response to a file sharing request to the duplication handler (325) via a specified API (e.g., onReceiveFile), and the duplication handler (325) may forward the response to the file sharing request from the file storage (345) to the duplication handler (320). In one embodiment, the response to the file sharing request may indicate whether the file sharing request is approved or rejected. In one embodiment, the response to the file sharing request may indicate whether there is a duplicate of file information. In one embodiment, the duplication of file information may indicate whether the file name and / or extension (or file type) of a file stored in the memory (235) (or file storage (345)) of the external electronic device (102) corresponds to the file name and / or extension (or file type) of at least one file that the electronic device (101) is to transmit to the external electronic device (102).

[0207] In operation 1120, the duplication handler (320) can notify the duplication handler (325) of the transfer of the file through a specified API (e.g., onSendFile).

[0208] In operation 1125, the duplication handler (325) can send a response to the duplication handler (320) regarding the file transfer notification via a specified API (e.g., onSuccess).

[0209] In one embodiment, the duplication handler (320) may instruct the file transfer handler (330) to transfer the file based on receiving a specified API (e.g., onSuccess) that approves the transfer of the file. For example, the file transfer handler (330) may transfer the file to the file transfer handler (335) based on the instruction to transfer the file. For example, the file transfer handler (335) may store the file transferred from the file transfer handler (330) in the file storage (345).

[0210] In operation 1130, the duplication handler (320) can query the duplication handler (325) for the file transfer status through a specified API (e.g., onReceiveStatusRequest).

[0211] In one embodiment, the duplication handler (325) can identify the file transfer status based on a specified API (e.g., onReceiveStatusRequest). In one embodiment, the file transfer status may indicate one of the file before transfer, file during transfer, or file transfer completed.

[0212] In operation 1135, the duplication handler (325) may send a response to the query to the duplication handler (320) via a specified API (e.g., ReceiveStatus). For example, the response to the query may indicate the file transfer status. In one embodiment, the file transfer status may indicate one of the file before transfer, file during transfer, or file transfer completed.

[0213] In one embodiment, the duplication handler (320) may determine whether to perform operation 1140 and / or operation 1150 based on the file transfer status. For example, the duplication handler (320) may perform operation 1160 without performing operations 1140 and operation 1150 based on the file transfer status indicating that the file transfer is complete. In one embodiment, as the duplication handler (320) does not perform operations 1140 and operation 1150, operations 1145 and operation 1155 may also not be performed.

[0214] For example, the duplication handler (320) may sequentially perform operations 1140 and 1150 based on whether the file transfer status indicates that the file is before transfer or during transfer.

[0215] In operation 1140, the duplication handler (320) may request file metadata from the file storage (340) via a specified API (e.g., extractMetaData). For example, the duplication handler (320) may request file metadata from the file storage (340) via a specified API (e.g., extractMetaData) sequentially for files to be transmitted to an external electronic device (102). For example, the duplication handler (320) may request file metadata from the file storage (340) via a specified API (e.g., extractMetaData) prioritizing duplicate files identified via a specified API (e.g., onReceiveFile) over non-duplicate files. For example, the duplication handler (320) may request file metadata from the file storage (340) via a specified API (e.g., extractMetaData) in reverse order of transmission determined via a specified API (e.g., onReceiveFile). In one embodiment, the transmission order determined by a specified API (e.g., onReceiveFile) may be a transmission order based on the likelihood of duplicate files. For example, the transmission order determined by a specified API (e.g., onReceiveFile) may be a transmission order in which the file determined to have a high likelihood of duplication among the files sorted according to the input order has the latest order.

[0216] In one embodiment, the file storage (340) can sequentially identify the metadata of the files to be transmitted to the external electronic device (102).

[0217] In operation 1145, the file storage (340) can transmit metadata to the duplication handler (320). For example, the file storage (340) can sequentially transmit metadata to the duplication handler (320) for files to be transmitted to an external electronic device (102).

[0218] In operation 1150, the duplication handler (320) may transmit meta information to the file storage (345) via a specified API (e.g., isExistMetaData). For example, the duplication handler (320) may transmit meta information to the duplication handler (325) via a specified API (e.g., isExistMetaData), and the duplication handler (325) may transmit meta information from the duplication handler (320) to the file storage (345). In one embodiment, the meta information transmitted to the file storage (345) via isExistMetaData may include the extension (or type of file) and / or file size of at least one file to be transmitted, but is not limited thereto. For example, the meta information transmitted to the file storage (345) via isExistMetaData may indicate the time of creation and / or specific information of the file (e.g., in the case of an image, camera information, camera settings, and / or location information).

[0219] In one embodiment, the file storage (345) can identify whether there is a duplicate of file information based on meta information transmitted to the file storage (345) via isExistMetaData. For example, the file storage (345) can identify whether the file extension (or file type) and / or file size of a file stored in the file storage (345) corresponds to at least one file extension (or file type) and / or file size that the electronic device (101) is to transmit to an external electronic device (102).

[0220] In operation 1155, the file storage (345) may send a response to isExistMetaData containing a specified field (e.g., MetaDataFlag) to the duplication handler (320). For example, the file storage (345) may send a response to isExistMetaData containing a specified field (e.g., MetaDataFlag) to the duplication handler (325), and the duplication handler (325) may forward a response to isExistMetaData containing a specified field (e.g., MetaDataFlag) from the file storage (345) to the duplication handler (320). In one embodiment, the reference value of the specified field (e.g., MetaDataFlag) may be "NULL". In one embodiment, if the reference value of a specified field (e.g., MetaDataFlag) is "NULL", the duplication handler (320) and / or file storage (345) may determine that a specified API (e.g., isExistMetaData) has not been called. In one embodiment, if the specified field (e.g., MetaDataFlag) indicates a specified value (e.g., 1, or True), it may indicate that the file extension (or file type), and / or file size of a file stored in file storage (345) corresponds to at least one file extension (or file type), and / or file size of which the electronic device (101) is to transmit to an external electronic device (102). In one embodiment, if a specified field (e.g., MetaDataFlag) indicates another specified value (e.g., 0, or False), it may indicate that the file extension (or file type), and / or file size stored in the file storage (345) does not correspond to at least one file extension (or file type), and / or file size that the electronic device (101) is to transmit to an external electronic device (102).

[0221] In one embodiment, the duplication handler (320) can determine the order of transmission of files to be transmitted based on whether there is duplication of meta information. For example, the duplication handler (320) can determine the order of transmission of files to be transmitted based on the value (e.g., 0 or 1) indicated by a specified field (e.g., MetaDataFlag).

[0222] In operation 1160, the duplication handler (320) may request file identification information from the file storage (340) via a specified API (e.g., makeHash). For example, the duplication handler (320) may request file identification information from the file storage (340) via a specified API (e.g., makeHash) sequentially for files to be transferred to an external electronic device (102). For example, the duplication handler (320) may request file identification information from the file storage (340) via a specified API (e.g., makeHash) in priority over non-duplicate files for duplicate files identified by a specified field (e.g., MetaDataFlag). For example, the duplication handler (320) may request file identification information from the file storage (340) in priority for files where the specified field (e.g., MetaDataFlag) indicates a duplicate file.

[0223] In one embodiment, the file storage (340) can sequentially identify file identification information for files to be transmitted to an external electronic device (102). For example, if there is no file identification information for files to be transmitted to the external electronic device (102), the file storage (340) can generate file identification information for files to be transmitted to the external electronic device (102). For example, the file storage (340) can generate file identification information for files to be transmitted based on a specified function (e.g., SHA256). For example, the file storage (340) can generate a checksum for the hash value of the file to be transmitted generated based on a specified function (e.g., SHA256). In one embodiment, the file storage (340) can identify the hash value and / or checksum of the file to be transmitted as file identification information for files to be transmitted.

[0224] In operation 1165, the file storage (340) may transmit a hash value (or checksum) to the duplication handler (320). For example, the file storage (340) may sequentially transmit a hash value (or checksum) to the duplication handler (320) for files to be transmitted to an external electronic device (102).

[0225] In operation 1170, the duplication handler (320) may query the file storage (345) for whether there is a duplicate of a file through a specified API (e.g., isExistHash). For example, the duplication handler (320) may send a query for whether there is a duplicate of a file to the duplication handler (325) through a specified API (e.g., isExistHash), and the duplication handler (325) may forward the query for whether there is a duplicate of a file from the duplication handler (320) to the file storage (345). In one embodiment, the query for whether there is a duplicate of a file may include identification information of at least one file to be transmitted by the electronic device (101) to an external electronic device (102). In one embodiment, the identification information may be a hash value of the file and / or a checksum.

[0226] For example, the file storage (345) can identify a hash value received from the electronic device (101) among the hash values ​​of files contained in memory (235) based on receiving a specified API (e.g., isExistHash). In one embodiment, the hash values ​​of files contained in memory (235) may include hash values ​​that existed in the external electronic device (102) prior to receiving an input for a file sharing request from the electronic device (101). However, it is not limited thereto. For example, the hash values ​​of files contained in memory (235) may include hash values ​​generated by the external electronic device (102) after receiving an input for a file sharing request from the electronic device (101). For example, the file storage (345) can generate a hash value for at least one file among a plurality of files stored in the file storage (345) for which the hash value is not identified, based on receiving a hash value received from the electronic device (101). Afterward, the file storage (345) can identify whether there are duplicate files based on comparing the generated hash value with the hash value received from the electronic device (101).

[0227] In operation 1175, the file storage (345) may transmit a response to a query containing a specified field (e.g., HashFlag) to the duplication handler (320). For example, the file storage (345) may transmit a response to a query containing a specified field (e.g., HashFlag) to the duplication handler (325), and the duplication handler (325) may transmit a response to a query containing a specified field (e.g., HashFlag) from the file storage (345) to the duplication handler (320). For example, the file storage (345) may transmit a hash flag having a specified value (e.g., 1) indicating that the hash value received from the electronic device (101) is identified among the hash values ​​of files contained in memory (235) to the duplication handler (320). For example, the file storage (345) can transmit a hash flag to the duplication handler (320) having a specified value (e.g., 0) indicating that the hash value received from the electronic device (101) among the hash values ​​of files contained in memory (235) is not identified.

[0228] In one embodiment, the reference value of a specified field (e.g., HashFlag) may be "NULL". In one embodiment, if the reference value of a specified field (e.g., HashFlag) is "NULL", the duplication handler (320) and / or file storage (345) may determine that a specified API (e.g., isExistHash) has not been called. In one embodiment, if a specified field (e.g., isExistHash) indicates a specified value (e.g., 1, or True), it may indicate that a file stored in file storage (345) is duplicated in a file that electronic device (101) will send to an external electronic device (102). In one embodiment, if a specified field (e.g., isExistHash) indicates another specified value (e.g., 0, or False), it may indicate that a file stored in file storage (345) is not duplicated in a file that electronic device (101) will send to an external electronic device (102).

[0229] In operation 1180, the duplication handler (320) can query the duplication handler (325) for the status of file transfer through a specified API (e.g., onReceiveStatusRequest).

[0230] In operation 1185, the duplication handler (325) can send a response to the query to the duplication handler (320) via a specified API (e.g., ReceiveStatus).

[0231] In one embodiment, the duplication handler (320) may determine whether to perform the operations exemplified by any one of FIGS. 12a to 12c based on the file transmission status. For example, the duplication handler (320) may perform operation 1210 of FIG. 12a based on the file transmission status indicating that the file transmission is complete. For example, the duplication handler (320) may perform operation 1230 of FIG. 12b based on the file transmission status indicating that the file is in the middle of transmission. For example, the duplication handler (320) may perform operation 1250 of FIG. 12c based on the file transmission status indicating that the file transmission is before transmission.

[0232] In one embodiment, the duplication handler (320) may perform operations defined by one of FIGS. 12a to FIGS. 12c based on receiving a response to a query from the duplication handler (325).

[0233] According to an embodiment, the duplication handler (320) may call a specified API (e.g., onReceiveStatusRequest) periodically, but is not limited thereto. For example, the duplication handler (320) may call a specified API (e.g., onReceiveStatusRequest) a specified number of times per file.

[0234] According to an embodiment, the order of execution of the operations of FIG. 11 may be changed. For example, operations 1120 and 1125 may be performed after operations 1130 to 1180. For example, the electronic device (101) may first identify whether there are duplicates of files to be transmitted through operations 1130 to 1180, and then perform operations 1120 and 1125 only on files determined not to be duplicates.

[0235] FIG. 12a is a flowchart illustrating operations for deleting files between an electronic device and an external electronic device according to one embodiment.

[0236] FIG. 12a can be described with reference to FIG. 1 through 11. The operations of FIG. 12a can be performed after operation 1185 of FIG. 11.

[0237] Referring to FIG. 12a, in operation 1210, the duplication handler (320) may request the file storage (345) to delete duplicate files via a specified API (e.g., onDeleteReceivedFile). For example, the duplication handler (320) may request the file storage (345) to delete duplicate files via a specified API (e.g., onDeleteReceivedFile) when it is identified that the transfer of duplicate files is complete via a specified API (e.g., ReceiveStatus) received via operation 1185.

[0238] In one embodiment, the file storage (345) may delete duplicate files when the transfer of duplicate files is complete. For example, the file storage (345) may delete duplicate files based on receiving a specified API (e.g., onDeleteReceivedFile) from the duplication handler (320).

[0239] In operation 1220, the file storage (345) may send a response to the request to delete a file to the duplication handler (320) via a specified API (e.g., onSuccess). For example, the file storage (345) may send a response to the duplication handler (320) indicating that the deletion of the file is complete via a specified API (e.g., onSuccess).

[0240] According to an embodiment, the external electronic device (102) may delete duplicate files regardless of a specified API (e.g., onDeleteReceivedFile) from the electronic device (101). For example, the file storage (345) of the external electronic device (102) may determine whether a file received from the electronic device (101) is a duplicate file. For example, the file storage (345) may delete a file from the electronic device (101) that is determined to be a duplicate file. In one embodiment, the determination of whether a file is a duplicate may be based on comparing the hash value of the file received from the electronic device (101) with the hash value of each of the files stored within the external electronic device (102). For example, the file storage (345) may determine that a file received from the device (101) is a duplicate file based on the hash value of the file received from the electronic device (101) being confirmed against the hash values ​​of the files stored within the external electronic device (102).

[0241] FIG. 12b is a flowchart illustrating operations for canceling file sharing between an electronic device and an external electronic device according to one embodiment.

[0242] FIG. 12b can be described with reference to FIG. 1 through 11. The operations of FIG. 12b can be performed after operation 1185 of FIG. 11.

[0243] Referring to FIG. 12b, in operation 1230, the duplication handler (320) may indicate to the duplication handler (325) that the transfer of duplicate files is no longer proceeding via a specified API (e.g., onCancelSendFile). For example, if the duplication handler (320) identifies that the transfer of duplicate files is in progress via a specified API (e.g., ReceiveStatus) received via operation 1185, it may indicate to the file storage (345) that the transfer of duplicate files is no longer proceeding via a specified API (e.g., onCancelSendFile).

[0244] In one embodiment, the duplication handler (320) can control the file transfer handler (330) so that the transfer of duplicate files is not completed. In one embodiment, the duplication handler (320) can control the file transfer handler (330) to stop the file transfer handler (330) from transferring duplicate files to the file transfer handler (335) when it is identified through a specified API (e.g., ReceiveStatus) received via operation 1185 that duplicate files are being transferred.

[0245] In operation 1240, the duplication handler (325) can send a response to the duplication handler (320) via a specified API (e.g., onSuccess) to notify that the transfer of duplicate files is no longer proceeding.

[0246] According to an embodiment, an external electronic device (102) may delete a file for which transmission has not proceeded based on receiving a specified API (e.g., onCancelSendFile) from an electronic device (101). For example, a duplication handler (325) of the external electronic device (102) may transmit information about the file indicated by onCancelSendFile to a file storage (345) based on receiving a specified API (e.g., onCancelSendFile). For example, the file storage (345) may delete the file indicated by onCancelSendFile (or the file for which transmission has been interrupted).

[0247] FIG. 12c is a flowchart illustrating operations for file sharing between an electronic device and an external electronic device according to one embodiment.

[0248] FIG. 12c can be described with reference to FIG. 1 through 11. The operations of FIG. 12c can be performed after operation 1185 of FIG. 11.

[0249] Referring to FIG. 12c, in operation 1250, the duplication handler (320) can notify the duplication handler (325) of the next file to be sent via a specified API (e.g., onSendFile). For example, the duplication handler (320) can notify the duplication handler (325) of the next file to be sent via a specified API (e.g., onSendFile) based on the specified API (e.g., ReceiveStatus) sent by the duplication handler (325) indicating that the file has been sent.

[0250] In operation 1260, the duplication handler (325) can receive a response from the duplication handler (320) regarding the file transfer notification via a specified API (e.g., onSuccess).

[0251] FIG. 13a is a drawing illustrating a user interface (UI) for setting duplicate file sharing according to one embodiment.

[0252] FIG. 13a can be explained with reference to FIGS. 1 to 12c.

[0253] In one embodiment, the electronic device (101) (or external electronic device (102)) may display a screen (1301) on a display (260). In one embodiment, the screen (1301) may include an item (1310) for setting the transmission of duplicate files (or the reception of duplicate files). In one embodiment, the electronic device (101) (or external electronic device (102)) may perform a duplicate prevention procedure based on enabling a toggle (1315) within the item (1310). In one embodiment, the electronic device (101) (or external electronic device (102)) may not perform a duplicate prevention procedure based on disabling a toggle (1315) within the item (1310).

[0254] For example, the electronic device (101) (or, external electronic device (102)) may perform operation 420 with operation 430 after operation 410 based on activating the toggle (1315) within item (1310). For example, the electronic device (101) (or, external electronic device (102)) may perform operation 820 with operation 830 after operation 810 based on activating the toggle (1315) within item (1310).

[0255] In one embodiment, the electronic device (101) (or, external electronic device (102)) may perform operation 430 without performing operation 420 after operation 410, based on disabling the toggle (1315) within the item (1310). For example, the electronic device (101) (or, external electronic device (102)) may perform operation 830 without performing operation 820 after operation 810, based on disabling the toggle (1315) within the item (1310).

[0256] For example, while the toggle (1315) is disabled, the external electronic device (102) may store duplicate files received from the electronic device (101) with a different name from the existing file. For example, the name of the transferred duplicate file may be a name in which a specified value (e.g., a number) is added to the name of the existing file. However, it is not limited thereto. For example, if the transferred duplicate file is stored in a different location (e.g., a different folder) from the existing file on the external electronic device (102), the name of the transferred duplicate file may be the same as the name of the existing file.

[0257] FIG. 13b is a drawing illustrating a UI displayed in response to a file sharing request according to one embodiment.

[0258] FIG. 13b can be explained with reference to FIGS. 1 to 12c.

[0259] In one embodiment, the electronic device (101) may display a UI (1320) indicating that a file sharing request has been received based on receiving a file sharing request from an external electronic device (102) via a specified API (e.g., onSendFileRequest). For example, referring to FIG. 13b, the electronic device (101) may display a popup-type UI (1320) within a currently displayed screen (1302) based on receiving a file sharing request. In one embodiment, the UI (1320) may indicate the content of the file sharing request. For example, the UI (1320) may include an area (1321) indicating that file sharing is requested and / or an area (1323) indicating the types of files to be shared. The area (1321) indicating that file sharing is requested may include the number of files to be shared. The area (1323) indicating the types of files to be shared may include a visual object (e.g., an image) representing the files to be shared.

[0260] In one embodiment, the electronic device (101) may receive an input indicating whether to receive a shared file. For example, the electronic device (101) may decide not to receive the file based on receiving an input selecting an item (1325) indicating rejection within the UI (1320). For example, the electronic device (101) may decide to receive the file based on receiving an input selecting an item (1327) indicating acceptance within the UI (1320).

[0261] In one embodiment, the electronic device (101) may transmit a response to a file sharing request to an external electronic device (102) via a message channel (350). For example, the electronic device (101) may transmit a response to a file sharing request to an external electronic device (102) via a designated API (e.g., onReceiveFile). In one embodiment, the response to the file sharing request may indicate whether the file sharing request is approved or rejected. For example, the electronic device (101) may transmit a response indicating rejection of the file sharing request to an external electronic device (102) via a designated API (e.g., onReceiveFile) based on receiving an input selecting an item (1325) indicating rejection within the UI (1320). For example, the electronic device (101) may send a response indicating acceptance of a file sharing request to an external electronic device (102) via a specified API (e.g., onReceiveFile) based on receiving an input selecting an item (1327) indicating acceptance within the UI (1320).

[0262] FIG. 13c is a drawing illustrating a UI displayed as file sharing is completed, according to one embodiment.

[0263] FIG. 13c can be described with reference to FIG. 1 through FIG. 12c. The screen (1303) of FIG. 13c may be a screen displayed after the screen (1302) of FIG. 13b is displayed. For example, the screen (1303) of FIG. 13c may be a screen displayed after the file sharing request is accepted and the file transfer is completed.

[0264] In one embodiment, the electronic device (101) can identify files that have been delivered from an external electronic device (102) through specified APIs (e.g., onSendFileRequest, onSendFile, onCancelSendFile, and / or onDeleteReceiveFile). In one embodiment, the electronic device (101) can identify files that the electronic device (101) has received from a list of files that the external electronic device (102) will share with the electronic device (101) through specified APIs (e.g., onSendFileRequest, onSendFile, onCancelSendFile, and / or onDeleteReceiveFile).

[0265] In one embodiment, the electronic device (101) may display a UI (1330) indicating that sharing is complete based on receiving a signal from an external electronic device (102) indicating that sharing of files is complete.

[0266] For example, referring to FIG. 13c, the electronic device (101) may display a popup-type UI (1330) within the currently displayed screen (1303) based on receiving a signal indicating that sharing is complete. In one embodiment, the UI (1330) may indicate that file sharing is complete. For example, the UI (1330) may include an area (1331) indicating that file sharing is complete, an area (1333) indicating shared files, and / or an area (1335) indicating unshared files. The area (1333) indicating shared files may include thumbnails (or counts) of the shared files. The area (1335) indicating unshared files may include thumbnails (or counts) of the unshared files.

[0267] In one embodiment, the electronic device (101) may receive input related to the UI (1330). For example, the electronic device (101) may stop displaying the UI (1330) based on receiving input selecting an item (1337) indicating closing within the UI (1330). Accordingly, a screen (1303) in which the UI (1330) is not displayed may be displayed through the electronic device (101). For example, the electronic device (101) may display a screen of an application (e.g., a gallery application) for viewing files received from an external electronic device (102) based on receiving input selecting an item (1337) indicating opening within the UI (1330).

[0268] In one embodiment, the electronic device (101) can identify deleted files among files that have been partially transmitted from an external electronic device (102). In one embodiment, the electronic device (101) can display a UI indicating deleted files among files that have been partially transmitted from an external electronic device (102). In one embodiment, the deleted files may include files whose transmission was canceled or files for which deletion was requested via specified APIs (e.g., onCancelSendFile, and / or onDeleteReceiveFile). However, they are not limited thereto. For example, the deleted files may be files that are duplicates of existing files among the files received by the electronic device (101) from the external electronic device (102) without regard to specified APIs from the external electronic device (102).

[0269] The technical problems to be solved in this disclosure are not limited to those mentioned above, and other technical problems not mentioned will be clearly understood by those skilled in the art to which this disclosure belongs.

[0270] As described above, the electronic device (101) may include a communication circuit (290), at least one processor (120) including a processing circuit, and a memory (130) including one or more storage media for storing instructions. When the instructions are executed individually or collectively by the at least one processor (120), the electronic device (101) may cause the external electronic device (102) to transmit a hash value associated with said file to said external electronic device (102) via the communication circuit (290) based on receiving an input selecting a file to be transmitted to said external electronic device (102). When the instructions are executed individually or collectively by the at least one processor (120), the electronic device (101) may cause the external electronic device (101) to receive a response regarding said hash value from said external electronic device (102) via the communication circuit (290). The above response may indicate that a hash value corresponding to the transmitted hash value exists in the external electronic device (102). When the instructions are executed individually or collectively by the at least one processor (120), the electronic device (101) may cause the transmission of the file being transmitted to the external electronic device (102) to stop based on receiving the response.

[0271] When the above instructions are executed individually or collectively by the at least one processor (120), the electronic device (101) may determine whether the file is being transmitted to the external electronic device (102) based on receiving the response. When the above instructions are executed individually or collectively by the at least one processor (120), the electronic device (101) may cause the transmission of the file being transmitted to the external electronic device (102) to stop based on determining that the file is being transmitted to the external electronic device (102). When the above instructions are executed individually or collectively by the at least one processor (120), the electronic device (101) may cause the transmission of the file not to begin based on determining that the file has not yet been transmitted to the external electronic device (102).

[0272] When the above instructions are executed individually or collectively by the at least one processor (120), the electronic device (101) may cause the external electronic device (102) to query the status of the file based on receiving the response. When the above instructions are executed individually or collectively by the at least one processor (120), the electronic device (101) may cause the electronic device (101) to receive another response to the query indicating the reception status of the file. When the above instructions are executed individually or collectively by the at least one processor (120), the electronic device (101) may cause the electronic device (101) to determine whether the file is being transmitted to the external electronic device (102) based on the reception status.

[0273] When the above instructions are executed individually or collectively by the at least one processor (120), the electronic device (101) may cause the external electronic device (102) to request the deletion of the transmitted file based on the determination that the file has been transmitted to the external electronic device (102).

[0274] The above input may be an input for selecting a plurality of files including the above file. When the above instructions are executed individually or collectively by the at least one processor (120), the electronic device (101) may cause the electronic device (101) to transmit meta information of each of the plurality of files to the external electronic device (102) through the communication circuit (290). When the above instructions are executed individually or collectively by the at least one processor (120), the electronic device (101) may cause the electronic device (101) to receive another response regarding the meta information from the external electronic device (102). The other response may indicate whether meta information corresponding to the transmitted meta information exists in the external electronic device (102). When the above instructions are executed individually or collectively by the at least one processor (120), the electronic device (101) may cause the transmission order of the plurality of files to be determined based on receiving the other response, such that the transmission priority of some files among the plurality of files in which the meta information is present in the external electronic device (102) is lower than the transmission priority of other files in which the meta information is not present in the external electronic device (102).

[0275] The above meta information may include the names of each of the plurality of files.

[0276] When the above instructions are executed individually or collectively by the at least one processor (120), the electronic device (101) may cause the electronic device (101) to establish a communication connection for direct communication with the external electronic device (102) based on receiving the input selecting the file. Through the direct communication, the transmission of the hash value and the reception of the response may be performed.

[0277] When the above instructions are executed individually or collectively by the at least one processor (120), the electronic device (101) may be caused to identify the communication status of the direct communication. When the above instructions are executed individually or collectively by the at least one processor (120), the electronic device (101) may be caused to identify that the direct communication is released before the transmission of the file is completed, based on the communication status of the direct communication. When the above instructions are executed individually or collectively by the at least one processor (120), the electronic device (101) may be caused to perform the transmission of the hash value and the reception of the response via the communication circuit (290) and the server while the direct communication is released.

[0278] As described above, the electronic device (102) may include a communication circuit (295), at least one processor (225) including a processing circuit, and a memory (235) including one or more storage media for storing instructions. When the instructions are executed individually or collectively by the at least one processor (225), the electronic device (102) may cause the external electronic device (101) to receive a transmission request from the external electronic device (101) to transmit a file to the electronic device (102) via the communication circuit (295). When the instructions are executed individually or collectively by the at least one processor (225), the electronic device (102) may cause the electronic device (102) to receive a hash value associated with the file via the communication circuit (295) after receiving the transmission request. When the above instructions are executed individually or collectively by the at least one processor (225), the electronic device (102) may be caused to determine whether there exists a hash value corresponding to the received hash value among the hash values ​​within the electronic device (102). When the above instructions are executed individually or collectively by the at least one processor (225), the electronic device (102) may be caused to send a response to the external electronic device (101), which causes the external electronic device (101) to stop the transmission of the file that the external electronic device (101) is transmitting to the electronic device (102), based on the existence of the hash value corresponding to the received hash value.

[0279] When the above instructions are executed individually or collectively by the at least one processor (225), the electronic device (102) may cause to receive a query regarding the status of the file from the external electronic device (101) after transmitting the response. When the above instructions are executed individually or collectively by the at least one processor (225), the electronic device (102) may cause to identify the reception status of the file based on receiving the query. When the above instructions are executed individually or collectively by the at least one processor (225), the electronic device (102) may cause to transmit another response to the external electronic device (101) causing the external electronic device (101) to stop transmitting the file that is being transmitted to the external electronic device (101) based on the reception status of the file indicating that the file is being transmitted to the electronic device (102). When the above instructions are executed individually or collectively by the at least one processor (225), the electronic device (102) may cause the external electronic device (101) to send another response that causes the external electronic device (101) not to initiate the transmission of the file, based on the fact that the reception status of the file indicates that the file is not yet transmitted to the electronic device (102).

[0280] When the above instructions are executed individually or collectively by the at least one processor (225), the electronic device (102) may cause the electronic device (102) to transmit another response to the external electronic device (101) indicating that the file has been received by the electronic device (102). When the above instructions are executed individually or collectively by the at least one processor (225), the electronic device (102) may cause the electronic device (102) to receive a request to delete the received file from the external electronic device (101) after transmitting the other response indicating that the file has been received by the electronic device (102).

[0281] When the above instructions are executed individually or collectively by the at least one processor (225), the electronic device (102) may cause the electronic device (102) to receive meta-information for each of a plurality of files including the file from the external electronic device (101) via the communication circuit (295). When the above instructions are executed individually or collectively by the at least one processor (225), the electronic device (102) may cause the external electronic device (101) to transmit another response regarding the meta-information. The other response may indicate whether meta-information corresponding to the meta-information exists in the electronic device (102).

[0282] When the above instructions are executed individually or collectively by the at least one processor (225), they may cause the electronic device (102) to establish a communication connection for direct communication with the external electronic device (101) after receiving the transmission request. When the above instructions are executed individually or collectively by the at least one processor (225), they may cause the electronic device (102) to perform the reception of the hash value and the transmission of the response through the direct communication.

[0283] When the above instructions are executed individually or collectively by the at least one processor (225), the electronic device (102) may be caused to identify the communication status of the direct communication. When the above instructions are executed individually or collectively by the at least one processor (225), the electronic device (102) may be caused to identify that the direct communication is released before the reception of the file is completed, based on the communication status of the direct communication. When the above instructions are executed individually or collectively by the at least one processor (225), the electronic device (102) may be caused to perform the reception of the hash value and the transmission of the response via the server through the communication circuit (295) while the direct communication is released.

[0284] The above instructions, when executed individually or collectively by the at least one processor (225), cause the electronic device (102) to determine whether the file received from the external electronic device (101) corresponds to a file already stored in the memory (235). The above instructions, when executed individually or collectively by the at least one processor (225), cause the electronic device (102) to delete the received file based on the determination that the received file corresponds to the previously stored file.

[0285] A method as described above may be performed by an electronic device (101) including a communication circuit (290). The method may include an operation of transmitting a hash value associated with said file to said external electronic device (102) through said communication circuit (290) based on receiving an input selecting a file to be transmitted to said external electronic device (102). The method may include an operation of receiving a response regarding said hash value from said external electronic device (102) through said communication circuit (290). said response may indicate that a hash value corresponding to said transmitted hash value exists in said external electronic device (102). The method may include an operation of stopping the transmission of said file being transmitted to said external electronic device (102) based on receiving said response.

[0286] The above method may include an operation of determining whether the file is being transmitted to the external electronic device (102) based on receiving the response. The above method may include an operation of stopping the transmission of the file being transmitted to the external electronic device (102) based on determining that the file is being transmitted to the external electronic device (102). The above method may include an operation of not initiating the transmission of the file based on determining that the file has not yet been transmitted to the external electronic device (102).

[0287] The above method may include an operation of querying the external electronic device (102) for the status of the file based on receiving the response. The above method may include an operation of receiving another response to the query indicating the reception status of the file. The above method may include an operation of determining whether the file is being transmitted to the external electronic device (102) based on the reception status.

[0288] The above input may be an input for selecting a plurality of files including the above file. The method may include an operation of transmitting meta information for each of the plurality of files to the external electronic device (102) through the communication circuit (290). The method may include an operation of receiving another response regarding the meta information from the external electronic device (102). The other response may indicate whether meta information corresponding to the meta information exists in the external electronic device (102). Based on receiving the other response, the method may include an operation of determining the transmission order of the plurality of files such that the transmission priority of some files among the plurality of files in which the meta information exists in the external electronic device (102) is lower than the transmission priority of other files in which the meta information does not exist in the external electronic device (102).

[0289] The above method may include an operation of establishing a communication connection for direct communication with the external electronic device (102) based on receiving the input selecting the file. The above method may include an operation of transmitting the hash value and receiving the response through the direct communication.

[0290] The above method may include an operation of identifying the communication status of the direct communication. The above method may include an operation of identifying that the direct communication is released before the transmission of the file is completed, based on the communication status of the direct communication. The above method may include an operation of transmitting the hash value and receiving the response via the server through the communication circuit (290) while the direct communication is released.

[0291] The method described above may be performed by an electronic device (102) including a communication circuit (295). The method may include an operation in which, through the communication circuit (295), an external electronic device (101) receives a transmission request from the external electronic device (101) to transmit a file to the electronic device (102). The method may include an operation in which, after receiving the transmission request through the communication circuit (295), a hash value associated with the file is received. The method may include an operation in which a hash value corresponding to the received hash value exists among the hash values ​​within the electronic device (102). The method may include an operation in which, based on the existence of the hash value corresponding to the received hash value, a response is sent to the external electronic device (101) causing the external electronic device (101) to stop transmitting the file that is being transmitted to the electronic device (102).

[0292] A non-transitory computer-readable storage medium as described above may store a program containing instructions. When the instructions are executed individually or collectively by at least one processor (120) of an electronic device (101) including a communication circuit (290), the electronic device (101) may cause the electronic device (101) to transmit a hash value associated with said file to the external electronic device (102) via the communication circuit (290) based on receiving an input selecting a file to be transmitted to the external electronic device (102). When the instructions are executed individually or collectively by the at least one processor (120), the electronic device (101) may cause the electronic device (101) to receive a response regarding said hash value from the external electronic device (102) via the communication circuit (290). The above response may indicate that a hash value corresponding to the transmitted hash value exists in the external electronic device (102). When the instructions are executed individually or collectively by the at least one processor (120), the electronic device (101) may cause the transmission of the file being transmitted to the external electronic device (102) to stop based on receiving the response.

[0293] A non-transient computer-readable recording medium as described above may store a program containing instructions. When the instructions are executed individually or collectively by at least one processor (225) of an electronic device (102) including a communication circuit (295), the electronic device (102) may cause the external electronic device (101) to receive a transmission request from the external electronic device (101) to transmit a file to the electronic device (102) via the communication circuit (295). When the instructions are executed individually or collectively by the at least one processor (225), the electronic device (102) may cause the electronic device (102) to receive a hash value associated with the file via the communication circuit (295) after receiving the transmission request. When the above instructions are executed individually or collectively by the at least one processor (225), the electronic device (102) may be caused to determine whether there exists a hash value corresponding to the received hash value among the hash values ​​within the electronic device (102). When the above instructions are executed individually or collectively by the at least one processor (225), the electronic device (102) may be caused to send a response to the external electronic device (101), which causes the external electronic device (101) to stop the transmission of the file that the external electronic device (101) is transmitting to the electronic device (102), based on the existence of the hash value corresponding to the received hash value.

[0294] The effects obtainable from the present disclosure are not limited to those mentioned above, and other unmentioned effects will be clearly understood by those skilled in the art to which the present disclosure belongs.

[0295] The electronic device according to the various embodiments disclosed in this document may be of various forms. The electronic device may include, for example, a portable communication device (e.g., a smartphone), a computer device, a portable multimedia device, a portable medical device, a camera, a wearable device, or a consumer electronics device. The electronic device according to the embodiments of this document is not limited to the devices described above.

[0296] The various embodiments of this document and the terms used therein are not intended to limit the technical features described in this document to specific embodiments, and should be understood to include various modifications, equivalents, or substitutions of said embodiments. In connection with the description of the drawings, similar reference numerals may be used for similar or related components. The singular form of a noun corresponding to an item may include one or more of said items unless the relevant context clearly indicates otherwise. In this document, phrases such as "A or B," "at least one of A and B," "at least one of A or B," "A, B or C," "at least one of A, B and C," and "at least one of A, B, or C" may each include any one of the items listed together in the corresponding phrase, or all possible combinations thereof. Terms such as "first," "second," or "first" or "second" may be used simply to distinguish said components from other said components and do not limit said components in any other aspect (e.g., importance or order). Where any (e.g., 1st) component is referred to as "coupled" or "connected" to another (e.g., 2nd) component, with or without the terms "functionally" or "communicationly," it means that said any component may be connected to said other component directly (e.g., via a wire), wirelessly, or through a third component.

[0297] The term “module” as used in the various embodiments of this document may include a unit implemented in hardware, software, or firmware, and may be used interchangeably with terms such as logic, logic block, component, or circuit, for example. A module may be a component formed integrally, or a minimum unit of said component or a part thereof that performs one or more functions. For example, according to one embodiment, a module may be implemented in the form of an application-specific integrated circuit (ASIC).

[0298] Various embodiments of the present document may be implemented as software (e.g., program (140)) comprising one or more instructions stored in a storage medium (e.g., internal memory (136) or external memory (138)) readable by a machine (e.g., electronic device (101)). For example, a processor (e.g., processor (120)) of the machine (e.g., electronic device (101)) may call at least one of the one or more instructions stored in the storage medium and execute it. This enables the machine to be operated to perform at least one function according to the at least one called instruction. The one or more instructions may include code generated by a compiler or code that can be executed by an interpreter. The storage medium readable by the machine may be provided in the form of a non-transitory storage medium. Here, 'non-temporary' simply means that the storage medium is a tangible device and does not contain a signal (e.g., electromagnetic waves), and the term does not distinguish between cases where data is stored semi-permanently and cases where it is stored temporarily.

[0299] According to one embodiment, the method according to the various embodiments disclosed herein may be provided by being included in a computer program product. The computer program product may be traded between a seller and a buyer as a product. The computer program product may be distributed in the form of a device-readable storage medium (e.g., CD-ROM (compact disc read only memory)) or an application store (e.g., Play Store). TM It can be distributed online (e.g., downloaded or uploaded) through ) or directly between two user devices (e.g., smartphones). In the case of online distribution, at least a portion of the computer program product may be temporarily stored or temporarily created on a device-readable storage medium, such as the memory of a manufacturer's server, an application store's server, or a relay server.

[0300] According to various embodiments, each component (e.g., module or program) of the components described above may include a singular or multiple entities, and some of the multiple entities may be separated and placed in other components. According to various embodiments, one or more of the components or operations of the aforementioned components may be omitted, or one or more other components or operations may be added. Generally or additionally, multiple components (e.g., module or program) may be integrated into a single component. In this case, the integrated component may perform one or more functions of each of the multiple components in the same or similar manner as those performed by the corresponding component among the multiple components prior to integration. According to various embodiments, operations performed by the module, program, or other components may be executed sequentially, in parallel, iteratively, or heuristically, or one or more of the operations may be executed in a different order, omitted, or one or more other operations may be added.

Claims

1. In an electronic device (101), communication circuit (290), At least one processor (120) including a processing circuit; and The electronic device (101) includes a memory (130) that stores instructions and includes one or more storage media, and when the instructions are executed individually or collectively by the at least one processor (120), the electronic device (101), Based on receiving an input selecting a file to be transmitted to an external electronic device (102), a hash value associated with the file is transmitted to the external electronic device (102) through the communication circuit (290), and Through the communication circuit (290), a response regarding the hash value is received from the external electronic device (102), and the response indicates that a hash value corresponding to the transmitted hash value exists in the external electronic device (102). Based on receiving the above response, causing the transmission of the file being transmitted to the external electronic device (102) to stop, Electronic device.

2. In Claim 1, When the above instructions are executed individually or collectively by the at least one processor (120), the electronic device (101), Based on receiving the above response, it is determined whether the file is being transmitted to the external electronic device (102), and Based on the determination that the above file is being transmitted to the external electronic device (102), the transmission of the above file being transmitted to the external electronic device (102) is stopped, and Based on the determination that the above file is not yet transmitted to the external electronic device (102), causing the transmission of the above file not to begin, Electronic device.

3. In Claim 2, When the above instructions are executed individually or collectively by the at least one processor (120), the electronic device (101), Based on receiving the above response, query the external electronic device (102) for the status of the file, and Receive another response to the above query indicating the reception status of the above file, and Based on the above reception status, causing to determine whether the file is being transmitted to the external electronic device (102), Electronic device.

4. In Claim 2, When the above instructions are executed individually or collectively by the at least one processor (120), the electronic device (101), Based on the determination that the above file has been transmitted to the external electronic device (102), causing the external electronic device (102) to request the deletion of the transmitted file. Electronic device.

5. In any one of claims 1 to 4, The above input is an input for selecting a plurality of files including the above file, and When the above instructions are executed individually or collectively by the at least one processor (120), the electronic device (101), Through the communication circuit (290), metadata information of each of the plurality of files is transmitted to the external electronic device (102), and Another response regarding the meta information is received from the external electronic device (102), and the other response indicates whether meta information corresponding to the transmitted meta information exists in the external electronic device (102). Based on receiving the other response above, causing to determine the transmission order of the plurality of files such that the transmission priority of some files among the plurality of files, where the meta information exists in the external electronic device (102), is lower than the transmission priority of other files, where the meta information does not exist in the external electronic device (102). Electronic device.

6. In Claim 5, The above meta information includes the name of each of the plurality of files, Electronic device.

7. In any one of claims 1 to 6, When the above instructions are executed individually or collectively by the at least one processor (120), the electronic device (101), Based on receiving the input selecting the above file, a communication connection for direct communication with the external electronic device (102) is established, and Causing to perform the transmission of the hash value and the reception of the response through the above direct communication, Electronic device.

8. In Claim 7, When the above instructions are executed individually or collectively by the at least one processor (120), the electronic device (101), Identifying the communication status of the above direct communication, and Based on the communication status of the direct communication, identify that the direct communication is released before the transmission of the file is completed, and While the above direct communication is disabled, causing the transmission of the hash value and the reception of the response to be performed via the communication circuit (290) and through the server, Electronic device.

9. In the electronic device (102), communication circuit (295), At least one processor (225) including a processing circuit; and The electronic device (102) includes a memory (235) that stores instructions and includes one or more storage media, and when the instructions are executed individually or collectively by the at least one processor (225), the electronic device (102), Through the communication circuit (295), the external electronic device (101) receives a transmission request from the external electronic device (101) to transmit a file to the electronic device (102), and After receiving the transmission request through the communication circuit (295), the hash value associated with the file is received, and Determining whether there exists a hash value corresponding to the received hash value among the hash values ​​in the electronic device (102), and Based on the existence of the hash value corresponding to the received hash value, causing the external electronic device (101) to stop the transmission of the file being transmitted to the electronic device (102), causing the external electronic device (101) to transmit a response to the external electronic device (101). Electronic device.

10. In Claim 9, When the above instructions are executed individually or collectively by the at least one processor (225), the electronic device (102), After transmitting the above response, receive a query regarding the status of the file from the external electronic device (101), and Based on receiving the above query, identify the reception status of the above file, and Based on the reception status of the above file indicating that the above file is being transmitted to the electronic device (102), another response is transmitted to the external electronic device (101) that causes the external electronic device (101) to stop transmitting the above file that is being transmitted to the external electronic device (101), and Based on the fact that the reception status of the above file indicates that the above file is not yet transmitted to the electronic device (102), causing the external electronic device (101) to transmit another response to the external electronic device (101) that causes the external electronic device (101) not to initiate the transmission of the above file, Electronic device.

11. In Claim 10, When the above instructions are executed individually or collectively by the at least one processor (225), the electronic device (102), The receiving status of the above file transmits another response to the external electronic device (101) indicating that the above file has been received by the electronic device (102), and After transmitting the other response indicating that the above file has been received by the electronic device (102) to the external electronic device (101), causing to receive a request to delete the received file from the external electronic device (101). Electronic device.

12. In any one of claims 9 to 11, When the above instructions are executed individually or collectively by the at least one processor (225), the electronic device (102), Through the communication circuit (295), metadata information for each of the plurality of files including the file is received from the external electronic device (101), and Causing the external electronic device (101) to transmit a different response to the meta information, and the different response indicates whether meta information corresponding to the meta information exists in the electronic device (102). Electronic device.

13. In any one of claims 9 to 12, When the above instructions are executed individually or collectively by the at least one processor (225), the electronic device (102), After receiving the transmission request, a communication connection for direct communication with the external electronic device (101) is established, and Causing to perform the reception of the hash value and the transmission of the response through the above direct communication Electronic device.

14. In Claim 13, When the above instructions are executed individually or collectively by the at least one processor (225), the electronic device (102), Identifying the communication status of the above direct communication, and Based on the communication status of the direct communication, identify that the direct communication is released before the reception of the file is completed, and While the above direct communication is disabled, causing the reception of the hash value and the transmission of the response to be performed via the communication circuit (295) and through the server. Electronic device.

15. A method of an electronic device (101) including a communication circuit (290), Based on receiving an input selecting a file to be transmitted to an external electronic device (102), the operation of transmitting a hash value associated with the file to the external electronic device (102) through the communication circuit (290). The operation of receiving a response regarding the hash value from the external electronic device (102) through the communication circuit (290), wherein the response indicates that a hash value corresponding to the transmitted hash value exists in the external electronic device (102), and Based on receiving the above response, the operation of stopping the transmission of the file being transmitted to the external electronic device (102) method.

Citation Information

Patent Citations

  • Data transmission method and device, server, equipment, medium and program product

    CN115567512A

  • Method for sharing files, and electronic device

    EP4271007A1

  • Sharing content with nearby devices

    KR1020150043373A

  • File deduplication using signature information

    US20190205413A1

  • Prioritizing content item synchronization based on sharing

    US20220283992A1