CN117130525A - 复制数据的方法及电子设备 - Google Patents
复制数据的方法及电子设备 Download PDFInfo
- Publication number
- CN117130525A CN117130525A CN202210552437.0A CN202210552437A CN117130525A CN 117130525 A CN117130525 A CN 117130525A CN 202210552437 A CN202210552437 A CN 202210552437A CN 117130525 A CN117130525 A CN 117130525A
- Authority
- CN
- China
- Prior art keywords
- data
- electronic device
- user
- controls
- window
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 301
- 238000005520 cutting process Methods 0.000 claims abstract description 20
- 230000008569 process Effects 0.000 claims description 162
- 230000004044 response Effects 0.000 claims description 76
- 230000015654 memory Effects 0.000 claims description 45
- 238000004891 communication Methods 0.000 claims description 33
- 230000006854 communication Effects 0.000 claims description 33
- 238000004590 computer program Methods 0.000 claims description 9
- 230000000007 visual effect Effects 0.000 abstract description 11
- 238000012546 transfer Methods 0.000 description 128
- 238000010586 diagram Methods 0.000 description 52
- 238000012545 processing Methods 0.000 description 24
- 239000010410 layer Substances 0.000 description 22
- 238000007726 management method Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 14
- 238000010295 mobile communication Methods 0.000 description 13
- 230000002688 persistence Effects 0.000 description 13
- 230000010076 replication Effects 0.000 description 7
- 230000005236 sound signal Effects 0.000 description 7
- 230000001360 synchronised effect Effects 0.000 description 6
- 210000004027 cell Anatomy 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000002085 persistent effect Effects 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- FFBHFFJDDLITSX-UHFFFAOYSA-N benzyl N-[2-hydroxy-4-(3-oxomorpholin-4-yl)phenyl]carbamate Chemical compound OC1=C(NC(=O)OCC2=CC=CC=C2)C=CC(=C1)N1CCOCC1=O FFBHFFJDDLITSX-UHFFFAOYSA-N 0.000 description 4
- 229920001621 AMOLED Polymers 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000003416 augmentation Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 210000000988 bone and bone Anatomy 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000007175 bidirectional communication Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000019771 cognition Effects 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- COCAUCFPFHUGAA-MGNBDDOMSA-N n-[3-[(1s,7s)-5-amino-4-thia-6-azabicyclo[5.1.0]oct-5-en-7-yl]-4-fluorophenyl]-5-chloropyridine-2-carboxamide Chemical compound C=1C=C(F)C([C@@]23N=C(SCC[C@@H]2C3)N)=CC=1NC(=O)C1=CC=C(Cl)C=N1 COCAUCFPFHUGAA-MGNBDDOMSA-N 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04842—Selection of displayed objects or displayed text elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0485—Scrolling or panning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0486—Drag-and-drop
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/543—User-generated data transfer, e.g. clipboards, dynamic data exchange [DDE], object linking and embedding [OLE]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请提供了复制数据的方法及电子设备,涉及电子技术领域。本申请提供的复制数据的方法,首先,可以支持用户在一个或多个源应用程序中执行多次复制、剪切或拖拽多次操作后,通过一次粘贴或拖拽将一个或多个数据拷贝到目标应应用程序中;其次,为复制、剪切或拖拽的数据可提供可视化的界面,并在该界面中以不同的格式展示不同类型的数据;再次,在该可视化界面中,用户可以调整不同数据的排列顺序,还可以删除任意数据,极大程度的提高了用户的体验。
Description
技术领域
本申请涉及电子技术领域,尤其涉及复制数据的方法及电子设备。
背景技术
在日常生活中,消费者在使用诸如手机、平板等电子设备的过程中,往往需要从一个或多个源应用程序中复制多段不连续的数据,进而粘贴至目标应用程序中。例如,源程序可以是新闻类应用程序,目标应用程序可以是便签或文档等应用程序。在该过程中,需要用户频繁的切换应用程序,复制一次后即需要粘贴一次,操作十分繁琐。
一种可行的解决办法为,为输入法应用程序赋予访问剪贴板的权限,由输入法应用程序将每次复制或剪切的数据保存在自己的进程空间中。进而使得用户可以多次复制、剪切,一次拷贝。
但是,用户在拷贝数据的时候,需要呼出输入法应用程序,然后在设置中点击历史剪贴板,然后选择数据粘贴。这种操作仍然比较繁琐,且受限于输入法的界面大小和数据的处理方式,可视化程度不高,不利于用户体验。
发明内容
本申请实施例提供了复制数据的方法及电子设备。本申请提供的复制数据的方法,首先,可以支持用户在一个或多个源应用程序中执行多次复制、剪切或拖拽多次操作后,通过一次粘贴或拖拽将一个或多个数据拷贝到目标应应用程序中;其次,为复制、剪切或拖拽的数据可提供可视化的界面,并在该界面中以不同的格式展示不同类型的数据;再次,在该可视化界面中,用户可以调整不同数据的排列顺序,还可以删除任意数据,极大程度的提高了用户的体验。
第一方面,本申请提供了一种复制数据的方法,应用于电子设备,该方法包括:响应于接收到用户的第一操作,所述电子设备通过第一源应用程序确定第一选中数据,并将所述第一选中数据发送到第一进程,所述第一操作为复制、剪切或拖拽,所述第一选中数据包括图片、文字段落、文件中的至少一种;所述电子设备通过所述第一进程将所述第一选中数据转换为第一扩展数据对象,所述第一扩展数据对象包括所述第一选中数据和第一状态参数,所述第一状态参数至少用于描述所述第一选中数据中数据的格式;响应于接收到用户的第二操作,所述电子设备显示第一窗口,所述第一窗口用于展示包括所述第一选中数据在内的数据,其中,不同格式的数据的展示方式不同。
在上述实施例中,电子设备在确定选中数据后,在转换为扩展数据对象的过程中,会分析选中数据中数据的格式,然后在第一窗口以不同的展示方式展示不同格式的数据。很显然的,本申请提供的复制数据方法为用户提供了可视化的界面,让用户知道自己之前复制、剪切或拖拽的数据具体有哪些,并且为用户删除数据、调制数据的之间排列顺序提供了夯实的实现基础和界面基础。
结合第一方面的一些实施例,在一些实施例中,所述方法还包括:所述电子设备通过所述第一进程基于所述状态参数确定不同格式的数据在所述第一窗口中的展示方式。
在上述实施例中,电子设备可以通过状态参数确定不同数据的数据格式,进而确定不同数据格式的数据的展示方式。
结合第一方面的一些实施例,在一些实施例中,所述电子设备通过所述第一进程基于所述状态参数确定不同格式的数据在所述第一窗口中的展示方式,具体包括:所述第一选中数据包括多个数据,所述第一窗口中存在与所述多个数据对应的多个控件;所述第一进程根据所述状态参数确定所述多个控件内部的排列顺序。
在上述实施例中,电子设备还会根据数据的数据格式调整数据在第一窗口内的顺序,使得第一窗口内的数据有序排列,使得用户在复制多项数据后,在第一窗口中更容易找到特定的某个数据。
结合第一方面的一些实施例,在一些实施例中,所述排列顺序为文本、图片、文件。
在上述实施例中,数据在第一窗口中的排列顺序可以为文本、图片、文件,或者也可以是其他顺序,方便用户查找特定的数据。
结合第一方面的一些实施例,在一些实施例中,所述状态参数包括格式参数,所述格式参数用于标识数据的格式;所述状态参数还包括大小参数和拷贝参数中的至少一种,所述大小参数用于标识数据的大小,所述拷贝参数用于标识数据是否已经拷贝至所述第一进程的内存空间中。
在上述实施例中,状态参数包括格式参数、大小参数、拷贝参数等多种参数,分别对应不同情况下,电子设备是否能够执行进一步的操作。例如,状态参数用于确定不同格式的数据的展示方式,拷贝参数用于指示电子设备该文件是否支持拖拽、粘贴至非源应用程序的其他应用程序;大小参数可以用于文件类型的数据的展示等。
结合第一方面的一些实施例,在一些实施例中,在响应于接收到用户的第二操作,所述电子设备显示第一窗口后,所述方法还包括:所述第一窗口显示的内容包括第一控件,所述第一控件对应第一数据,所述第一数据属于所述第一选中数据;响应于接收到用户对所述第一控件的第三操作,所述第一窗口不显示第一控件并且所述电子设备通过所述第一进程删除所述第一数据。
在上述实施例中,第一窗口支持用户通过某些操作删除第一窗口中的数据,在用户误操作导致复制、剪切、拖拽了不需要的数据的情况下,不需要用户重新复制、剪切、拖拽,只需要用户在第一窗口将不需要的数据删除,极大程度的简化了用户的操作,提升了用户的体验。
结合第一方面的一些实施例,在一些实施例中,在响应于接收到用户的第二操作,所述电子设备显示第一窗口后,所述方法还包括:所述第一窗口显示的内容包括第一控件和第二控件,所述第一控件对应第一数据,所述第一控件在所述第一窗口的第一位置显示;响应于接收到用户对所述第一控件的第四操作,所述电子设备在所述第一窗口的第二位置显示所述第二控件,所述第一位置和所述第二位置不同。
在上述实施例中,第一窗口支持用户通过某些操作调整第一窗口中不同数据的排列方式,进而使得用户可以在将数据粘贴、拖拽数据至目标应用程序前,可以对数据执行简单的处理,极大程度的简化了用户的操作,提升了用户的体验。
结合第一方面的一些实施例,在一些实施例中,在响应于接收到用户的第二操作,所述电子设备显示第一窗口后,所述方法还包括:所述第一窗口显示的内容包括多个控件,所述多个控件中的每一个控件对应第一选中数据中的一个数据,每个控件对应的数据不同;响应于接收到用户对所述多个控件的第五操作,所述电子设备通过所述第一进程将所述多个控件对应的数据发送到目标应用程序,所述第五操作为拖拽操作;或者,响应于接收到用户对所述多个控件的第六操作以及用户在目标应用程序的界面中的第七操作,所述电子设备通过所述第一进程将所述多个控件对应的数据发送到目标应用程序,所述第六操作为用于选中所述多个控件的操作,所述第七操作为粘贴操作。
在上述实施例中,用户可以在第一窗口中选中多个数据,并将选中的多个数据通过粘贴或拖拽操作将数据拷贝到目标应用程序中。
结合第一方面的一些实施例,在一些实施例中,所述电子设备通过所述第一进程将所述多个控件对应的数据发送到目标应用程序,具体包括:所述电子设备通过所述第一进程基于所述多个控件确定所述多个控件对应的数据;所述电子设备通过所述第一进程基于所述第一扩展数据对象和所述多个控件对应的数据生成第一复制数据对象ClipData;所述电子设备通过第一进程将所述第一复制数据对象ClipData发送到所述目标应用程序。
在上述实施例中,无需应用程序主动适配,第一进程发送给应用程序仍然是复制数据对象ClipData,应用程序可以正确解析。
结合第一方面的一些实施例,在一些实施例中,所述方法还包括:所述电子设备通过所述第一进程将所述第一扩展数据对象保存在非易失存储介质中。
在上述实施例中,第一进程可以将复制、剪切、拖拽的数据保存在非易失存储介质中,当第一进程被销毁后重新启动,仍然可以恢复该数据,方便用户的使用。
结合第一方面的一些实施例,在一些实施例中,所述第一进程将所述第一扩展数据对象保存在非易失存储介质中,具体包括:所述电子设备通过所述第一进程将所述第一扩展数据对象序列化得到第一序列化对象;所述电子设备通过所述第一进程将所述第一序列化对象转化为第一字节数组;所述电子设备通过所述第一进程将所述第一字节数组转化为第一字符串;所述电子设备通过所述第一进程将所述第一字符串写入到所述非易失存储介质中。
在上述实施例中,第一进程将扩展数据对象执行序列化、字节化、字符串化,得到与扩展数据对象对应的字符串,然后将字符串写入到非易失存储介质中。这种保存数据的方法相比于其他的保存方式,是一种更轻量化的保存方式,消耗的系统资源较少,并且可以使得第一扩展数据对象中的各个字段的相对顺序不变化。
结合第一方面的一些实施例,在一些实施例中,在所述电子设备通过第一进程将所述第一选中数据转换为第一扩展数据对象后,所述方法还包括:响应于接收到用户的第八操作,所述电子设备通过第二源应用程序确定第二选中数据,并将所述第二选中数据发送到第一进程,所述第八操作为复制、剪切或拖拽,所述第二选中数据包括图片、文字段落、文件中的至少一种;所述电子设备通过所述第一进程将所述第二选中数据和所述第一扩展对象转换为第三扩展数据对象;或者,所述电子设备通过所述第一进程将所述第二选中数据转换为所述第二扩展数据对象。
在上述实施例中,当用户多次复制、拖拽或剪切数据到第一进程后,第一进程可以将多个数据合并为一个扩展数据对象;或者,也可以保存多个扩展数据对象。
结合第一方面的一些实施例,在一些实施例中,所述第一窗口中包括多个控件,所述多个控件对应的数据属于所述第一选中数据和所述第二选中数据;响应于接收到用户对所述多个控件的第九操作,所述电子设备通过所述第一进程将所述多个控件对应的数据发送到目标应用程序,所述第五操作为拖拽操作;或者,响应于接收到用户对所述多个控件的第十操作以及用户在目标应用程序的界面中的第十一操作,所述电子设备通过所述第一进程将所述多个控件对应的数据发送到目标应用程序,所述第十操作为用于选中所述多个控件的操作,所述第十一操作为粘贴操作。
在上述实施例中,用户可以在第一窗口中选中多个数据,将多个数据拷贝至目标应用程序,避免用户多次繁琐的操作,提高用户了的体验;并且,用户可以在第一窗口中选择想要拷贝的数据,无需担心复制、剪贴、拖拽了多余数据。
结合第一方面的一些实施例,在一些实施例中,在所述响应于接收到用户的第一操作,所述电子设备通过第一源应用程序确定第一选中数据,并将所述第一选中数据发送到第一进程前,所述方法还包括:响应于接收到用户的第十二操作,所述电子设备通过第三源应用程序确定第三选中数据,并将所述第三选中数据发送到所述第一进程,所述第十二操作为复制、剪切或拖拽;在所述电子设备显示第一窗口后,所述方法还包括:响应于接收到用户在所述第一窗口内的第十二操作,所述电子设备在所述第一窗口显示第三控件,所述第三控件对应的数据属于所述第三选中数据。
在上述实施例中,用户之前复制、剪切或拖拽到第一进程中的数据,并不会一开始就出现第一窗口中,当接收到用户的第十二操作后,第一窗口才显示历史数据,历史数据中包括第三选中数据。
结合第一方面的一些实施例,在一些实施例中,所述第二操作的发生时间与所述第十二操作的发生时间的时间间隔大于时间阈值。
在上述实施例中,当上次复制、剪切或拖拽时间与电子设备本次显示第一窗口的时间间距大于时间阈值,则不会在第一窗口中显示上次复制、剪切或拖拽的数据。
结合第一方面的一些实施例,在一些实施例中,在所述响应于接收到用户的第十二操作,所述电子设备通过第三源应用程序确定第三选中数据,并将所述第三选中数据发送到所述第一进程后,并且在所述响应于接收到用户的第一操作,所述电子设备通过第一源应用程序确定第一选中数据,并将所述第一选中数据发送到第一进程前,所述方法还包括:所述电子设备关闭所述第一窗口的显示。
在上述实施例中,第一窗口显示的内容为在第一窗口关闭后至第一窗口再次显示过程中用户通过复制、剪切或拖拽操作选中的数据。
结合第一方面的一些实施例,在一些实施例中,在所述电子设备显示第一窗口后,所述方法还包括:所述第一窗口包括第一控件、第二控件、第三控件,所述第一控件与第一数据对应,所述第二控件与第二数据对应,所述第三控件用于将数据分享到对端电子设备;响应于接收到用户对第一控件和第二控件的选中操作和用户对所述第三控件的操作,所述电子设备通过所述第一进程将所述第一数据和所述第二数据发送到所述对端电子设备。
在上述实施例中,电子设备还可以将数据发送到其他电子设备,使得用户在本地电子设备上复制的数据可以在其他电子设备上使用,极大的提升了用户的体验。
结合第一方面的一些实施例,在一些实施例中,所述电子设备通过所述第一进程将所述第一数据和所述第二数据发送到所述对端电子设备,具体包括:所述电子设备将第二复制数据对象ClipData发送到所述对端电子设备,所述第二复制数据对象ClipData对应的数据中包括所述第一数据和所述第二数据;或者,所述电子设备将所述第二扩展数据对象发送到所述对端电子设备,所述第二扩展数据对象的数据中包括所述第一数据和所述第二数据。
在上述实施例中,电子设备可以将复制数据对象ClipData发送到其他电子设备,也可以将扩展数据发送到其他电子设备。
结合第一方面的一些实施例,在一些实施例中,在所述电子设备通过所述第一进程将所述第一选中数据转换为第一扩展数据对象后,所述方法还包括:所述电子设备通过所述第一进程将第一发送数据发送到对端电子设备,所述第一发送数据为第一扩展数据对象或者所述第一发送数据为与第一选中数据对应的复制数据对象ClipData。
在上述实施例中,电子设备可以将用户复制、剪切或拖拽的数据自动的同步到其他电子设备,无需用户手动的将数据分享到其他电子设备,简化用户的操作,提升用户的体验。
第二方面,第一方面,本申请提供了一种复制数据的方法,应用于包括第一电子设备和第二电子设备的系统,所述第一电子设备和所述第二电子设备之间建立有通信连接,该方法包括:响应于接收到用户的第一操作,所述第一电子设备通过第一源应用程序确定第一选中数据并将所述第一选中数据发送到第一进程,所述第一操作为复制、剪切或拖拽,所述第一选中数据包括图片、文字段落、文件中的至少一种,所述第一源应用程序和所述第一进程在所述第一电子设备上;所述第一电子设备通过所述第一进程将所述第一选中数据发送到所述第二电子设备;响应于接收到用户的第二操作,所述第二电子设备显示第二窗口,所述第二窗口包括多个控件,所述多个控件与所述第一选中数据中的多个数据对应,所述多个控件中的控件对应的数据各不相同。
在上述实施例中,本地电子设备将用户复制、剪切或拖拽的数据发送到对端电子设备上,用户可以在对端电子设备的第二窗口中看到对应的数据,提升用户的体验。
结合第二方面的一些实施例,在一些实施例中,所述第一电子设备通过第一源应用程序确定第一选中数据并发送到第一进程,具体包括:所述第一电子设备通过所述第一源应用程序确定第一选中数据,并将所述第一选中数据对应的第一复制数据对象ClipData发送到第一进程。
结合第二方面的一些实施例,在一些实施例中,所述方法还包括:所述第一电子设备通过所述第一进程将所述第一复制数据对象ClipData转换为第一扩展数据对象,所述第一扩展数据对象包括所述第一选中数据和第一状态参数,所述第一状态参数至少用于描述所述第一选中数据中数据的格式。
结合第二方面的一些实施例,在一些实施例中,所述第一进程将所述第一选中数据发送到所述第二电子设备,具体包括:所述第一电子设备通过所述第一进程基于所述通信连接将第一扩展数据对象发送到第二进程,所述第二进程为第二电子设备上的进程;或者,所述第一电子设备通过所述第一进程基于所述通信连接将第一复制数据对象ClipData发送到目标应用程序,所述目标应用程序为所述第二电子设备上的应用程序。
结合第二方面的一些实施例,在一些实施例中,响应于接收到用户对所述多个控件的第三操作,所述第二电子设备通过所述第二进程将所述多个控件对应的数据发送到目标应用程序,所述第五操作为拖拽操作;或者,响应于用户对所述多个控件的第四操作以及用户在目标应用程序的界面中的第五操作,所述第二电子设备通过所述第二进程将所述多个控件对应的数据发送到目标应用程序,所述第四操作为用于选中所述多个控件的操作,所述第五操作为粘贴操作。
第三方面,本申请实施例提供了一种电子设备,该电子设备包括:一个或多个处理器和存储器;该存储器与该一个或多个处理器耦合,该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令,该一个或多个处理器调用该计算机指令以使得该电子设备执行:响应于接收到用户的第一操作,所述电子设备通过第一源应用程序确定第一选中数据,并将所述第一选中数据发送到第一进程,所述第一操作为复制、剪切或拖拽,所述第一选中数据包括图片、文字段落、文件中的至少一种;所述电子设备通过所述第一进程将所述第一选中数据转换为第一扩展数据对象,所述第一扩展数据对象包括所述第一选中数据和第一状态参数,所述第一状态参数至少用于描述所述第一选中数据中数据的格式;响应于接收到用户的第二操作,所述电子设备显示第一窗口,所述第一窗口用于展示包括所述第一选中数据在内的数据,其中,不同格式的数据的展示方式不同。
在上述实施例中,电子设备在确定选中数据后,在转换为扩展数据对象的过程中,会分析选中数据中数据的格式,然后在第一窗口以不同的展示方式展示不同格式的数据。很显然的,本申请提供的复制数据方法为用户提供了可视化的界面,让用户知道自己之前复制、剪切或拖拽的数据具体有哪些,并且为用户删除数据、调制数据的之间排列顺序提供了夯实的实现基础和界面基础。
结合第三方面的一些实施例,在一些实施例中,该一个或多个处理器,还用于调用该计算机指令以使得该电子设备执行:所述电子设备通过所述第一进程基于所述状态参数确定不同格式的数据在所述第一窗口中的展示方式。
结合第三方面的一些实施例,在一些实施例中,该一个或多个处理器,具体用于调用该计算机指令以使得该电子设备执行:所述第一选中数据包括多个数据,所述第一窗口中存在与所述多个数据对应的多个控件;所述第一进程根据所述状态参数确定所述多个控件内部的排列顺序。
结合第三方面的一些实施例,在一些实施例中,所述排列顺序为文本、图片、文件。
结合第三方面的一些实施例,在一些实施例中,所述状态参数包括格式参数,所述格式参数用于标识数据的格式;所述状态参数还包括大小参数和拷贝参数中的至少一种,所述大小参数用于标识数据的大小,所述拷贝参数用于标识数据是否已经拷贝至所述第一进程的内存空间中。
结合第三方面的一些实施例,在一些实施例中,该一个或多个处理器,还用于调用该计算机指令以使得该电子设备执行:所述第一窗口显示的内容包括第一控件,所述第一控件对应第一数据,所述第一数据属于所述第一选中数据;响应于接收到用户对所述第一控件的第三操作,所述第一窗口不显示第一控件并且所述电子设备通过所述第一进程删除所述第一数据。
结合第三方面的一些实施例,在一些实施例中,该一个或多个处理器,还用于调用该计算机指令以使得该电子设备执行:所述第一窗口显示的内容包括第一控件和第二控件,所述第一控件对应的数据属于所述第一选中数据,所述第一控件在所述第一窗口的第一位置显示;响应于接收到用户对所述第一控件的第四操作,所述电子设备在所述第一窗口的第二位置显示所述第二控件,所述第一位置和所述第二位置不同。
结合第三方面的一些实施例,在一些实施例中,该一个或多个处理器,还用于调用该计算机指令以使得该电子设备执行:所述第一窗口显示的内容包括多个控件,所述多个控件中的每一个控件对应第一选中数据中的一个数据,每个控件对应的数据不同;响应于接收到用户对所述多个控件的第五操作,所述电子设备通过所述第一进程将所述多个控件对应的数据发送到目标应用程序,所述第五操作为拖拽操作;或者,响应于接收到用户对所述多个控件的第六操作以及用户在目标应用程序的界面中的第七操作,所述电子设备通过所述第一进程将所述多个控件对应的数据发送到目标应用程序,所述第六操作为用于选中所述多个控件的操作,所述第七操作为粘贴操作。
结合第三方面的一些实施例,在一些实施例中,该一个或多个处理器,具体用于调用该计算机指令以使得该电子设备执行:所述电子设备通过所述第一进程基于所述多个控件确定所述多个控件对应的数据;所述电子设备通过所述第一进程基于所述第一扩展数据对象和所述多个控件对应的数据生成第一复制数据对象ClipData;所述电子设备通过第一进程将所述第一复制数据对象ClipData发送到所述目标应用程序。
结合第三方面的一些实施例,在一些实施例中,该一个或多个处理器,还用于调用该计算机指令以使得该电子设备执行:所述电子设备通过所述第一进程将所述第一扩展数据对象保存在非易失存储介质中。
结合第三方面的一些实施例,在一些实施例中,该一个或多个处理器,具体用于调用该计算机指令以使得该电子设备执行:所述电子设备通过所述第一进程将所述第一扩展数据对象序列化得到第一序列化对象;所述电子设备通过所述第一进程将所述第一序列化对象转化为第一字节数组;所述电子设备通过所述第一进程将所述第一字节数组转化为第一字符串;所述电子设备通过所述第一进程将所述第一字符串写入到所述非易失存储介质中。
结合第三方面的一些实施例,在一些实施例中,该一个或多个处理器,还用于调用该计算机指令以使得该电子设备执行:响应于接收到用户的第八操作,所述电子设备通过第二源应用程序确定第二选中数据,并将所述第二选中数据发送到第一进程,所述第八操作为复制、剪切或拖拽,所述第二选中数据包括图片、文字段落、文件中的至少一种;所述电子设备通过所述第一进程将所述第二选中数据和所述第一扩展对象转换为第三扩展数据对象;或者,所述电子设备通过所述第一进程将所述第二选中数据转换为所述第二扩展数据对象。
结合第三方面的一些实施例,在一些实施例中,该一个或多个处理器,还用于调用该计算机指令以使得该电子设备执行:所述第一窗口中包括多个控件,所述多个控件对应的数据属于所述第一选中数据和所述第二选中数据;响应于接收到用户对所述多个控件的第九操作,所述电子设备通过所述第一进程将所述多个控件对应的数据发送到目标应用程序,所述第五操作为拖拽操作;或者,响应于接收到用户对所述多个控件的第十操作以及用户在目标应用程序的界面中的第十一操作,所述电子设备通过所述第一进程将所述多个控件对应的数据发送到目标应用程序,所述第十操作为用于选中所述多个控件的操作,所述第十一操作为粘贴操作。
结合第三方面的一些实施例,在一些实施例中,该一个或多个处理器,还用于调用该计算机指令以使得该电子设备执行:所述第一窗口中包括多个控件,所述多个控件对应的数据属于所述第一选中数据和所述第二选中数据;响应于接收到用户对所述多个控件的第九操作,所述电子设备通过所述第一进程将所述多个控件对应的数据发送到目标应用程序,所述第五操作为拖拽操作;或者,响应于接收到用户对所述多个控件的第十操作以及用户在目标应用程序的界面中的第十一操作,所述电子设备通过所述第一进程将所述多个控件对应的数据发送到目标应用程序,所述第十操作为用于选中所述多个控件的操作,所述第十一操作为粘贴操作。
结合第三方面的一些实施例,在一些实施例中,该一个或多个处理器,具体用于调用该计算机指令以使得该电子设备执行:响应于接收到用户的第十二操作,所述电子设备通过第三源应用程序确定第三选中数据,并将所述第三选中数据发送到所述第一进程,所述第十二操作为复制、剪切或拖拽;响应于接收到用户在所述第一窗口内的第十三操作,所述电子设备在所述第一窗口显示第三控件,所述第三控件对应的数据属于所述第三选中数据。
结合第三方面的一些实施例,在一些实施例中,所述第二操作的发生时间与所述第十二操作的发生时间的时间间隔大于时间阈值。
结合第三方面的一些实施例,在一些实施例中,该一个或多个处理器,还用于调用该计算机指令以使得该电子设备执行:所述电子设备关闭所述第一窗口的显示。
结合第三方面的一些实施例,在一些实施例中,该一个或多个处理器,还用于调用该计算机指令以使得该电子设备执行:所述第一窗口包括第一控件、第二控件、第三控件,所述第一控件与第一数据对应,所述第二控件与第二数据对应,所述第三控件用于将数据分享到对端电子设备;响应于接收到用户对第一控件和第二控件的选中操作和用户对所述第三控件的操作,所述电子设备通过所述第一进程将所述第一数据和所述第二数据发送到所述对端电子设备。
结合第三方面的一些实施例,在一些实施例中,该一个或多个处理器,具体用于调用该计算机指令以使得该电子设备执行:所述电子设备将第二复制数据对象ClipData发送到所述对端电子设备,所述第二复制数据对象ClipData对应的数据中包括所述第一数据和所述第二数据;或者,所述电子设备将所述第二扩展数据对象发送到所述对端电子设备,所述第二扩展数据对象的数据中包括所述第一数据和所述第二数据。
结合第三方面的一些实施例,在一些实施例中,该一个或多个处理器,还用于调用该计算机指令以使得该电子设备执行:所述电子设备通过所述第一进程将第一发送数据发送到对端电子设备,所述第一发送数据为第一扩展数据对象或者所述第一发送数据为与第一选中数据对应的复制数据对象ClipData。
第四方面,本申请实施例提供了一种芯片系统,该芯片系统应用于电子设备,该芯片系统包括一个或多个处理器,该处理器用于调用计算机指令以使得该电子设备执行如第一方面以及第一方面中任一可能的实现方式描述的方法。
第五方面,本申请实施例提供一种包含指令的计算机程序产品,当上述计算机程序产品在电子设备上运行时,使得上述电子设备执行如第一方面以及第一方面中任一可能的实现方式描述的方法。
第六方面,本申请实施例提供一种计算机可读存储介质,包括指令,当上述指令在电子设备上运行时,使得上述电子设备执行如第一方面以及第一方面中任一可能的实现方式描述的方法。
可以理解地,上述第三方面提供的电子设备、第四方面提供的芯片系统、第五方面提供的计算机程序产品和第六方面提供的计算机存储介质均用于执行本申请实施例所提供的方法。因此,其所能达到的有益效果可参考对应方法中的有益效果,此处不再赘述。
附图说明
图1和图2为本申请实施例提供的在一个应用程序中复制多段数据的一个示例性示意图。
图3为本申请实施例提供的图1和图2所示操作流程对应的实现方法的一个示例性示意图。
图4为本申请实施例提供的第三方应用程序保存剪贴板中的数据的一个示例性示意图。
图5为本申请实施例提供的通过第三方应用程序将历史剪贴板中的数据传递到目标应用程序的一个示例性示意图。
图6和图7为本申请实施例提供的复制方法的场景的一个示例性示意图。
图8和图9为本申请实施例提供的复制方法的场景的另一个示例性示意图。
图10为本申请实施例提供的复制数据的方法的场景的另一个示例性示意图。
图11为本申请实施例提供的复制数据的方法的场景的另一个示例性示意图。
图12为本申请实施例提供的复制数据的方法的场景的另一个示例性示意图。
图13A和图13B为本申请实施例提供的复制数据的方法的场景一个示例性示意图。
图14为本申请实施例提供的复制数据的方法的方法流程的一个示例性示意图。
图15为本申请实施例提供的将选中数据转换为扩展数据对象的一个示例性示意图。
图16A和图16B为本申请提供的扩展数据合并处理的一个示例性示意图。
图17为本申请实施例提供的ExtendData对象合并的一个示例性示意图。
图18A为本申请实施例提供的对数据执行持久化处理的一个示例性示意图。
图18B为本申请实施例提供的对数据执行持久化处理的一个示例性示意图。
图19为本申请实施例提供的删除ExtendItem的一个示例性示意图。
图20为本申请实施例提供的调整ExtendItem的排列顺序的一个示例性示意图。
图21为本申请实施例提供的生成ClipData对象并发送到目标应用程序的一个示例性示意图。
图22为本申请实施例提供的生成ClipData对象并发送到目标应用程序的另一个示例性示意图。
图23为本申请实施例提供的复制数据的方法的数据流程的一个示例性示意图。
图24为本申请实施例提供复制数据的方法的数据流程的另一个示例性示意图。
图25和图26为本申请实施例提供的跨设备场景下复制数据的方法的数据流程的一个示例性示意图。
图27为本申请实施例提供的电子设备的硬件结构的一个示例性示意图。
图28为本申请实施例提供的电子设备的软件架构的一个示例性示意图。
图29为本申请实施例提供的电子设备的软件架构的另一个示例性示意图。
具体实施方式
本申请以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一个”、“一种”、“该”、“上述”、“该”和“这一”旨在也包括复数表达形式,除非其上下文中明确地有相反指示。还应当理解,本申请中使用的术语“和/或”是指并包含一个或多个所列出项目的任何或所有可能组合。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本申请以下实施例中的术语“用户界面(user interface,UI)”,是应用程序或操作系统与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。用户界面是通过java、可扩展标记语言(extensible markuplanguage,XML)等特定计算机语言编写的源代码,界面源代码在电子设备上经过解析,渲染,最终呈现为用户可以识别的内容。用户界面常用的表现形式是图形用户界面(graphicuser interface,GUI),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在电子设备的显示屏中显示的文本、图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、Widget等可视的界面元素。
当用户需要从一个源应用程序复制或剪切多段不连续的内容至目标应用程序中的一个示例性示意图。其中,源应用程序表示复制或剪切的数据的来源应用程序;目标应用程序表示复制或剪切的数据的接收方应用程序。
图1和图2为本申请实施例提供的在一个应用程序中复制多段数据的一个示例性示意图。
在图1和图2所示的内容中,文档应用程序为源应用程序,便签应用程序为目标应用程序;用户将文档应用程序中的两段不连续的数据分别拷贝到便签应用程序需要两次拷贝操作。其中,第一次操作的过程如图1所示,第二次操作的过程如图2所示。
如图1所示,首先,如图1中的(A)所示,用户需要选中第一段数据,该第一段数据在图1中为一段文字;然后,如图1中的(B)所示,在出现控件1B01后,点击控件1B02;再然后,如图1中的(C)所示,用户切换到便签应用程序,在便签应用程序中,在出现控件1C01后,点击控件1C02,复制该第一段数据至便签应用程序;最后,复制后的数据出现,如图1中的(D)所示。
如图2所示,首先,如图2中的(A)所示,用户需要选中第二段数据,该第二段数据在图1和图2中为一个图片;然后,如图2中的(B)所示,在出现控件1B01后,点击控件1B02;再然后,如图2中的(C)所示,用户切换到便签应用程序,在便签应用程序中,在出现控件1C01后,点击控件1C02,复制该第二段数据至便签应用程序;最后,复制后的数据出现,如图2中(D)所示。
图3为本申请实施例提供的图1和图2所示操作流程对应的实现方法的一个示例性示意图。
当用户第一次复制或剪切数据时,源应用程序会将该数据发送到剪贴板中。当用户第二次复制或剪切数据时,源应用程序会将该数据发送到剪贴板中。在剪贴板中已经有数据的情况下,需要将上一次保存的数据删除后才能接收、保存新一次的数据。
例如,如图3所示,用户第一次复制或剪切数据时,该数据为被选中数据1,该被选中数据1会被发送到剪贴板;用户第二次复制或剪切数据是,该数据为被选中数据2,该被选中数据2会被发送到剪贴板;剪贴板会在接收被选中数据2的过程中或过程前,删除被选中数据1,然后保存被选中数据2。
很显然的,由于剪贴板只能保存一个数据,如图1和如图2所示的复制或剪切数据的方法需要用户执行繁琐的操作,不利于用户的体验。进一步的,在用户从多个源应用程序向目标应用程序中拷贝数据的情况下,用户还需要切换不同的源应用程序,也需要用户执行繁琐的操作,用户的体验不佳。
为了降低拷贝多个不连续数据情况下用户的操作量,一种可行的解决方法为:为第三方应用程序如输入法应用程序赋予访问剪贴板权限,由第三方应用程序保存历史剪贴板数据,在用户需要的时候将历史剪贴板中用户指定的数据传递到目标应用程序。
图4为本申请实施例提供的第三方应用程序保存剪贴板中的数据的一个示例性示意图。
输入法作为常驻的应用程序,可以实时的访问操作系统提供的剪贴板,将剪贴板中的选中数据保存到输入法的内存空间中。
如图4所示,剪贴板获取源应用程序的选中数据1后,三方应用程序向剪贴板请求数据,然后获取选中数据1。在剪贴板获取源应用程序的选中数据2后,三方应用程序向剪贴板请求数据,然后获取选中数据2。
图5为本申请实施例提供的通过第三方应用程序将历史剪贴板中的数据传递到目标应用程序的一个示例性示意图。
如图5中的(A)所示,用户可以在目标应用程序中呼出输入法应用程序,输入法应用程序的界面如窗口501。其中,输入应用程序的界面中包括控件502。
响应于用户点击控件502,如图5中的(B)所示,输入法应用程序的界面上显示的内容包括控件503。其中,控件503对应的功能为历史剪贴板。
响应于用户点击控件503,如图5中的(C)所示,用户可以在历史剪贴板的界面中选择不同的文本,例如图中的文本1、文本2、文本3。其中,文本1对应于控件504,文本2对应于控件505、文本3对应于控件506。
响应与用户点击控件504,如图5中的(D)所示,文本1被发送到了便签应用程序中。
但是,如图5所示的方式,首先,第三方应用程序获得访问剪贴板权限后才能获取并保存剪贴板中的数据;其次,第三方应用程序并不会将图片等多媒体资源保存在历史剪贴板中;其次,第三方应用程序是按照被复制数据的顺序进行排列的,不利于用户在多个数据中查找到需要的数据;再次,用户也不能在第三方应用程序中修改历史剪贴板中的数据,如修改排列、删除部分条目等。
综上,如图5所示的由输入法等第三方应用程序去保存剪贴板中的数据,用户的体验仍然不佳。
基于此,本申请实施例提供了复制数据的方法。本申请实施例提供的复制数据的方法,首先,向用户提供多种方式复制数据,例如拖拽操作、选中数据然后复制或剪切的操作;其次,可以在剪贴板中保存多种媒体格式的数据,如文本、图像、视频等;再次,还可以提供可视化、可操作性强的界面去展示剪贴板中的历史数据,并支持用户在该界面中对历史数据进行编辑,如删除、调整顺序等;再次,还可以将剪贴板中的历史数据从进程的内存空间持久化到电子设备的硬盘上;再次,还可以通过剪贴板将数据发送给其他电子设备,实现跨设备分享。
下面示例性的介绍本申请实施例提供的复制方法的几种场景。
场景1:将数据复制到中转站中。
图6和图7为本申请实施例提供的复制方法的场景的一个示例性示意图。
其中,为了更好的区分本申请实施例提供的剪贴板和上文中提到的剪贴板,下文中以中转站指代操作系统提供的剪贴板,中转站是一个系统维护的进程,可以以服务(service)或系统应用程序的形式运行。
首先,如图6中的(A)所示,电子设备上显示的界面为文档应用程序的界面,用户可以选中多个文字,该多个文字可以是完整的一个或多个段落,也可以是不完整的一个或多个段落。该选中的多个文字为选中数据1。用户可以执行预设的操作,该预设的操作用于触发显示窗口601。该预设操作为预先定义的长按、双击、绘制预设图案或语音命令等其他操作,本申请实施例对该预设操作不做限定。在电子设备显示的界面包括窗口601后,响应与用户的操作,该选中数据1为一段文字。
或者,如图7中的(A)所示,在电子设备的界面上也可以先不显示窗口601,响应于用户的操作,确定选中数据1。
然后,如图6中的(B)所示,响应于用户的拖拽操作,选中数据1被复制到中转站中。其中,拖拽操作的起点可以为被选中的数据,拖拽操作的终点可以为窗口601的位置。或者,如图7中的(B)所示,响应于用户的拖拽操作,当用户的拖拽操作靠近屏幕边缘时,显示窗口601。如图7中的(C)所示,当用户的拖拽操作的终点为窗口601的位置,选中数据1被复制到中转站中。
类似的,如图6中的(C),用户还可以选中图片等其他格式或类型的媒体元素。在图6中的(C)所示的内容中,图片1为选中数据2;如图6中的(D),响应于用户的拖拽操作,选中数据2被发送到中转站中。
值得说明的是,本申请实施例提供的复制数据的方法也可以支持用户通过如图1中的(B)所示的交互方式将数据发送到中转站中。
图8和图9为本申请实施例提供的复制方法的场景的另一个示例性示意图。
如图8中的(A)和(B)所示,用户可以在目标应用程序的界面上呼出控件1C01,并且通过点击控件1C02呼出窗口801。窗口801为中转站的一种界面。与上文对比可知,窗口601为中转站的另一种界面。
如图8中的(B)所示,窗口801以展开的形式展示用户之前复制、剪切或拖拽的数据,分别包括控件802、控件803、控件804。其中,不同的控件对应不同的复制数据。
在窗口801中,控件的排列顺序可以与控件对应的数据进入中转站的先后有关。例如,在后进入中转站的数据对应得控件在先排列。或者,控件的排列顺序可以与控件对应的数据的格式有关,例如,中转站中按照文本格式、图片格式、其他多媒体格式的顺序排列数据对应的控件。值得说明的是,本申请实施例并不对中转站界面上控件的排列顺序做任何形式的限制。
在窗口801中,不同数据的展现形式也可以不同。例如,当数据为文字时,该数据对应的控件上会显示数据的前几个文字;当数据为图片时,该数据对应的控件上会显示图片的缩略图,当数据为文件时,该数据对应的控件上会显示文件的名称、大小;当数据为文件时,该数据对应的控件上可以显示文件的大小和名称。
可选地,在本申请一些实施例中,用户复制、剪切或拖拽的数据包括多个图片的时候,多个图片可以对应一个控件显示,并且该控件显示特殊的特效,如重影、阴影等,进而提示用户该控件对应多个数据。其次,在用户点击该控件后,在窗口801中显示多个子控件分别对应多个图片。
值得说明的是,窗口中的一个控件对应一个条目,其中,用户一次复制或拖拽可以对应多个条目。例如,用户一次复制或拖拽多个段落的文字,则该多个段落的文字可以对应一个条目;或者,该多个段落的文字也可以对应多个条目,条目的数量和段落相同。用户一次幅值或拖拽多个相册中图片,则该多个相册可以对应一个条目;或者,该多个相册也可以对应多个条目。当多个相册对应一个条目的时候,在用户点击该条目对应的控件后或者用户执行其他操作后,该条目会展开为多个子条目,子条目的数量可以与相册中选中的图片的数量一致。
如图8中的(C)和(D)所示,用户可以在窗口801中通过选择控件进而选择需要复制到目标应用程序中的数据。然后,用户可以通过拖拽或者如图1中的(C)所示的交互方式,将文本2复制到目标应用程序中。
在图8中,控件803对应的数据即为图6和图7中的选中数据1;控件804对应的数据即为图6和图7中的选中数据2。
如图9中的(A)所示,用户也可以通过执行预设的操作,在目标应用程序的界面上呼出窗口601,并通过点击窗口601,使得中转站的界面变为展开形态,如窗口801。
图9中的(B)、(C)和(D)所示的内容与图8中的(B)、(C)和(D)相同,可以查看上文的描述,此处不再赘述。
值得说明的是,用户可以将不同应用程序中的数据拷贝至中转站中,即源应用程序可以是多个,并不局限与一个。
场景2:修改中转站中的数据。
本申请实施例提供的复制数据的方法,还可以使得用户可以调整数据对应的控件的排列顺序;并且,可以支持用户一次选择多个控件,即支持用户通过一次操作将多个数据拷贝到目标应用程序中。
图10为本申请实施例提供的复制数据的方法的场景的另一个示例性示意图。
如图10中的(A)所示,目标应用程序中显示的内容为:文本1、图片1、图片2、文本2。用户可以通过上文中图7或图6所示的操作,将文本1、图片1、图片2和文本2复制到中转站中。
窗口801中显示有对应不同数据的控件,文本1对应的控件1001,文本2对应的控件1002,图片1对应的控件1003,图片2对应的控件1004。
并且中转站可以按照文件的格式执行修改文件对应的控件在中转站中的排列顺序。
可选地,在本申请一些实施例中,中转站也可以不对数据的排列顺序按照文件的格式执行修改。
用户可以在窗口801中调整不同控件的排列顺序,或者也可以删除部分控件以从中转站中删除该控件对应的数据,或者也可以在中转站中编辑数据。例如,如图10中的(B)所示,用户可以选中控件1001,然后通过移动控件1001去调整控件1001与控件1002的相对顺序。
如图10中的(C)所示,用户可以选中多个控件,并通过拖拽操作将数据拷贝至目标应用程序中。目标应用程序为便签应用程序。
如图10中的(D)所示,被拷贝至目标应用程序的数据内部的排列与数据在中转站中排列一致。即,复制后的目标应用程序内数据的排列为:文本2、文本1、图片1、图片2。
图11为本申请实施例提供的复制数据的方法的场景的另一个示例性示意图。
如图11中的(A)所示,中转站的界面中除了显示与不同数据对应的控件外,在每个控件上还显示有用于删除该控件所对应数据的控件。例如,对应文本1的控件1001上显示有控件1101,对应文本2的控件1002上显示有控件1102;对应图片1的控件1003上显示有控件1103;对应图片2的控件1004上显示有控件1104。其中,控件1101、控件1102、控件1103、控件1104分别用于删除控件1001、控件1002、控件1003、控件1004。
例如,在用户点击控件1104后,控件1004会被删除,如图10中的(B)所示。在该情况下,中转站中保存有文本1、文本2和图片1的数据。
场景3:使用历史剪贴数据。
图12为本申请实施例提供的复制数据的方法的场景的另一个示例性示意图。
在电子设备显示窗口801的情况下,用户可以通过下滑或上滑等操作,使得窗口801中显示历史剪贴数据对应的控件。如图12中的(A)所示,窗口801中包括控件1001和控件1002。响应于用户的上滑操作,如图12中的(B)所示,窗口801中显示控件1203和控件1204。其中,控件1203对应于文本3,控件1204对应于图片3。
其中,文本3和图片3为历史剪贴数据。
其中,区分非历史剪贴数据和历史剪贴数据的方式在此不做限定。例如,可以通过数据进入中转站的时间来划分;又例如,可以根据中转站的界面是否被关闭来区分;又例如,可以配置数量阈值,按照数据进入中转站的时间顺序排序,次序超过数量阈值的数据为历史剪贴数据。
例如,文本3和图片3进入中转站的时间距用户本次打开中转站的界面超过时间间隔,而文本1和文本2进入中转站的时间距用户本次打开中转站的界面小于时间间隔,则文本1和文本2为非历史剪贴数据,文本3和图片3为历史剪贴数据。
又例如,用户在将文本3和图片3拖拽或复制到中转站后,关闭了中转站的界面;然后,用户将文本1和文本2拖拽或复制到中转站。再然后,用户在打开目标程序的界面后,通过预设操作打开中转站的界面后,文本1和文本2为非历史剪贴数据,文本3和图片3为历史剪贴数据。
可以理解的是,本申请实施例提供的复制数据的方法可以使得用户可以十分方便的将最近复制或拖拽的数据从中转站拷贝到目标应用程序中。
场景4:跨设备分享数据。
保存在中转站中的数据可以通过近场无线通信技术,如Wi-Fi、蓝牙、NFC等方式,将数据分享到附近的已经连接的其他电子设备;或者,通过服务器将数据同步到同一账户登录的其他电子设备上。
图13A和图13B为本申请实施例提供的复制数据的方法的场景一个示例性示意图。
当用户在电子设备1上的回收站中保存有两个数据,分别为与控件1001对应的文本1和与控件1002对应的文本2,如图13A中的(A)所示。
在电子设备1和电子设备2已经连接的情况下,或者在电子设备1和电子设备2登录的账户为同一账号的情况下,电子设备1会将中转站中的数据同步/发送到电子设备2上。
当用户在电子设备2上通过点击窗口601,打开中转站。然后在窗口801中,可以看到用户在电子设备1上保存的文本1和文本2对应的控件,如图13A中的(B)和(C)所示。
如图13B所示,电子设备1上的中转站保存有三个数据,分别与控件1001对应的文本1和与控件1002对应的文本2以及与控件1003对应的图片1,如图13B中的(A)所示。用户可以选中控件1002和控件1003,然后通过拖拽或其他操作将文本2和图片1分享到其他电子设备上。例如,如图13B中的(B)所示,用户的拖拽操作的起点为选中数据对应的控件,拖拽操作的终点为控件1302。其中,窗口1301中包括控件1302和控件1303,分别用于表示电子设备1和电子设备2。
在用户执行上述操作后,在电子设备2上的中转站的界面中可以看到文本2和图片1。如图13B中的(C)所示,电子设备2上的窗口801中出现与文本2和图片1对应的控件1002和控件1003。
可以理解的是,本申请实施例提供的复制数据的方法,无需对待分享的多个数据执行多次跨设备分享的操作,只修要将数据复制或拖拽到中转站中,就可以使得用户更方便的在设备之间进行内容的分享,提高了用户的体验。
在介绍了本申请实施例提供的复制数据的方法后,介绍本申请实施例提供的复制数据的方法的方法流程。
图14为本申请实施例提供的复制数据的方法的方法流程的一个示例性示意图。
本申请实施例提供的复制数据的方法可以包括六个步骤,其中,步骤S1403和S1404为可选的步骤;其中,步骤S1405和步骤S1406的触发时机为用户的操作。
S1401:响应于用户的第一操作,确定选中数据,并将选中数据发送到中转站。
其中,用户的第一操作可以为复制操作,如图1中的(B)、图2中的(B)所示;或者,用户的第一操作可以为拖拽操作,如图6中的(B)或图7中的(B)和(C)所示。
在确定选中数据后,选中数据会被发送到中转站。其中,中转站是为了用于区分上文的剪贴板的一个名称,并不代表任何限定。中转站是一个系统维护的进程,可以以服务(service)或系统应用程序的形式运行。
与上文中的图3或图4所示的内容类似,源应用程序会将用户选中的数据发送到中转站。
其中,选中数据在被源应用程序发送前,会将选中数据封装为ClipData对象(复制数据对象)。其中,ClipData对象的一个示例性的格式如图15所示。
S1402:中转站对选中数据执行处理,得到扩展数据。
中转站会处理Clipadata对象为ExtendData对象(扩展数据对象)。其中,处理的过程如图15所示。
图15为本申请实施例提供的将选中数据转换为扩展数据对象的一个示例性示意图。
首先,源应用程序会将选中数据转换为ClipData对象,然后发送到中转站。
其中,ClipData对象为用于承载用户拖拽、剪切或复制内容的数据结构。ClipData对象包括ClipDescription(复制数据的描述信息)和一个或多个ClipData.Item(条目)。用户的一次拖拽、剪切或复制操作会生成一个ClipData对象。以拖拽为例,当用户拖拽一项内容,源应用程序生成的ClipData对象中保存一个ClipData.Item,如图15中的条目1;当用户拖拽多项内容,则构造ClipData的存放多个ClipData.Item,如图15中的条目1至条目n。
其中,ClipData.Item中可以包括Text(文本)、Html(链接)、Uri(资源标识)、Intent(意图)。如果用户拖拽的是文字,则条目中的Text存放对应的文本内容;如果用户拖拽的是图片或文件,则ClipData.Item中Uri存放指向图片或文件的标识符。
中转站在接收到ClipData对象后,会将ClipData对象拆分、封装为ExtendData对象。
其中,ExtendData对象内的Description(扩展描述信息)包含原来的ClipDescription,ExtendData对象的ExtendItem(扩展条目)包含原来ClipData对象中的ClipData.Item,并且相比于ClipData.Item,ExtendItem新增了一些状态参数。
状态参数可以包括:Type、Status、Size等,在此不做限定。其中,Type用于标注每项内容的类型,常用的类型有文本内容、图片、文件等,由于不同类型的内容呈现不同的布局显示效果,Type还会影响该扩展条目的显示效果,如上文中的图8中窗口801中控件的大小与控件上显示的内容;Status用于标注每项内容的状态,该状态标记当前内容是否支持拖出或拷贝,一些来自其他三方应用的文件需要进行拷贝完成才能拖出或拷贝;Size用于标记该项内容对应文件大小,如果该项内容对应文件则该值有效。
值得说明的是,上文涉及的Type、Status、Size仅仅只是对状态参数的一个示例性说明,状态参数还可以包括其他参数,在此不做限定。
ExtendData对象中维护了一个ExtendItem列表,该ExtendItem列表记录了ExtendData对象中的ExtendItem。ExtendItem列表用于支持用户的对中转站中的条目进行删除、调整顺序,如上文中图10和图11所示的内容。
值得说明的是,源目标程序与中转站之间的数据传递的格式为ClipData对象,为了支持用户对ClipData对象进行编辑,所以本申请实施例提供的复制数据的方法,在中转站将ClipData对象进行拆分、封装得到扩展数据对象;该扩展数据对象可以支持用户的条目级别的删除、调整顺序、拖拽、拷贝等操作。
中转站进程可以将一个或多个ExtendItem转换为ClipData对象。当用户完成删除、多选等对每项条目的编辑操作后,对编辑后的条目进行拖拽或选择多项条目并分享到其他设备操作时,根据ExtendData对象中Description中的ClipDescription,ExtendItem列表中的ExtendItem重新创建新的ClipData对象,并将ClipData对象传递到目标应用程序。
可以理解的是,本申请实施例提供的ExtendData对象,首先,由于添加了状态参数,为中转站可视化界面的实现提供夯实的数据基础。
S1403:可选地,对多个扩展数据对象执行合并处理。
在中转站处理源应用程序向中转站发送的数据前,中转站内部已经存有ExtendData对象,则可以对多个扩展数据执行合并处理,进而使得中转站中只保存一个不断变化的ExtendData对象;或者,中转站会保存多个ExtendData对象,分别对应用户不同的拖拽或复制操作。
图16A和图16B为本申请提供的扩展数据合并处理的一个示例性示意图。
如图16A所示,应用程序1将选中数据1发送到中转站后,中转站将选中数据1对应的ClipData对象转换为ExtendData对象,即图16A中的扩展数据对象1;然后,应用程序2将选中数据2对应的ClipData对象发送到中转站。中转站接收到选中数据2对应的ClipData对象后,可以将该ClipData对象转换为ExtendData对象,然后将两个数据对应的扩展数据对象合并,即图16A中的扩展数据对象2。如图16A所示,中转站将扩展数据对象1和扩展数据对象2合并,生成扩展数据对象3。
或者,应用程序1将选中数据1发送到中转站后,中转站将选中数据1对应的ClipData对象转换为ExtendData对象,即图16A中的扩展数据对象1;然后,应用程序2将选中数据2对应的ClipData对象发送到中转站;最后,中转站将选中数据2对应的ClipData对象和选中数据1对应的ExtendData对象合并为新的ExtendData对象。如图16A所示中转站将选中数据2和扩展数据对象1合并,生成扩展数据对象3。
图17为本申请实施例提供的ExtendData对象合并的一个示例性示意图。
扩展数据对象合并时,对被合并的ExtendData对象的Description的MimeType取并集,扩充新生成的ExtendData对象的ExtendItem列表,依次添加被合并ExtendData对象的ExtendItem。或者,也可以通过扩展一个被合并的ExtendData对象,进而生成新的ExtendData对象,例如,在任意一个被合并的ExtendData对象中,对被合并的ExtendData对象的Description的MimeType取并集,在ExtendItem列表中添加其他被合并ExtendData对象ExtendItem列表。
如图17所示,将扩展数据对象1和扩展数据对象2的合并生成扩展数据对象3;扩展数据对象3的ExtendItem包括扩展数据对象1的ExtendItem和扩展数据对象2的ExtendItem;扩展数据对象3的Description相当于扩展描述信息1和扩展描述信息2的并集,即对MimeType取并集。
S1404:可选地,将保存的扩展数据对象执行持久化处理。
中转站可以将保存的数据执行持久化处理,即将进程内存空间中的数据保存在电子设备的硬盘或其他存储介质上,进而使得数据不会由于中转站的销毁而丢失。对应的,中转站也可以将保存在电子设备的硬盘或其他存储介质上的数据读取到进程内存空间中,方便用户的使用。
中转站有多种触发时机去执行步骤S1404,在此不做限定。例如,中转站可以间隔固定的时间将ExtendData对象执行持久化处理;又例如,中转站可以在ExtendData对象发生变化后持久化ExtendData对象,发生变化可以是用户删除某个条目或调整不同条目之间的顺序;又例如,中转站可以在中转站的界面关闭后持久化ExtendData对象。
对应的,中转站也有多种触发时机去将持久化的ExtendData对象恢复至中转站对应的进程的内存空间中,在此不做限定。例如,中转站的界面从未显示到显示的情况下,中转站恢复持久化的ExtendData对象;又例如,如上文中图12所示的内容,在用户通过上滑或下滑等操作使得窗口801显示历史剪贴数据时,中转站恢复持久化的ExtendData对象。
图18A为本申请实施例提供的对数据执行持久化处理的一个示例性示意图。
首先,中转站可以按照Description、ExtendItem的个数、以及ExtendItem的内容依次进行序列化。其中,Description的序列化可以采用ClipDescription的writeToParcel方法实现。Description序列化之后,接着往序列化数据中写入ExtendItem个数,如果ExtendItem个数为0则写入0。然后依次对ExtendItem的内容进行序列化,首先将ClipData.Item进行序列化,其次将状态参数等字段写入到序列化数据中。
可选地,在本申请一些实施例中,中转站也可以按照其他顺序序列化ExtendData对象,在此不做限定。
其次,在序列化后,将序列化数据转换为字节数组。例如,可以通过parcel#marshall方法将其转换为字节数组。
再次,在字节数组变为字符流。例如,可以通过base64.encodeToString方法将字节数组变为字符流。
最后,通过I/O操作将字符流写入到文件中,进而实现持久化存储。
值得说明的是,中转站进程可以按照图18A相反的顺序将数据从电子设备的硬盘或其他存储介质上读取到进程的内存空间中,实现ExtendData对象的持久化恢复。
首先,中转站通过I/O操作从持久化文件中读取字符串。
然后,将字符流解码成字节数组。例如,可以通过调用Base64.decode方法将字符流解码成字节数组。
其次,将字节数组转成序列化数据。例如,可以通过Parcel#unmarshall方法将字节数组转成序列化数据。
最后,得到序列化数据之后,按照序列化的顺序依次将Description、ExtendItem个数以及ExtendItem的内容从序列化数据中反序列化出来其中,在反序列化的过程中,确定ExtendItem个数不为0,则继续反序列化,进而获取ExtendItem的内容,还原ExtendItem列表,最终恢复ExtendData对象;若确定ExtendItem个数为0,则终止反序列化。例如,可以通过CREATE#createFromParcel实现Description的反序列化。
图18B为本申请实施例提供的对数据执行持久化处理的一个示例性示意图。
在对ExtendData对象按照图18A所示的方法执行持久化后,电子设备保存的文件与ExtendData对象的对应关系。
文件包括字段1、字段2、字段31、字段32、…、字段3n。其中,字段1对应于扩展描述信息;字段2对应于扩展条目的数量;字段31至字段3n对应于扩展条目1至扩展条目n。
可选的,在本申请一些实施例中,也可以通过Content Provider、SharedPreferences等组件或者SQlite数据库将ExtendData对象保存在电子设备的硬盘或其他存储介质上。
可以理解的是,通过图18A所示的方法持久化ExtendData对象,首先可以保证ExtendData对象的Description、ExtendItem等参数相对位置不会发生错乱,进而可以快速从本地恢复出ExtendData对象;其次,相比于其他的持久化方式,图18A所示的方法消耗的系统资源较少,是一种轻量级的持久化方式,且不依赖其他系统组件,进而可以适用包括安卓在内的多种操作系统。
S1405:可选地,响应于用户的第二操作,删除扩展数据对象中的条目。
如上文中的图11所示的内容,响应于用户点击控件1104,窗口801中的控件1104被删除,对应的,中转站也会删除ExtendData对象中的ExtendItem。
图19为本申请实施例提供的删除ExtendItem的一个示例性示意图。
结合图11和图19所示的内容,在用户点击控件1104后,中转站会删除控件1004对应的ExtendItem。在图19所示的内容中,文本1对应扩展条目1、文本2对应扩展条目2、图片1对应扩展条目3、图片2对应扩展条目4。
在用户点击控件1104后,中转站会删除扩展条目4;对应的,窗口801中也没有显示控件1004。
S1406:可选地,响应于用户的第三操作,调整扩展对象中的条目的排列顺序。
如上文中的图10中的(B)所示,用户可以调整文本1和文本2的相对排列顺序,则中转站可以对应的调整不同的ExtendItem的排列顺序。
图20为本申请实施例提供的调整ExtendItem的排列顺序的一个示例性示意图。
如图20所示,文本1对应扩展条目1、文本2对应扩展条目2、图片1对应扩展条目3、图片2对应扩展条目4。当用户通过操作调整控件1101和控件1102的位置后,即调整文本1和文本2在窗口上的排列顺序后,中转站也可以修改扩展数据对象中ExtendItem的排列顺序,即修改扩展条目11和扩展条目12的顺序。
S1407:响应于用户的第四操作,生成复制数据对象,并将复制数据对象发送到目标应用程序。
如上文中的图8、图9、图10所示的内容,当响应于用户的拖拽或拷贝操作,中转站进程生成ClipData对象,将ClipData对象发送到目标应用程序。
其中,目标应用程序可以是其他设备上的进程或应用程序,或者目标应用程序可以是本地电子设备上的其他应用程序或进程。当目标应用程序时其他电子设备上的中转站时,发送的数据可以不是ClipData对象,而是ExtendData对象。或者,当目标应用程序可以解析ExtendData对象,则中转站发送的数据可以不是ClipData对象,而是ExtendData对象。
当用户进行拖拽或拷贝操作时,根据ExtendData对象的Description中的ClipDescription和ExtendItem列表中每项ExtendItem对应ClipData.Item重组成新的ClipData,然后将ClipData发送到目标应用程序。
图21为本申请实施例提供的生成ClipData对象并发送到目标应用程序的一个示例性示意图。
如图21所示,当用户还未在窗口801中选中多个数据并执行拖拽或拷贝的时候,中转站中可以保存有一个ExtendData对象,或者也可以是多个ExtendData对象。当用户选中控件1101和控件1102后,即选中文本1和文本2后,并执行拖拽或复制操作后,中转站会生成对应文本1和文本2的ClipData对象。其中,该ClipData对象为用于发送给目标应用程序的数据;其中,该ClipData对象包括ClipDescription和数据对应的ClipData.Item,即该ClipData对象包括文本1和文本2对应的描述信息,还包括条目1和条目2。
图22为本申请实施例提供的生成ClipData对象并发送到目标应用程序的另一个示例性示意图。
如图22所示,在用户还未执行拖拽或拷贝的操作的时候,中转站保存有一个ExtendData对象;当用户执行拖拽或拷贝的操作后,中转站生成ClipData对象,然后将ClipData对象发送到目标应用程序,进而使得目标应用程序可以接收并正确解析该ClipData对象。
可以理解的是,为了提高中转站的兼容性,以目标应用程序可以解析的格式发送数据,即将ExtendData对象转换为ClipData对象。值得说明的是,当目标应用程序的可以解析的格式为其他格式时,也可以发送其他格式的数据,其中,该其他格式的数据不局限于ClipData对象,该其他格式的数据可以由扩展数据对象转换而来。
图23为本申请实施例提供的复制数据的方法的数据流程的一个示例性示意图。
如图23所示,首先,用户可以通过拖拽或复制操作将源应用程序1中的选中数据1拖拽或复制到中转站中,则源应用程序1可以会将选中数据1对应的ClipData对象发送给中转站。其中,选中数据1对应的ClipData对象为复制数据对象1。
然后,中转站将ClipData对象拆解、封装为ExtendData对象。即将复制数据对象1转换为扩展数据对象1。中转站可以根据扩展数据对象1的状态参数去调整每个ClipData.Item的显示效果。如文字内容就直接显示前几段文字;图片内容显示成图片具体内容的缩略图;文件内容显示文件图标、文件名以及文件大小。
再次,当用户主动关闭中转站的显示,或者销毁中转站对应的进程,或者系统销毁中转站对应的进程前,可以持久化中转站的数据,即对扩展数据对象1执行持久化处理。
再次,用户可以将源应用程序2中的选中数据2拖拽或复制到中转站中,则源应用程序2可以会将选中数据2对应的ClipData对象发送给中转站。其中,选中数据2对应的ClipData对象为复制数据对象2。
再次,中转站可以有至少两种处理方式,一种是保存一个新的扩展数据对象3,该扩展数据对象3中保存有选中数据1和选中数据2;或者,另一种是保存扩展数据对象1和扩展数据对象2。
最后,用户切换到目标应用程序后,可以选择拖拽或拷贝选中数据1和选中数据2中的部分或全部数据;对应的,中转站就会生成对应的复制数据对象3发送给目标应用程序。其中,值得说明的是,复制数据对象3和扩展数据对象3不对应,而是和用户切换到目标应用程序后拷贝或拖拽的数据对应。
可以理解的是,本申请实施例提供的复制数据的方法,实现了对拖拽、剪切或复制的内容对应的ClipData对象的持久化和恢复,进而实现了被复制、剪切或拖拽的数据的持久化和恢复,并且提高了复用ClipData对象的稳定性和容错性,极大优化用户体验。
图24为本申请实施例提供复制数据的方法的数据流程的另一个示例性示意图。
如图24所示,首先,用户可以通过拖拽、复制或剪切操作将源应用程序的选中的图片、文字和文件等多项内容对应的选中数据发送到中转站。其中,多项内容依次对应条目1、条目2、条目3。其中,源应用程序会将选中数据转换为ClipData对象,然后传递到对比文件
然后,中转站在接收到承载多项内容的ClipData对象后,会对应的转换为ExtendData对象,并更具状态参数去调整不同ClipData.Item或ExtendItem的展示效果。在中转站为ClipData.Item或ExtendItem提供了可视化的界面后,用户可以对这些数据执行删除、调整相对位置等操作。当用户删除条目2后,此时显示的内容就剩下了条目1和条目3。
最后,在目标应用程序中,用户通过拖拽或拷贝等操作可以使得中转站构造条目1和条目3对应的ClipData对象,并将该ClipData对象发送到目标应用程序中,即完成了数据的拷贝。
图25和图26为本申请实施例提供的跨设备场景下复制数据的方法的数据流程的一个示例性示意图。
如图25所示,跨设备场景下,复制数据的方法包括四个步骤。
S2501:响应于用户的操作,确定选中数据。
如何确定选中数据可以参考上文的描述,此处不再赘述。
S2502:发送选中数据对应的复制数据对象。
应用程序1确定选中数据后,将选中数据转换为ClipData对象,然后将第一选中数据对应的ClipData对象发送到中转站进程。
S2503:中转站生成对应的扩展数据对象。
中转站生成对应的ExtendData对象,保存。
S2504:发送扩展数据对象中的部分或全部的条目对应的复制数据对象。
本地电子设备上的中转站向对端电子设备的应用程序2发送用户选中的或全部的条目对应的ClipData对象。
如图26所示,与图25不同的是,当对端电子设备上存在中转进程的情况下,中转站进程1向对端电子设备上的中转进程2发送。
S2601:响应于用户的操作,确定第一选中数据。
与步骤S2501相同,此处不再赘述。
S2602:发送第一选中数据对应的复制数据对象。
应用程序1确定选中数据后,将选中数据转换为ClipData对象,然后将第一选中数据对应的ClipData对象发送到中转站进程1。
S2603:生成对应的扩展数据对象。
与步骤S2503相同,此处不再赘述。
S2604:发送部分或全部的条目对应的扩展数据对象。
本地电子设备上的中转站进程1向对端电子设备上的中转站进程2部分或全部的条目对应的ExtendData对象。
可选地,在本申请一些实施例中,本地电子设备上的中转站进程1向对端电子设备上的中转站进程2部分或全部的条目对应的ClipData对象。
S2605:发送扩展数据对象中的部分或全部的条目对应的复制数据对象。
与上文中步骤S2504内容相同,此处不再赘述。
最后,介绍本申请实施例提供的电子设备的硬件结构和软件架构。
图27为本申请实施例提供的电子设备的硬件结构的一个示例性示意图。
电子设备可以是手机、平板电脑、桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmentedreality,AR)设备、虚拟现实(virtual reality,VR)设备、人工智能(artificialintelligence,AI)设备、可穿戴式设备、车载设备、智能家居设备和/或智慧城市设备,本申请实施例对该电子设备的具体类型不作特殊限制。
电子设备可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备的具体限定。在本申请另一些实施例中,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuit sound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronousreceiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processorinterface,MIPI),通用输入输出(general-purpose input/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serialbus,USB)接口等。
I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器110可以包含多组I2C总线。处理器110可以通过不同的I2C总线接口分别耦合触摸传感器180K,充电器,闪光灯,摄像头193等。例如:处理器110可以通过I2C接口耦合触摸传感器180K,使处理器110与触摸传感器180K通过I2C总线接口通信,实现电子设备的触摸功能。
I2S接口可以用于音频通信。PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。MIPI接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。MIPI接口包括摄像头串行接口(camera serialinterface,CSI),显示屏串行接口(display serial interface,DSI)等。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备的结构限定。在本申请另一些实施例中,电子设备也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
电子设备的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在电子设备上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code divisionmultiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(globalnavigation satellite system,GLONASS),北斗卫星导航系统(beidou navigationsatellite system,BDS),准天顶卫星系统(quasi-zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,电子设备可以包括1个或N个显示屏194,N为大于1的正整数。
电子设备可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。摄像头193用于捕获静态图像或视频。数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。视频编解码器用于对数字视频压缩或解压缩。NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
内部存储器121可以包括一个或多个随机存取存储器(random access memory,RAM)和一个或多个非易失性存储器(non-volatile memory,NVM)。
随机存取存储器可以包括静态随机存储器(static random-access memory,SRAM)、动态随机存储器(dynamic random access memory,DRAM)、同步动态随机存储器(synchronous dynamic random access memory,SDRAM)、双倍资料率同步动态随机存取存储器(double data rate synchronous dynamic random access memory,DDR SDRAM,例如第五代DDR SDRAM一般称为DDR5 SDRAM)等;
非易失性存储器可以包括磁盘存储器件、快闪存储器(flash memory)。
快闪存储器按照运作原理划分可以包括NOR FLASH、NAND FLASH、3D NAND FLASH等,按照存储单元电位阶数划分可以包括单阶存储单元(single-level cell,SLC)、多阶存储单元(multi-level cell,MLC)、三阶储存单元(triple-level cell,TLC)、四阶储存单元(quad-level cell,QLC)等,按照存储规范划分可以包括通用闪存存储(英文:universalflash storage,UFS)、嵌入式多媒体存储卡(embedded multi media Card,eMMC)等。
随机存取存储器可以由处理器110直接进行读写,可以用于存储操作系统或其他正在运行中的程序的可执行程序(例如机器指令),还可以用于存储用户及应用程序的数据等。
非易失性存储器也可以存储可执行程序和存储用户及应用程序的数据等,可以提前加载到随机存取存储器中,用于处理器110直接进行读写。
外部存储器接口120可以用于连接外部的非易失性存储器,实现扩展电子设备的存储能力。外部的非易失性存储器通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部的非易失性存储器中。
电子设备可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。
耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。
陀螺仪传感器180B可以用于确定电子设备的运动姿态。气压传感器180C用于测量气压。磁传感器180D包括霍尔传感器。电子设备可以利用磁传感器180D检测翻盖皮套的开合。加速度传感器180E可检测电子设备在各个方向上(一般为三轴)加速度的大小。距离传感器180F,用于测量距离。接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。环境光传感器180L用于感知环境光亮度。指纹传感器180H用于采集指纹。温度传感器180J用于检测温度。触摸传感器180K,也称“触控器件”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。
骨传导传感器180M可以获取振动信号。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。电子设备可以接收按键输入,产生与电子设备的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和电子设备的接触和分离。电子设备可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口195可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。SIM卡接口195也可以兼容不同类型的SIM卡。SIM卡接口195也可以兼容外部存储卡。电子设备通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,电子设备采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在电子设备中,不能和电子设备分离。
在本申请实施例中,中转站可以将ExtendData保存在非易失性存储器中,进而实现ExtendData的持久化。
在本申请实施例中,电子设备可以通过移动通信模块150或无线通信模块160,将ClipData对象或ExtendData发送到对端电子设备。
电子设备的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android系统为例,示例性说明电子设备的软件结构。
图28为本申请实施例提供的电子设备的软件架构的一个示例性示意图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图28所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图28所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
在本申请实施例中,应用程序框架层中还可以包括中转站。中转站可以接收应用程序层的程序发来的与选中数据对应的ClipData对象,并向应用程序层的程序发送选中数据对应的ClipData对象。
或者,中转站也可以是应用程序层的一个系统级别的应用程序。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
图29为本申请实施例提供的电子设备的软件架构的另一个示例性示意图。
如图29所示,中转站可以接收一个或多个源应用改程序发送的一个或多个复制数据对象。例如,中转站可以接收源应用程序1发送的复制数据对象1和源应用程序2发送的复制数据对象2。
中转站也可以向目标应用程序发送复制数据对象3。
中转站也可以将ExtendData对象发写入非易失存储介质中,也可以将ExtendData对象从非易失存储介质中读出。
上述实施例中所用,根据上下文,术语“当…时”可以被解释为意思是“如果…”或“在…后”或“响应于确定…”或“响应于检测到…”。类似地,根据上下文,短语“在确定…时”或“如果检测到(所陈述的条件或事件)”可以被解释为意思是“如果确定…”或“响应于确定…”或“在检测到(所陈述的条件或事件)时”或“响应于检测到(所陈述的条件或事件)”。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如DVD)、或者半导体介质(例如固态硬盘)等。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,该流程可以由计算机程序来指令相关的硬件完成,该程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法实施例的流程。而前述的存储介质包括:ROM或随机存储记忆体RAM、磁碟或者光盘等各种可存储程序代码的介质。
Claims (28)
1.一种复制数据的方法,应用于电子设备,其特征在于,包括:
响应于接收到用户的第一操作,所述电子设备通过第一源应用程序确定第一选中数据,并将所述第一选中数据发送到第一进程,所述第一操作为复制、剪切或拖拽,所述第一选中数据包括图片、文字段落、文件中的至少一种;
所述电子设备通过所述第一进程将所述第一选中数据转换为第一扩展数据对象,所述第一扩展数据对象包括所述第一选中数据和第一状态参数,所述第一状态参数至少用于描述所述第一选中数据中数据的格式;
响应于接收到用户的第二操作,所述电子设备显示第一窗口,所述第一窗口用于展示包括所述第一选中数据在内的数据,其中,不同格式的数据的展示方式不同。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
所述电子设备通过所述第一进程基于所述状态参数确定不同格式的数据在所述第一窗口中的展示方式。
3.根据权利要求2所述的方法,其特征在于,所述电子设备通过所述第一进程基于所述状态参数确定不同格式的数据在所述第一窗口中的展示方式,具体包括:
所述第一选中数据包括多个数据,所述第一窗口中存在与所述多个数据对应的多个控件;
所述第一进程根据所述状态参数确定所述多个控件内部的排列顺序。
4.根据权利要求3所述的方法,所述排列顺序为文本、图片、文件。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述状态参数包括格式参数,所述格式参数用于标识数据的格式;
所述状态参数还包括大小参数和拷贝参数中的至少一种,所述大小参数用于标识数据的大小,所述拷贝参数用于标识数据是否已经拷贝至所述第一进程的内存空间中。
6.根据权利要求1或2所述的方法,其特征在于,在响应于接收到用户的第二操作,所述电子设备显示第一窗口后,所述方法还包括:
所述第一窗口显示的内容包括第一控件,所述第一控件对应第一数据,所述第一数据属于所述第一选中数据;
响应于接收到用户对所述第一控件的第三操作,所述第一窗口不显示第一控件并且所述电子设备通过所述第一进程删除所述第一数据。
7.根据权利要求1或2所述的方法,其特征在于,在响应于接收到用户的第二操作,所述电子设备显示第一窗口后,所述方法还包括:
所述第一窗口显示的内容包括第一控件和第二控件,所述第一控件对应的数据属于所述第一选中数据,所述第一控件在所述第一窗口的第一位置显示;
响应于接收到用户对所述第一控件的第四操作,所述电子设备在所述第一窗口的第二位置显示所述第二控件,所述第一位置和所述第二位置不同。
8.根据权利要求1或2所述的方法,其特征在于,在响应于接收到用户的第二操作,所述电子设备显示第一窗口后,所述方法还包括:
所述第一窗口显示的内容包括多个控件,所述多个控件中的每一个控件对应第一选中数据中的一个数据,每个控件对应的数据不同;
响应于接收到用户对所述多个控件的第五操作,所述电子设备通过所述第一进程将所述多个控件对应的数据发送到目标应用程序,所述第五操作为拖拽操作;或者,响应于接收到用户对所述多个控件的第六操作以及用户在目标应用程序的界面中的第七操作,所述电子设备通过所述第一进程将所述多个控件对应的数据发送到目标应用程序,所述第六操作为用于选中所述多个控件的操作,所述第七操作为粘贴操作。
9.根据权利要求8所述的方法,其特征在于,所述电子设备通过所述第一进程将所述多个控件对应的数据发送到目标应用程序,具体包括:
所述电子设备通过所述第一进程基于所述多个控件确定所述多个控件对应的数据;
所述电子设备通过所述第一进程基于所述第一扩展数据对象和所述多个控件对应的数据生成第一复制数据对象ClipData;
所述电子设备通过第一进程将所述第一复制数据对象ClipData发送到所述目标应用程序。
10.根据权利要求1-7中任一项所述的方法,其特征在于,所述方法还包括:
所述电子设备通过所述第一进程将所述第一扩展数据对象保存在非易失存储介质中。
11.根据权利要求10所述的方法,其特征在于,所述第一进程将所述第一扩展数据对象保存在非易失存储介质中,具体包括:
所述电子设备通过所述第一进程将所述第一扩展数据对象序列化得到第一序列化对象;
所述电子设备通过所述第一进程将所述第一序列化对象转化为第一字节数组;
所述电子设备通过所述第一进程将所述第一字节数组转化为第一字符串;
所述电子设备通过所述第一进程将所述第一字符串写入到所述非易失存储介质中。
12.根据权利要求1或2所述的方法,其特征在于,在所述电子设备通过第一进程将所述第一选中数据转换为第一扩展数据对象后,所述方法还包括:
响应于接收到用户的第八操作,所述电子设备通过第二源应用程序确定第二选中数据,并将所述第二选中数据发送到第一进程,所述第八操作为复制、剪切或拖拽,所述第二选中数据包括图片、文字段落、文件中的至少一种;
所述电子设备通过所述第一进程将所述第二选中数据和所述第一扩展对象转换为第三扩展数据对象;或者,所述电子设备通过所述第一进程将所述第二选中数据转换为所述第二扩展数据对象。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
所述第一窗口中包括多个控件,所述多个控件对应的数据属于所述第一选中数据和所述第二选中数据;
响应于接收到用户对所述多个控件的第九操作,所述电子设备通过所述第一进程将所述多个控件对应的数据发送到目标应用程序,所述第五操作为拖拽操作;或者,响应于接收到用户对所述多个控件的第十操作以及用户在目标应用程序的界面中的第十一操作,所述电子设备通过所述第一进程将所述多个控件对应的数据发送到目标应用程序,所述第十操作为用于选中所述多个控件的操作,所述第十一操作为粘贴操作。
14.根据权利要求1或2所述的方法,其特征在于,
在所述响应于接收到用户的第一操作,所述电子设备通过第一源应用程序确定第一选中数据,并将所述第一选中数据发送到第一进程前,所述方法还包括:
响应于接收到用户的第十二操作,所述电子设备通过第三源应用程序确定第三选中数据,并将所述第三选中数据发送到所述第一进程,所述第十二操作为复制、剪切或拖拽;
在所述电子设备显示第一窗口后,所述方法还包括:
响应于接收到用户在所述第一窗口内的第十三操作,所述电子设备在所述第一窗口显示第三控件,所述第三控件对应的数据属于所述第三选中数据。
15.根据权利要求14所述的方法,其特征在于,
所述第二操作的发生时间与所述第十二操作的发生时间的时间间隔大于时间阈值。
16.根据权利要求14所述的方法,其特征在于,在所述响应于接收到用户的第十二操作,所述电子设备通过第三源应用程序确定第三选中数据,并将所述第三选中数据发送到所述第一进程后,并且在所述响应于接收到用户的第一操作,所述电子设备通过第一源应用程序确定第一选中数据,并将所述第一选中数据发送到第一进程前,所述方法还包括:
所述电子设备关闭所述第一窗口的显示。
17.根据权利要求1或2所述的方法,其特征在于,在所述电子设备显示第一窗口后,所述方法还包括:
所述第一窗口包括第一控件、第二控件、第三控件,所述第一控件与第一数据对应,所述第二控件与第二数据对应,所述第三控件用于将数据分享到对端电子设备;
响应于接收到用户对第一控件和第二控件的选中操作和用户对所述第三控件的操作,所述电子设备通过所述第一进程将所述第一数据和所述第二数据发送到所述对端电子设备。
18.根据权利要求17所述的方法,其特征在于,所述电子设备通过所述第一进程将所述第一数据和所述第二数据发送到所述对端电子设备,具体包括:
所述电子设备将第二复制数据对象ClipData发送到所述对端电子设备,所述第二复制数据对象ClipData对应的数据中包括所述第一数据和所述第二数据;
或者,所述电子设备将所述第二扩展数据对象发送到所述对端电子设备,所述第二扩展数据对象的数据中包括所述第一数据和所述第二数据。
19.根据权利要求1或2所述的方法,其特征在于,在所述电子设备通过所述第一进程将所述第一选中数据转换为第一扩展数据对象后,所述方法还包括:
所述电子设备通过所述第一进程将第一发送数据发送到对端电子设备,所述第一发送数据为第一扩展数据对象或者所述第一发送数据为与第一选中数据对应的复制数据对象ClipData。
20.一种复制数据的方法,其特征在于,应用于包括第一电子设备和第二电子设备的系统,所述第一电子设备和所述第二电子设备之间建立有通信连接,所述方法包括:
响应于接收到用户的第一操作,所述第一电子设备通过第一源应用程序确定第一选中数据并将所述第一选中数据发送到第一进程,所述第一操作为复制、剪切或拖拽,所述第一选中数据包括图片、文字段落、文件中的至少一种,所述第一源应用程序和所述第一进程在所述第一电子设备上;
所述第一电子设备通过所述第一进程将所述第一选中数据发送到所述第二电子设备;
响应于接收到用户的第二操作,所述第二电子设备显示第二窗口,所述第二窗口包括多个控件,所述多个控件与所述第一选中数据中的多个数据对应,所述多个控件中的控件对应的数据各不相同。
21.根据权利要求20所述的方法,其特征在于,所述第一电子设备通过第一源应用程序确定第一选中数据并发送到第一进程,具体包括:
所述第一电子设备通过所述第一源应用程序确定第一选中数据,并将所述第一选中数据对应的第一复制数据对象ClipData发送到第一进程。
22.根据权利要求21所述的方法,其特征在于,所述方法还包括:
所述第一电子设备通过所述第一进程将所述第一复制数据对象ClipData转换为第一扩展数据对象,所述第一扩展数据对象包括所述第一选中数据和第一状态参数,所述第一状态参数至少用于描述所述第一选中数据中数据的格式。
23.根据权利要求22所述的方法,其特征在于,所述第一进程将所述第一选中数据发送到所述第二电子设备,具体包括:
所述第一电子设备通过所述第一进程基于所述通信连接将第一扩展数据对象发送到第二进程,所述第二进程为第二电子设备上的进程;或者,所述第一电子设备通过所述第一进程基于所述通信连接将第一复制数据对象ClipData发送到目标应用程序,所述目标应用程序为所述第二电子设备上的应用程序。
24.根据权利要求22所述的方法,其特征在于,所述方法还包括:
响应于接收到用户对所述多个控件的第三操作,所述第二电子设备通过所述第二进程将所述多个控件对应的数据发送到目标应用程序,所述第五操作为拖拽操作;或者,响应于用户对所述多个控件的第四操作以及用户在目标应用程序的界面中的第五操作,所述第二电子设备通过所述第二进程将所述多个控件对应的数据发送到目标应用程序,所述第四操作为用于选中所述多个控件的操作,所述第五操作为粘贴操作。
25.一种电子设备,其特征在于,所述电子设备包括:一个或多个处理器和存储器;
所述存储器与所述一个或多个处理器耦合,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,所述一个或多个处理器调用所述计算机指令以使得所述电子设备执行如权利要求1-19中任一项所述的方法。
26.一种芯片系统,其特征在于,所述芯片系统应用于电子设备,所述芯片系统包括一个或多个处理器,所述处理器用于调用计算机指令以使得所述电子设备执行如权利要求1-19中任一项所述的方法。
27.一种计算机可读存储介质,包括指令,其特征在于,当所述指令在电子设备上运行时,使得述电子设备执行如权利要求1-19中任一项所述的方法。
28.一种包含指令的计算机程序产品,其特征在于,当所述计算机程序产品在电子设备上运行时,使得所述电子设备执行如权利要求1-19中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210552437.0A CN117130525A (zh) | 2022-05-20 | 2022-05-20 | 复制数据的方法及电子设备 |
PCT/CN2023/095093 WO2023222092A1 (zh) | 2022-05-20 | 2023-05-18 | 复制数据的方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210552437.0A CN117130525A (zh) | 2022-05-20 | 2022-05-20 | 复制数据的方法及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117130525A true CN117130525A (zh) | 2023-11-28 |
Family
ID=88834665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210552437.0A Pending CN117130525A (zh) | 2022-05-20 | 2022-05-20 | 复制数据的方法及电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117130525A (zh) |
WO (1) | WO2023222092A1 (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140157169A1 (en) * | 2012-12-05 | 2014-06-05 | Microsoft Corporation | Clip board system with visual affordance |
CN105808036A (zh) * | 2014-12-29 | 2016-07-27 | 鸿合科技有限公司 | 一种电子白板软件的资源快速交互方法和装置 |
CN109684110A (zh) * | 2018-12-28 | 2019-04-26 | 北京小米移动软件有限公司 | 多媒体资源分享方法、装置及存储介质 |
CN110515510A (zh) * | 2019-08-20 | 2019-11-29 | 北京小米移动软件有限公司 | 数据处理方法、装置、设备及存储介质 |
CN113672404A (zh) * | 2021-08-05 | 2021-11-19 | 展讯通信(天津)有限公司 | 一种显示方法和电子终端设备 |
CN113849092A (zh) * | 2021-09-18 | 2021-12-28 | 维沃移动通信有限公司 | 内容分享方法、装置和电子设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10152523B2 (en) * | 2015-11-02 | 2018-12-11 | Business Objects Software Limited | Copying data view portions relevant for analysis and/or collaboration |
CN107918563A (zh) * | 2017-09-30 | 2018-04-17 | 华为技术有限公司 | 一种复制和粘贴的方法、数据处理装置和用户设备 |
CN112527221A (zh) * | 2019-09-18 | 2021-03-19 | 华为技术有限公司 | 一种数据传输的方法及相关设备 |
CN114201097B (zh) * | 2020-09-16 | 2024-06-11 | 华为技术有限公司 | 一种多应用程序之间的交互方法 |
-
2022
- 2022-05-20 CN CN202210552437.0A patent/CN117130525A/zh active Pending
-
2023
- 2023-05-18 WO PCT/CN2023/095093 patent/WO2023222092A1/zh active Application Filing
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140157169A1 (en) * | 2012-12-05 | 2014-06-05 | Microsoft Corporation | Clip board system with visual affordance |
CN105808036A (zh) * | 2014-12-29 | 2016-07-27 | 鸿合科技有限公司 | 一种电子白板软件的资源快速交互方法和装置 |
CN109684110A (zh) * | 2018-12-28 | 2019-04-26 | 北京小米移动软件有限公司 | 多媒体资源分享方法、装置及存储介质 |
CN110515510A (zh) * | 2019-08-20 | 2019-11-29 | 北京小米移动软件有限公司 | 数据处理方法、装置、设备及存储介质 |
CN113672404A (zh) * | 2021-08-05 | 2021-11-19 | 展讯通信(天津)有限公司 | 一种显示方法和电子终端设备 |
CN113849092A (zh) * | 2021-09-18 | 2021-12-28 | 维沃移动通信有限公司 | 内容分享方法、装置和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2023222092A1 (zh) | 2023-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021159746A1 (zh) | 文件共享方法、系统及相关设备 | |
EP3886416B1 (en) | Image classification method and electronic device | |
WO2022179275A1 (zh) | 终端应用控制的方法、终端设备及芯片系统 | |
WO2023016014A1 (zh) | 视频编辑方法和电子设备 | |
CN116048933A (zh) | 一种流畅度检测方法 | |
CN116662270B (zh) | 文件解析方法及相关装置 | |
EP4336357A1 (en) | Message processing method and related apparatus | |
CN112416984A (zh) | 一种数据处理方法及其装置 | |
CN114489471B (zh) | 一种输入输出处理方法和电子设备 | |
CN115981573A (zh) | 数据管理方法、电子设备及计算机可读写存储介质 | |
CN117290004A (zh) | 组件预览的方法和电子设备 | |
CN117130525A (zh) | 复制数据的方法及电子设备 | |
CN118153110B (zh) | 一种数据处理方法及相关装置 | |
CN114666441B (zh) | 一种调用其他设备能力的方法、电子设备、系统和存储介质 | |
CN116795476B (zh) | 一种删除壁纸的方法及电子设备 | |
CN117724825B (zh) | 一种界面显示方法及电子设备 | |
WO2022206762A1 (zh) | 一种显示方法、电子设备和系统 | |
WO2023061298A1 (zh) | 一种图片备份系统、方法与设备 | |
WO2023179682A1 (zh) | 一种设备协同方法 | |
WO2024046010A1 (zh) | 一种界面显示方法、设备及系统 | |
CN117992092A (zh) | 设备升级的方法及相关设备 | |
CN117675881A (zh) | 一种应用数据保存方法及电子设备 | |
CN117692723A (zh) | 视频编辑方法和电子设备 | |
CN118075532A (zh) | 一种视频的摘录方法、电子设备及存储介质 | |
CN118051376A (zh) | 一种数据备份方法及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |