CN116069723A - 文件迁移方法、电子设备及存储介质 - Google Patents
文件迁移方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116069723A CN116069723A CN202111300248.6A CN202111300248A CN116069723A CN 116069723 A CN116069723 A CN 116069723A CN 202111300248 A CN202111300248 A CN 202111300248A CN 116069723 A CN116069723 A CN 116069723A
- Authority
- CN
- China
- Prior art keywords
- file
- space
- content provider
- application
- migration
- 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.)
- Granted
Links
- 238000013508 migration Methods 0.000 title claims abstract description 342
- 230000005012 migration Effects 0.000 title claims abstract description 342
- 238000000034 method Methods 0.000 title claims abstract description 158
- 230000004044 response Effects 0.000 claims description 35
- 230000015654 memory Effects 0.000 claims description 26
- 230000009286 beneficial effect Effects 0.000 abstract 1
- 230000000694 effects Effects 0.000 description 151
- 238000007726 management method Methods 0.000 description 150
- 230000008569 process Effects 0.000 description 89
- 238000004891 communication Methods 0.000 description 27
- 230000006854 communication Effects 0.000 description 27
- 230000006870 function Effects 0.000 description 22
- 238000012545 processing Methods 0.000 description 19
- 238000010586 diagram Methods 0.000 description 11
- 230000005236 sound signal Effects 0.000 description 9
- 238000012790 confirmation Methods 0.000 description 8
- 230000003993 interaction Effects 0.000 description 8
- 238000010295 mobile communication Methods 0.000 description 8
- 230000002452 interceptive effect Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000013475 authorization Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 229920001621 AMOLED Polymers 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000013528 artificial neural network Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000003999 initiator Substances 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000007175 bidirectional communication Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
- G06F21/84—Protecting input, output or interconnection devices output devices, e.g. displays or monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/16—File or folder operations, e.g. details of user interfaces specifically adapted to file systems
- G06F16/162—Delete operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/119—Details of migration of file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44536—Selecting among different versions
- G06F9/44542—Retargetable
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- 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/545—Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2105—Dual mode as a secondary aspect
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Human Computer Interaction (AREA)
- Medical Informatics (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
本申请涉及智能终端技术领域,具体涉及一种文件迁移方法、电子设备及存储介质。其中,该方法所应用的电子设备上设置有主空间、隐私空间和第一应用,该电子设备的文件系统为用户空间文件系统,该方法包括:接收第一应用对第一类文件的第一访问请求,运行第一应用的空间为隐私空间;如果确定第一应用对第一类文件具有读写权限,则对第一类文件所对应的内容提供者由隐私空间的第二内容提供者重定向至主空间的第一内容提供者;接收第一应用对第一类文件中的第一指定文件的第一迁移请求,其中第一迁移请求用于请求将第一指定文件从主空间迁移至隐私空间。本申请满足了用户在应用了FUSE文件系统的电子设备上进行文件迁移的需求,利于提高用户体验。
Description
技术领域
本发明涉及智能终端技术领域,具体涉及一种文件迁移方法、电子设备及存储介质。
背景技术
随着智能终端技术领域的发展,为满足人们需求,终端电子设备提供了一种多用户机制,即在一个电子设备上可以设置多个用户空间,其中各用户空间内的数据和应用程序等是独立的,例如用户所使用的手机设置有一个主空间和一个隐私空间,用户平时可以登录主空间用户进行社交、数据发送、文件处理等事务,用户还可以将一些隐私数据、隐私文件等存放在隐私空间内,这样用户便可以通过登录隐私空间查看隐私数据或文件,而在登录主空间时无法查看隐私空间内的隐私数据或文件。
然而在目前电子设备所采用的操作系统中,如安卓(Android)11.0版本以上的系统中,由于系统采用了具有更强的文件系统管控能力的用户空间文件系统(Filesystem inUser Space,FUSE),而FUSE对电子设备的外部存储区分了用户,即每个空间的用户只能访问本空间用户名下的存储数据或文件,例如用户登录主空间时只能访问主空间用户名下的数据或文件,用户登录隐私空间时只能访问隐私空间用户名下的数据或文件。如此则会导致当用户登录隐私空间时,如果想要将主空间内的部分数据或者文件(例如照片、或者视频等)迁移到隐私空间内进行隐私保护,则会由于无法从隐私空间访问主空间内数据或文件,而导致无法完成文件迁移过程,因此会给用户使用隐私空间带来不便,导致用户体验不佳。
发明内容
本申请实施例提供了一种文件迁移方法、电子设备及存储介质,通过重定向内容提供者的处理,在应用了FUSE文件系统的电子设备上,能够使用户在隐私空间内进行授权的文件迁移操作的情况下,当该文件迁移操作需要访问主空间的文件或者文件存储路径时,可以通过重定向到u0用户的内容提供器以获取对主空间内文件的访问和写入权限,完成将主空间的文件迁移至隐私空间、或者将隐私空间的文件迁移至主空间的过程。本申请方案的重定向处理,还能够使用户在主空间内进行授权的文件迁移操作的情况下,当该文件迁移操作需要访问隐私空间的文件或者文件存储路径时,可以通过重定向到u10用户的内容提供器以获取对隐私空间内文件的访问和写入权限,完成将主空间的文件迁移至隐私空间、或者将隐私空间的文件迁移至主空间的过程。基于本申请方案,在应用了FUSE文件系统的电子设备也能满足用户的文件迁移需求,并且不影响FUSE文件系统本身所具有的安全管理性能,利于提高用户体验。
第一方面,本申请实施例提供了一种文件迁移方法,应用于电子设备,该电子设备上设置有主空间、隐私空间和第一应用,该电子设备的文件系统为用户空间文件系统,该方法包括:接收第一应用对主空间的第一类文件的第一访问请求,其中,运行第一应用的空间为隐私空间;在确定第一应用具有对主空间的第一类文件的读权限的情况下,响应于第一访问请求,对第一类文件所对应的内容提供者由隐私空间的第二内容提供者重定向至主空间的第一内容提供者;其中,第一内容提供者用于供第一应用获取第一类文件;接收第一应用对主空间的第一类文件中的第一指定文件的第一迁移请求,其中第一迁移请求用于请求将第一指定文件从主空间迁移至隐私空间;响应于第一迁移请求,在确定所述第一应用具有对主空间的第一类文件的读写权限的情况下将第一指定文件从主空间迁移至隐私空间。
即隐私空间运行的第一应用在具有对主空间的第一类文件的读写权限之后,可以将第一类文件从主空间读出、再写到隐私空间,同时还可以在主空间里将第一类文件进行删除。可以理解,在本申请的上下文描述中,除非特别说明,所涉及的“读”文件与“访问”文件的描述等同,所涉及的“读写权限”与“迁移权限”的描述亦等同,以下不再重复说明。
可以理解,上述读写权限例如为下文实施例中所描述的迁移权限,即在隐私空间为指定开通迁移权限的空间并且进行文件迁移操作的第一应用也为授权开通迁移权限的应用程序的情况下,在隐私空间内运行的第一应用请求访问主空间内的第一类文件时,电子设备的系统可以将对应于第一类文件的内容提供者由原来默认的隐私空间的第二内容提供者重定向到主空间的第一内容提供者,从而获取访问主空间内第一类文件的权限;此时电子设备可以显示主空间的第一类文件的文件列表供用户选择,当用户选定需要迁移的第一指定文件后,电子设备的系统可以基于重定向得到的主空间的第一内容提供者获取第一指定文件并将其迁移至隐私空间。例如,参考下文实施例中的图5b所示,用户在电子设备所显示的操作界面520上选择图片521类文件进行访问时,电子设备的Activity管理服务进行重定向处理获取主空间的第一内容提供者以访问主空间的图片文件,进而用户可以在下文中图5c所示的图片选择界面530中选择需要迁移的图片文件完成迁移过程。
其中,电子设备例如可以通过系统内的Activity管理服务来实现对第一类文件的内容提供者的重定向处理过程,Activity管理服务在确定运行第一应用的隐私空间和第一应用均满足开通迁移权限条件的情况下,完成上述重定向过程。上述第一内容提供者例如是下文实施例中主空间的内容提供器所创建的内容提供者,Activity管理服务获得主空间的内容提供器所创建的内容提供者之后进行实例化,然后将实例化后的内容提供者实例的句柄返回给第一应用,以供第一应用调用用于访问获取相应的第一类文件资源。
在上述第一方面的一种可能的实现中,第一迁移请求包括第一文件路径和第二文件路径,其中第一文件路径为第一指定文件的获取路径,第二文件路径为第一指定文件的写入路径;并且第一文件路径指向主空间,第二文件路径指向隐私空间。
在上述第一方面的一种可能的实现中,对第一类文件所对应的内容提供者由隐私空间的第二内容提供者重定向至主空间的第一内容提供者,包括:响应于第一访问请求,返回主空间用户的身份识别文件;基于主空间用户的身份识别文件获得第一内容提供者,其中第一内容提供者用于提供第一文件路径。
在上述第一方面的一种可能的实现中,将第一指定文件从主空间迁移至隐私空间,包括:基于第一文件路径从主空间获取第一指定文件;基于第二文件路径将获取的第一指定文件写入隐私空间。
即电子设备所响应的第一迁移请求是将第一指定文件从主空间迁移至隐私空间,相应地,电子设备需要从主空间内获取第一指定文件(即需要第一文件路径),再将所获取的第一指定文件写入隐私空间(即需要第二文件路径)。可以理解,在用户选择第一指定文件之前,电子设备先响应第一应用的第一访问请求,重定向至主空间的第一内容提供者后获取对主空间内第一类文件的访问权限,即获取了对第一指定文件的获取路径,也就是第一文件路径。
如上所述,电子设备例如可以通过系统内的Activity管理服务进行重定向内容提供者的处理,具体过程则是先基于第一应用的第一访问请求向Activity管理服务内的管理模块返回主空间用户ID,之后Activity管理服务再基于主空间用户ID查找实例缓存池中有没有主空间用户名下的内容提供者实例,若没有则向主空间用户的内容提供器请求创建相应的内容提供者再进行实例化,从而获得主空间的第一内容提供者。具体可以参考下文实施例中图7或图8中相关步骤的描述,在此不再赘述。
在上述第一方面的一种可能的实现中,在第一应用为文件迁移服务的情形下,确定第一应用具有对主空间的第一类文件的读写权限。
即指定开通迁移权限的应用例如可以是下文实施例中描述的文件迁移服务,电子设备的Activity管理服务在确定请求迁移文件的应用程序为隐私空间内运行的文件迁移服务时,进行上述重定向处理,向该文件迁移服务返回主空间的第一内容提供者,以开通隐私空间的文件迁移服务对主空间内文件的读写权限,从而能够完成迁移过程。
在上述第一方面的一种可能的实现中,上述方法还包括:在确定第一应用不具有对第一类文件的迁移权限的情况下,响应于第一迁移请求,返回隐私空间用户的身份识别文件;基于隐私空间用户的身份识别文件获得第二内容提供者,其中第二内容提供者无法提供访问第一指定文件的路径。
即如果响应用户文件迁移操作的不是隐私空间运行的文件迁移服务,例如是隐私空间内运行的其他不满足开通迁移权限条件的另一应用程序响应用户的文件迁移操作,则电子设备的Activity管理服务不对第一类文件的内容提供者进行重定向处理,默认返回隐私空间的内容提供者,此种情形下,隐私空间运行的第一应用则无权访问主空间的文件,智能访问本空间(即隐私空间)的文件。此种情形下,电子设备例如显示隐私空间的第一类文件的文件列表,而无法显示主空间的第一类文件的文件列表。
在上述第一方面的一种可能的实现中,上述方法还包括:接收第一应用对隐私空间的第二指定文件的第二迁移请求,第二迁移请求用于请求将第二指定文件从隐私空间迁移至主空间;其中,运行第一应用的空间为隐私空间;在确定第一应用具有对第二指定文件的读写权限的情况下,响应于第二迁移请求,对第二指定文件所对应的内容提供者由隐私空间的第四内容提供者重定向至主空间的第三内容提供者;其中,第三内容提供者用于供第一应用将第二指定文件写入主空间,以将第二指定文件从隐私空间迁移至主空间。
即如果用户的文件迁移操作是将当前空间(即隐私空间)内的第二指定文件迁移至其他空间(即主空间),则电子设备的Activity管理服务可以在接收到对第二指定文件的迁移请求时,再对第二指定文件所对应的内容提供者进行重定向处理,由原本默认返回的隐私空间的第二内容提供者重定向至主空间的第一内容提供者,并基于重定向后的第一内容提供者将隐私空间的第二指定文件写入主空间,完成迁移过程。例如,参考下文实施例中的图9c所示,用户在电子设备所显示的隐私空间的文件列表中选定需要迁移的图片文件时,电子设备的Activity管理服务再进行重定向处理获取主空间的第一内容提供者以接收用户选定迁移的图片文件。
在上述第一方面的一种可能的实现中,第二迁移请求包括第三文件路径和第四文件路径,其中第三文件路径为第二指定文件的访问路径,第四文件路径为第二指定文件的写入路径;并且第三文件路径指向隐私空间,第四文件路径指向主空间。
在上述第一方面的一种可能的实现中,对第二指定文件所对应的内容提供者由隐私空间的第四内容提供者重定向至主空间的第三内容提供者,包括:响应于第二迁移请求,返回主空间用户的身份识别文件;基于主空间用户的身份识别文件获得第三内容提供者,其中,第三内容提供者用于提供第四文件路径。
在上述第一方面的一种可能的实现中,将第二指定文件从隐私空间迁移至主空间,包括:基于第三文件路径从隐私空间获取第二指定文件;基于第四文件路径将获取的第二指定文件写入主空间。
即电子设备所响应的第二迁移请求是将第二指定文件从隐私空间迁移至主空间,相应地,电子设备需要从隐私空间获取第二指定文件(即需要第三文件路径),再将所获取的第二指定文件写入主空间(即需要第四文件路径)。此种情形下,可以是在用户选择第二指定文件之后,电子设备的Activity管理服务再进行重定向处理获取主空间的第三内容提供者以获取用于向主空间写入需要迁移的第二指定文件对应的第四文件路径。
在上述第一方面的一种可能的实现中,在第一应用为文件迁移服务的情形中,确定第一应用具有对第二指定文件的迁移权限。
在上述第一方面的一种可能的实现中,第一类文件包括图片、视频、音频、联系人中的任一项。
在上述第一方面的一种可能的实现中,第二指定文件的类型包括图片、视频、音频、联系人中的任一项。
可以理解,在将第一指定文件从主空间迁移至隐私空间之后,电子设备还可以响应于用户在隐私空间运行的第二应用(例如图库、录音机或联系人中的任一项)的界面上查看第一指定文件的操作,显示第一指定文件。具体可以参考下文实施例中的图5e至5f所示及相关描述,在此不再赘述。
可以理解,在第二指定文件从隐私空间迁移至主空间之后,方法还包括:电子设备还可以响应于用户在主空间运行的第二应用(例如图库、录音机或联系人中的任一项)的界面上查看第二指定文件的操作,显示第二指定文件。具体可以参考下文实施例中的图9e至9f所示及相关描述,在此不再赘述。
第二方面,本申请实施例提供了一种文件迁移方法,应用于电子设备,该电子设备上设置有主空间、隐私空间和第一应用,该电子设备的文件系统为用户空间文件系统,该方法包括:接收第一应用对隐私空间的第一类文件的第一访问请求,其中,运行第一应用的空间为主空间;在确定第一应用具有对隐私空间的第一类文件的读权限的情况下,响应于第一访问请求,对第一类文件所对应的内容提供者由主空间的第一内容提供者重定向至隐私空间的第二内容提供者;其中,第二内容提供者用于供第一应用获取第一类文件;接收第一应用对隐私空间的第一类文件中的第一指定文件的第二迁移请求,其中第二迁移请求用于请求将第一指定文件从隐私空间迁移至主空间;响应于第二迁移请求,在确定第一应用具有对隐私空间的第一类文件的读写权限的情况下将第一指定文件从隐私空间迁移至主空间。
即主空间运行的第一应用在具有对隐私空间的第一类文件的读写权限之后,可以将第一类文件从隐私空间读出、再写到主空间,同时还可以在隐私空间里将第一类文件进行删除。上述读写权限例如为下文实施例中所描述的迁移权限,即在主空间为指定开通迁移权限的空间并且进行文件迁移操作的第一应用也为授权开通迁移权限的应用程序的情况下,在主空间内运行的第一应用请求访问主空间内的第一类文件时,电子设备的系统可以将对应于第一类文件的内容提供者由原来默认的主空间的第一内容提供者重定向到隐私空间的第二内容提供者,从而获取访问隐私空间内第一类文件的权限;此时电子设备可以显示隐私空间的第一类文件的文件列表供用户选择,当用户选定需要迁移的第一指定文件后,电子设备的系统可以基于重定向得到的隐私空间的第一内容提供者获取第一指定文件并将其迁移至主空间。
在上述第二方面的一种可能的实现中,上述方法还包括:接收第一应用对主空间的第二指定文件的第二迁移请求,第二迁移请求用于请求将第二指定文件从主空间迁移至隐私空间;其中,运行第一应用的空间为主空间;在确定第一应用具有对第二指定文件的读写权限的情况下,响应于第二迁移请求,对第二指定文件所对应的内容提供者由主空间的第三内容提供者重定向至主空间的第四内容提供者;其中,第四内容提供者用于供第一应用将第二指定文件写入隐私空间,以将第二指定文件从主空间迁移至隐私空间。
即如果用户的文件迁移操作是将当前空间(即主空间)内的第二指定文件迁移至其他空间(即隐私空间),则电子设备的Activity管理服务可以在接收到对第二指定文件的迁移请求时,再对第二指定文件所对应的内容提供者进行重定向处理,由原本默认返回的主空间的第一内容提供者重定向至隐私空间的第二内容提供者,并基于重定向后的第二内容提供者将主空间的第二指定文件写入隐私空间,完成迁移过程。
第三方面,本申请实施例提供了一种电子设备,包括:一个或多个处理器;一个或多个存储器;一个或多个存储器存储有一个或多个程序,当一个或者多个程序被一个或多个处理器执行时,使得电子设备执行上述文件迁移方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,该存储介质上存储有指令,指令在计算机上执行时使计算机执行上述文件迁移方法。
第五方面,本申请实施例提供了计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现上述文件迁移方法。
附图说明
图1a至图1c所示为本申请实施例提供的文件迁移方法的应用场景示意图。
图2a至图2b所示本申请实施例提供的一种文件迁移方法实施过程中手机100所应用的用户空间文件系统的用户态与内核态之间的交互示意图。
图3所示为本申请实施例提供的一种手机100的系统软件架构示意图。
图4所示为本申请实施例提供的本申请的文件迁移方法的一种实施流程示意图。
图5a至图5f所示为本申请实施例提供的手机100实施本申请方案将主空间内文件迁移至隐私空间内的过程中所显示的部分界面示意图。
图6所示为本申请实施例提供的一种文件迁移方法实施过程中手机100系统内各部分之间的交互流程示意图。
图7所示为本申请实施例提供的一种文件迁移方法实施过程中,手机100系统内的Activity管理服务322响应文件迁移服务311的调用请求返回内容提供者实例句柄过程的执行流程示意图。
图8所示为本申请实施例提供的本申请的文件迁移方法实施过程中,文件迁移服务311与Activity管理服务322以及Activity线程3221之间的交互执行流程示意图。
图9a至图9f所示为本申请实施例提供的隐私空间内文件迁移至主空间的过程中手机100所显示的部分界面示意图。
图10所示为本申请实施例提供的一种手机100的结构示意图。
具体实施方式
图1a至图1c根据本申请实施例示出了一种文件迁移方法的应用场景示意图。
如图1a至图1c所示,该场景包括手机100,手机100的系统上应用了FUSE文件系统。可以理解,手机100出厂默认创建一个用于响应用户操作的主要空间,以下称之为主空间。用户在使用手机100的过程中,手机100默认运行主空间,用户可以在主空间的桌面上点击应用程序图标运行所安装的各种应用程序。用户可以操作手机100创建一个用于保护隐私数据且与主空间相互隔离的另一个用户操作空间,以下称之为隐私空间。可以理解,主空间与隐私空间可以默认具有相同的系统应用程序,但用户创建隐私空间时,主空间内安装的第三方应用程序不会默认同样安装在隐私空间内,用户如果需要在隐私空间内安装某个第三方应用,可以通过隐私空间内独立安装。可以理解,主空间内提供给各应用程序的运行空间以及主空间用户名下的文件系统空间,与隐私空间提供给各应用程序的运行空间以及隐私空间用户名下的文件系统空间均是相互隔离的,为了简化描述,在以下表述中,将主空间用户名下的文件系统空间简称为u0用户空间,将隐私空间用户名下的文件系统空间简称为u10用户空间。在上述理解的基础上,除非特别说明,本申请一般不区分主空间用户与u0用户、以及隐私空间用户与u10用户。
作为示例,主空间和隐私空间的桌面均可以参考图1a所示。
如果图1a所示为手机100的主空间桌面,用户在图1a所示的主空间桌面上点击图库应用,可以打开图1b所示的图库应用界面101,如图1b所示,该图库应用界面101显示主空间内存储的所有照片为3335张、视频427个,其中相机拍摄的照片有2362张。
如果图1a所示为手机100的隐私空间桌面,用户在图1a所示的隐私空间桌面上点击图库应用,可以打开图1c所示的图库应用界面102,如图1c所示,该图库应用界面102显示隐私空间内存储的所有照片为0张,无视频文件。
通过图1b所示的图库应用界面101和图1c所示的图库应用界面102所显示的文件数据之间的差异,可以理解手机100所应用的FUSE文件系统中不同文件系统空间(例如上述u0用户空间和u10用户空间)是相互隔离的,也就是说,FUSE文件系统中各文件系统空间内的文件数据是在相应的操作空间中独立显示的。
为解决在应用了FUSE文件系统的电子设备上无法完成将一个文件系统空间内的文件数据迁移至另一个文件系统空间内的问题,本申请提出了一种文件迁移方法。该方法能够使用户在隐私空间内进行文件迁移操作的情况下,当该文件迁移操作需要访问主空间的文件或者文件存储路径时,可以通过重定向到u0用户的内容提供器,从而通过u0用户的内容提供器获取对主空间内文件的访问和写入权限(即读写权限),当该文件迁移操作只需访问隐私空间内的文件时,可以通过隐私空间内的本地文件流读写操作即可完成。其中,重定向到u0用户的内容提供器是指,通过电子设备的操作系统可供主空间和隐私空间共同调用的Activity管理服务(Activity Manager Service,AMS)将隐私空间用户(即u10用户)的文件访问请求转到主空间的内容提供器,以实现授权指定空间(例如隐私空间)内的指定应用程序(例如文件迁移服务)访问主空间的文件。其中,Activity管理服务需要先对文件访问请求的发起方是否满足迁移权限开通条件进行判断验证,在确定该文件访问请求的发起方满足迁移权限开通的情况下,再完成将该文件访问请求转到主空间的内容提供器的重定向过程。可以理解,在另一些实施例中,本申请所提供的文件迁移方法也能够使用户在主空间内进行文件迁移操作的情况下,当用户在主空间内进行的文件迁移操作需要访问隐私空间的文件或者文件存储路径时,也可以通过重定向到u10用户的内容提供器,从而通过u10用户的内容提供器获取对隐私空间内文件的访问和写入权限,在此不再赘述。
上述迁移权限开通条件例如包括判断用户在电子设备上操作的当前空间是否为指定空间(例如隐私空间),以及判断执行该迁移操作相应指令的应用程序是否为指定应用程序(例如文件迁移服务),在确定当前空间为隐私空间并且响应用户迁移操作的应用程序为文件迁移服务时,即确定该当前空间和响应用户迁移操作的应用程序均满足了预设的迁移权限开通条件,则允许隐私空间内的文件迁移服务访问原文件系统空间,例如是u0用户空间,获取用户指定文件,例如是图片文件,并允许该文件迁移服务将获取的图片文件移动到目标文件系统空间内,例如移动到u10用户空间内。如此,当用户操作电子设备再次进入隐私空间时,便可以在隐私空间运行图库应用查看从主空间移动过来的图片文件。
图2a至图2b根据本申请实施例示出了本申请的文件迁移方法实施过程中手机100所应用的用户空间文件系统的用户态与内核态之间的交互示意图。
如图2a所示,在手机100所应用的FUSE文件系统中包括用户态和内核态,用户态包括主空间(对应u0用户)和隐私空间(对应u10用户),用户态还包括可以供主空间和隐私空间共同调用的Activity管理服务322。其中,主空间和隐私空间内均包括图库应用312和内容提供器321,隐私空间内还安装有文件迁移服务311。如图2a所示,用户态文件系统包括主空间用户下的u0用户空间和隐私空间用户的名下u10用户空间,即不同用户名下的用户态文件系统相互隔离。
内核态则包括管理手机100的外部存储区(包括内置存储器外部存储和SD卡或USB存储等外嵌存储)中存储的文件数据的用户空间文件总系统。
如图2a所示,手机100在FUSE文件系统的管理下,u0用户空间挂载的文件系统目录属性为u0_xxx,例如图片文件目录为/storage/emulated/0/Pictures/,视频文件目录为/storage/emulated/0/Movies/,音频文件目录为/storage/emulated/0/Music/;u10用户空间挂载的文件系统目录属性为u10_xxx,例如图片文件目录为/storage/emulated/10/Pictures/,视频文件目录为/storage/emulated/10/Movies/,音频文件目录为/storage/emulated/10/Music/,在此不做限制。
可以理解,用户态的主空间内的图库应用312等应用程序可以通过Activity管理服务322获取主空间内的内容提供器321所创建的内容提供者,进而可以访问主空间内的文件进行相应处理;用户态的隐私空间内的图库应用312等应用程序可以通过Activity管理服务322获取隐私空间内的内容提供器321所创建的内容提供者,进而可以访问隐私空间内的文件进行相应处理。
在手机100执行文件迁移的过程中,以用户在隐私空间内操作将用户指定文件从主空间迁移至隐私空间为例,用户态的隐私空间内运行的文件迁移服务311在满足指定开通迁移权限的情况下,可以通过Activity管理服务322获取主空间内的内容提供器321所创建的内容提供者,进而可以访问主空间内的文件,例如对主空间内的文件进行复制、删除等处理,并且通过隐私空间内的内容提供器321所创建的内容提供者将所复制的主空间内的文件写入隐私空间内,以实现将主空间内文件迁移至隐私空间。
在另一些实施例中,参考图2b所示,用户态的主空间内也可以设置文件迁移服务311',以用户在主空间内操作将用户指定文件从主空间迁移至隐私空间为例,用户态的主空间内运行的文件迁移服务311'在满足指定开通迁移权限的情况下,可以通过Activity管理服务322获取隐私空间内的内容提供器321所创建的内容提供者,进而可以访问隐私空间以将主空间的文件写入隐私空间,以实现将主空间内文件迁移至隐私空间。
可以理解,用户文件迁移操作为将指定文件从原文件系统空间迁移至目标文件系统空间内进行管理的操作。因此,用户在隐私空间内完成文件迁移操作后,用户再次操作电子设备进入目标文件系统空间时,目标文件系统空间内相应的文件目录下则可以显示完成迁移的指定文件,原文件系统空间内相应的文件目录下可以删除完成迁移的指定文件,在此不做限制。其中,目标文件系统空间既可以是上述u0用户空间也可以是上述u10用户空间,在此不做限制。
可以理解,通过本申请所提供的文件迁移方法,在应用了FUSE文件系统的电子设备上通过对指定空间内运行的指定应用程序开通迁移文件的权限,实现在保持FUSE文件系统中的各空间内文件数据隔离的前提下,能够便于用户将主空间内的一些需要进行隐私保护的数据迁移到隐私空间内,或者将隐私空间内不再需要隐私保护的数据迁移到主空间内,其他未指定的文件系统空间或者未指定的应用程序则无法获取对其他空间内的文件迁移权限,例如隐私空间内的克隆应用(假设该应用为非指定授权的应用程序)无法获取对主空间内的图片文件的文件迁移权限,也就是说,隐私空间内运行的克隆应用既无法访问或获取主空间内的图片文件,也无法将隐私空间内的文件数据复制到主空间内。因此可以理解,本申请所提供的方案既可以保障各空间内文件数据的安全,又能满足用户想要通过迁移文件实现隐私保护等方面的特定需求。
可以理解,本申请所提供的文件迁移方法所针对的文件数据可以包括图片、音频、视频、文档、联系人等,在此不做限制。
可以理解,本申请所提供的文件迁移方法所适用的电子设备,可以包括但不限于手机100、膝上型计算机、台式计算机、平板计算机、服务器、可穿戴设备、头戴式显示器、移动电子邮件设备、车机设备、便携式游戏机、便携式音乐播放器、阅读器设备、其中嵌入或耦接有一个或多个处理器的电视机、或能够访问网络的其他电子设备。为了便于描述,下面以电子设备为手机100为例,来描述电子设备实施本申请方案的具体过程以及相关的界面。
下面将基于上述图2a所示的FUSE文件系统的用户态与内核态之间的交互示意过程,以文件迁移服务311设置在用户态的隐私空间为例,结合其他附图详细介绍用户在隐私空间内操作文件迁移以实施本申请的文件迁移方法的具体过程。
图3根据本申请实施例示出了一种手机100的系统软件架构示意图。
手机100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android系统为例,示例性说明手机100的软件架构。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层310,应用程序框架层320,安卓运行时(Android runtime)330和系统库340,以及内核层350。
应用程序层310可以包括一系列应用程序包。
如图3所示,应用程序包可以包括文件迁移服务311,图库312,地图313,通话314,导航315,蓝牙316,音乐317,视频318等应用程序。
应用程序框架层320为应用程序层310的应用程序提供应用编程接口(application programming interface,API)和编程框架。应用程序框架层320包括一些预先定义的函数。
如图3所示,应用程序框架层320可以包括内容提供器(又称内容提供者,ContentProvider)321,Activity管理服务322,窗口管理器323,视图系统324,资源管理器325,通知管理器326等。
其中,内容提供器321用来存放和获取文件数据,并使这些数据可以被应用程序访问。上述文件数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。为了便于区分,下述描述中将内容提供器321所创建的用于供具体应用调用的内容提供器称之为内容提供者,同样地,实例化的内容提供器称之为内容提供者实例或者实例。
可以理解,在应用了FUSE文件系统的手机100上,各空间用户(例如主空间用户或隐私空间用户)的内容提供器321所创建的分别用于访问各文件系统空间内文件的内容提供者也是相互隔离的。其中,内容提供器321所创建的内容提供者可以在Activity管理服务322中被实例化形成内容提供者实例,可以理解,实例化后的内容提供者是一个可调用文件,应用程序可以调用内容提供者实例访问某文件系统空间内文件,一般供应用程序调用的内容提供者实例都有一个调用标识,即句柄。因此,内容提供器321通过Activity管理服务322向应用程序反馈内容提供者实例的句柄,供该应用程序调用内容提供者实例。
例如,在本申请实施例中,手机100的系统可以在确定当前空间是否为隐私空间,并且当前运行的请求迁移文件的应用程序为文件迁移服务的情况下,将主空间的内容提供器321所创建的内容提供者对应的用于访问主空间内文件的实例句柄,反馈给隐私空间内的文件迁移服务,以完成将主空间内的指定文件迁移至隐私空间内或者将隐私空间内的指定空间迁移至主空间内的过程。
Activity管理服务322,用于提供查询服务,通过活动堆栈(activity stack)保存、管理和记录Android四大组件的状态(即生命周期)。Activity管理服务322在系统开启的时候由系统服务器(System Server)启动一个线程来开启。各文件系统空间的应用程序可以通过Activity管理服务322获取本空间内的内容提供器321提供的内容提供者对应的实例的句柄,进而能够访问及获取本空间内的文件数据。在本申请实施例中,指定空间内的指定应用程序,例如隐私空间内的文件迁移服务,可以通过Activity管理服务322获取主空间内的内容提供器321提供的内容提供者对应的实例的句柄,从而获取访问、复制、删除主空间内文件数据的权限,进而能够完成将主空间内的指定文件迁移至隐私空间内或者将隐私空间内的指定空间迁移至主空间内的过程。
窗口管理器323用于管理窗口程序。窗口管理器323可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
视图系统324包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统324可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
资源管理器325为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器326使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器326被用于告知下载完成,消息提醒等。通知管理器326还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android Runtime(安卓运行时)330包括核心库和虚拟机。Android Runtime(安卓运行时)330负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层310和应用程序框架层320运行在虚拟机中。虚拟机将应用程序层310和应用程序框架层320的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库340可以包括多个功能模块。例如:表面管理器(surface manager)341,媒体库(Media Libraries)342,三维图形处理库343(例如:OpenGL ES),2D图形引擎344(例如:SGL)等。
表面管理器341用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库342支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库343用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎344是2D绘图的绘图引擎。
内核层350是硬件和软件之间的层。内核层350至少包含显示驱动351,摄像头驱动352,触控驱动353,音频驱动354,传感器驱动355。
基于上述图3所示的手机100的系统软件架构,下面结合多个流程图详细介绍手机100实施本申请的文件迁移方法的具体过程。
图4根据本申请实施例示出了本申请的文件迁移方法的一种实施流程示意图。可以理解,该流程中各步骤的执行主体均为手机100,为了便于描述,以下在描述该流程的各步骤具体实施过程时,不再重复描述各步骤的执行主体。
如图4所示,该流程包括:
401:检测到用户的文件迁移操作。
示例性地,用户可以在手机100的显示界面上开启文件迁移服务,例如操作手机100进入隐私空间管理界面,进而选择从主空间迁移至隐私空间的文件迁移服务,或是选择“从隐私空间迁移至主空间的文件迁移服务。
作为示例,图5a至图5f根据本申请实施例示出了手机100实施本申请方案将主空间内文件迁移至隐私空间内的过程中所显示的部分界面示意图。
其中,用户操作手机100进入隐私空间管理界面的过程可以参考图5a所示,用户操作手机100进入隐私空间后,可以操作手机100打开图5a所示的隐私空间管理界面510。示例性地,例如用户可以在手机100的主空间桌面(参考上述图1a所示)点击设置应用图标选择“隐私”选项后点击“隐私空间”进入隐私空间的登录界面,验证用户设置的密码信息后,手机100便进入隐私空间,用户在手机100的隐私空间桌面(参考上述图1a所示)点击,设置应用图标选择“隐私”选项后点击“隐私空间”则可以进入图5a所示的隐私空间管理界面510。在另一些实施例中,用户操作手机100打开隐私空间管理界面510也可以通过其他操作,在此不做限制。
如图5a所示,用户在隐私空间管理界面510上点击“主空间至隐私空间”选项511或者点击“隐私空间至主空间”选项512,均可以使手机100运行文件迁移服务。另外,用户可以点击隐私空间管理界面510上的退出按钮513退出隐私空间返回主空间,还可以点击隐私空间管理界面510上的删除按钮514删除所创建的隐私空间,删除隐私空间之后,隐私空间内的文件数据也会被删除。例如,用户点击“主空间至隐私空间”选项511后,手机100可以显示图5b所示的迁移至隐私空间的操作界面520。
如图5b所示,迁移至隐私空间的操作界面520包括可迁移的图片521、视频522以及音频523。例如,用户选择图片521,手机100则可以显示图5c所示的图片选择界面530。其中,图5c至图5f所示及相关描述,将在下文相应步骤中介绍,在此不再赘述。
402:判断当前空间是否为指定开通迁移权限的空间。如果判断结果为是,则表明用户的文件迁移操作可能是获得手机100的系统授权允许的有效操作,手机100可以继续执行下述步骤403,进一步判断响应用户的文件迁移操作的应用程序是否为指定开通迁移权限的应用;如果判断结果为否,则表明用户的文件迁移操作不是手机100的系统授权允许的操作,即无效操作,手机100可以直接执行下述步骤409,提示用户操作失败。
示例性地,上述指定开通迁移权限的空间例如可以是隐私空间,用户的文件迁移操作如果是在手机100运行隐私空间的场景下进行的操作,则该文件迁移操作可能为有效操作;如果用户的文件迁移操作不是在手机100运行隐私空间的场景下进行的操作,例如该文件迁移操作是在手机100运行主空间或者另一用户操作空间的场景下进行的操作,则可以确定该操作是无效操作,是手机100不能够响应的操作。
可以理解,在另一些实施例中,上述指定开通迁移权限的空间例如也可以是其他用户操作空间,在此不做限制。
403:判断响应用户的文件迁移操作的应用程序是否为指定开通迁移权限的应用。如果判断结果为是,则表明用户的文件迁移操是已获得手机100的系统授权允许的有效操作,手机100可以继续执行下述步骤404,继续响应用户的下一步操作;如果判断结果为否,则表明户的文件迁移操是未获得手机100系统授权的无效操作,手机100可以直接执行下述步骤409,提示用户操作失败。
示例性地,上述指定开通迁移权限的应用例如可以是手机100上的文件迁移服务311,用户所进行的文件迁移操作如果是通过打开文件迁移服务311进行的,结合上述步骤402的判断结果为是的情形,可以确定用户的文件迁移操作为手机100的系统所授权允许的有效操作,手机100则需要响应用户的文件迁移操作,继续执行下述步骤进行文件迁移。反之,如果用户所进行的文件迁移操作是通过其他非指定的应用程序进行,例如该文件迁移操作通过手机100上所安装的克隆应用,而该克隆应用是手机100未指定授权迁移权限的应用,则可以确定该文件迁移操作是手机100的系统所不允许的操作,手机100则不会响应该文件迁移操作。
可以理解,在另一些实施例中,上述指定开通迁移权限的应用也可以是其他能够保障手机100的各文件系统空间内数据安全的其他应用,在此不做限制。
404:显示待迁移的目标文件所在原文件系统空间内的文件页面。
示例性地,经前述步骤402、403的判断过程之后,如果确定用户的文件迁移操作为手机100的系统所授权允许的有效操作,则手机100可以响应该文件迁移操作,显示用户需要迁移的目标文件(即指定文件)所在的文件系统空间内的文件页面,目标文件所在的文件系统空间以下可以称之为原文件系统空间,该原文件系统空间例如可以是用户在手机100上创建的u0用户空间或者u10用户空间。
作为示例,用户在上述图5b所示的迁移至隐私空间的操作界面520选择图片521之后,手机100则可以显示图5c所示的图片选择界面530。图5c所示的图片选择界面530即为待迁移的图片文件所在的原文件系统空间内的文件页面。
可以理解,如果用户的文件迁移操作是将主空间内的文件迁移至隐私空间内的操作,则手机100响应该文件迁移操作可以显示主空间内对应用户需要迁移文件的文件页面,例如上述图5c所示的图片选择界面530所显示的图片文件;如果用户的文件迁移操作是将隐私空间内的文件迁移至主空间内的操作,则手机100响应该文件迁移操作显示隐私空间内对应用户需要迁移文件的文件页面,在此不做赘述。
可以理解,在另一些实施例中,手机100响应用户的文件迁移操作也可以先显示上述图5b所示的操作界面520,当用户在所显示的操作界面520上选择要迁移的文件类型后,手机100再显示相应文件类型的文件页面。可以理解,用户需要迁移的文件类型可以包括图片、视频、音频等类型,在此不做限制。
405:检测到用户在所显示的文件页面中选择待迁移的指定文件,并确定迁移所选指定文件的操作。
示例性地,用户在手机100所显示的文件页面上可以选择待迁移的文件,即指定文件,进行迁移,手机100在检测到用户的确认迁移操作后完成指定文件从原文件系统空间至目标文件系统空间的迁移。
作为示例,如图5c所示,图片选择界面530可以选择需要迁移的图片(即指定文件),被选中的图片右下角可以显示勾选标记531表明该文件处于选中状态,勾选标记531的样式参考图5c所示的“√”,用户选定需要迁移的图片后可以点击迁移按钮532,此时手机100可以弹出图5c所示的迁移确认框533,用户可以进一步点击迁移确认框533中的确认按钮534可以完成对所选图片文件的迁移,手机100则可以显示图5d所示的迁移完成界面540。图5c所示的图片选择界面530左上角还可以显示用户选择的需要迁移的文件数量,例如图5c所示的“已选择148项”。
继续如图5c所示,用户在图片选择界面530也可以点击全选按钮535,对图片选择界面530上的图片全部选中(包括未显示在图5c所示界面上的图片),在此不再赘述。另外,在图5c中用户点击迁移按钮532之后手机100所显示迁移确认框533中,用户也可以点击取消按钮536取消本次迁移操作。
可以理解,在另一些实施例中,手机100响应于用户在所显示的文件页面中选择待迁移的指定文件以及确定迁移所选指定文件的操作所显示的界面也可以是其他界面形式,在此不做限制。
406:显示迁移成功提示界面。
示例性地,用户在手机100所显示的界面上确认对指定文件的迁移操作后,指定文件则成功地从原文件系统迁移至目标文件系统,手机100此时可以显示迁移成功的提示界面。
作为示例,用户在上述图5c所示的图片选择界面530上选定指定文件确认迁移后,手机100则可以显示图5d所示的迁移完成界面540。在另一些实施例中,手机100所显示的迁移成功提示界面,也可以是其他界面形式,在此不做限制。
可以理解,例如在上述步骤402中已确定手机100当前空间是指定开通迁移权限的隐私空间,则手机100响应于用户的文件迁移操作可以完成将文件从主空间迁移至隐私空间、或者将文件从隐私空间迁移至主空间的过程。也就是说,接收指定文件的目标文件系统空间,例如可以是主空间或隐私空间。
407:检测到用户打开目标文件系统空间,查看完成迁移的指定文件的操作。
示例性地,例如接收迁移的指定文件的目标文件系统空间为u0用户空间,则用户打开目标文件系统空间,查看完成迁移的指定文件的操作,可以打开主空间内显示所接收的指定文件的界面;又例如接收迁移的指定文件的目标文件系统空间为u10用户空间,则用户打开目标文件系统空间,查看完成迁移的指定文件的操作,例如是在隐私空间运行相应应用程序,以打开显示所接收的指定文件的界面的操作。
作为示例,通过上述图5a至图5d所示的迁移操作过程,完成对用户所选图片文件的迁移后,参考图5e所示,用户点击隐私空间桌面550上的图库应用图标551可以手机100打开隐私空间内的图库应用,手机100则运行图库应用并显示图5f所示的图库界面560。
408:进入目标文件系统空间,显示完成迁移的文件。
示例性地,手机100响应于用户操作可以运行目标文件系统空间,以及显示完成迁移的文件。如上所述,目标文件系统空间例如可以是u0用户空间或u10用户空间。以目标文件系统空间为u10用户空间为例,手机100在隐私空间下响应用户操作运行相应应用程序显示所接收的指定文件的界面可以参考图5f所示的图库界面560,如图5f所示,图库界面560上显示的“所有照片148”即是通过上述图5a至图5d的迁移操作完成的从主空间迁移至隐私空间的148张图片。
可以理解,在另一些实施例中,用户指定迁移的文件如果是其他类型的文件,例如是音频或者联系人,手机100可以显示对应于指定文件类型的文件显示界面,在此不做限制。
409:显示操作失败提示界面。
示例性地,在上述步骤402或403的判断过程中,如果确定用户的文件迁移操作不是手机100的系统授权允许的操作,即无效操作,则手机100可以显示操作失败的提示界面,该提示界面例如是手机100显示弹窗提示操作失败的界面,也可以是其他形式的界面,在此不做限制。
可以理解,手机100在执行上述步骤401至409实施本申请的文件迁移方法的过程,是基于手机100的操作系统内各部分之间的交互来实现的。
因此,为了更清楚的说明本申请方案的具体实施过程,下面结合手机100系统内各部分之间的交互流程示意图,从另一角度来描述本申请方案的具体实施过程。
图6根据本申请实施例示出了本申请的文件迁移方法实施过程中手机100系统内各部分之间的交互流程示意图。
如图6所示,该交互流程包括以下步骤。
601:文件迁移服务311请求可调用的内容提供者实例。为方便描述,请求实例的文件迁移服务311在下文中可以称为“调用者”。
示例性地,手机100的系统执行用户通过文件迁移服务311进行的文件迁移操作,需要文件迁移服务311获取指定文件的原文件系统空间的文件迁移权限,因此文件迁移服务311的文件访问请求可以用于请求获取对原文件系统空间内文件的迁移权限。
作为示例,文件迁移服务311请求可调用的内容提供者实例例如可以采用get()函数发出请求,参考“getContentResolver().query(uri,projection,null,null,null)”,其中“query”后的“()”内可以表示所要请求的内容提供者实例的相关信息,例如包括请求可调用的内容提供者实例的调用地址等,在此不再赘述。
可以理解,文件迁移服务311可以通过获取原文件系统空间内可供该文件迁移服务311调用的内容提供者实例,来获取对原文件系统空间内文件的迁移权限,因此,文件迁移服务311可以直接通过Activity管理服务322请求可调用的内容提供者实例。如上所述,该原文件空间系统例如可以是手机100出厂创建的主空间,或者用户在手机100上创建的隐私空间,在此不做限制。
602:Activity管理服务322响应于文件迁移服务311的实例请求,生成用于提供文件迁移服务311所需文件的内容提供者实例的内容提供者请求数据包。其中,Activity管理服务322可以在判断该实例请求满足预设响应条件的情况下,可以生成文件迁移服务311所需文件的文件系统空间(例如u0用户空间)内的内容提供者实例对应的请求数据包;在判断该实例请求不满足预设响应条件的情况下,可以该文件迁移服务的311所在的文件系统空间(例如u10用户空间)内的内容提供者请求数据包。另外,Activity管理服务322所生成的请求数据包中可以包括文件迁移服务511所需要的内容提供者的描述信息等。
示例性地,文件迁移服务311通过Activity管理服务322请求用于访问指定文件所在的原文件系统空间内文件对应的内容提供者实例,Activity管理服务322可以基于文件迁移服务311实例请求生成内容提供者实例的内容提供者请求数据包,该请求数据包中至少包括用于描述所需要的内容提供者需要提供的文件系统空间用户ID等数据的描述信息等,在此不做限制。可以理解,隐私空间内运行的文件迁移服务311进行文件迁移的过程中,无论是将文件从主空间迁移至隐私空间,还是将隐私空间内的文件迁移至主空间,该文件迁移服务311都需要获取对主空间的文件数据等的访问、复制、删除等操作权限。
可以理解,Activity管理服务322判断文件迁移服务311对内容提供者实例的请求是否满足预设响应条件,可以通过判断运行该文件迁移服务311的空间是否为指定开通迁移权限的空间(例如隐私空间),并且判断该文件迁移服务311是否为指定开通迁移权限的应用程序,来判断是否满足预设响应条件。可以理解,Activity管理服务322在生成内容提供者实例的内容提供者请求数据包之前,可以先在基于判断结果查找系统的实例缓存池中是否有的内容提供者实例,如果有,则Activity管理服务322可以直接将所查询到的实例返给文件迁移服务311,此种情形下,则无需再生成实例请求数据包向内容提供器321请求创建内容提供者,并在接收到内容提供器321返回相应的内容提供者后对所接收的内容提供者进行实例化,最后将实例化的内容提供者发送给文件迁移服务311。具体Activity管理服务322所执行的判断过程、以及Activity管理服务322基于判断结果查询实例缓存池的过程,将在下文结合另一流程图具体描述,在此不再赘述。
603:Activity管理服务322将所生成的内容提供者请求数据包发送给内容提供器321。
示例性地,Activity管理服务322在确定系统的实例缓存池中没有反馈给文件迁移服务311的内容提供者实例的情况下,可以将所生成的实例请求数据包发送给内容提供器321,用于向内容提供器321请求创建内容提供者实例。
604:内容提供器321基于所接收的内容提供者请求数据包,创建内容提供者实例的内容提供者。
示例性地,内容提供器321接收到Activity管理服务322发来的实例请求数据包后,创建内容提供者实例对应的内容提供者,并返给Activity管理服务322。
605:内容提供器321向Activity管理服务322发送所创建的内容提供者。
606:Activity管理服务322将接收到的内容提供者进行实例化,得到相应的内容提供者实例。
示例性地,Activity管理服务322接收到内容提供器321返回的内容提供者之后,可以对该内容提供者进行实例化,即将所接收的内容提供者绑定对应的调用者信息并配置相应的调用参数,以使该内容提供者能够被相应的调用者调用,例如调用者可以是文件迁移服务311,则给内容提供者实例化之后可以被文件迁移服务311调用,以访问对应文件系统空间内的文件。
作为示例,在应用了FUSE文件系统的手机100所搭载的安卓操作系统中,上述步骤602至606的Activity管理服务322响应文件迁移服务311的实例请求返回内容提供者实例的过程中,Activity管理服务322所进行的数据转换以及对所接收的内容提供者进行实例化的过程可以包括:(1)Activity管理服务322先响应于文件迁移服务311的实例请求生成ContextImpl类请求文件;(2)Activity管理服务322再通过各种调用函数(例如query函数、acquire函数等)查询实例缓存池中的内容提供者实例或者生成包括内容提供者实例描述信息的实例请求数据包向内容提供器321申请创建内容提供者实例的内容提供者;(3)Activity管理服务322还可以通过Activity线程(activity thread)向文件迁移服务311对应的应用程序线程(application thread)请求调用者信息,即请求文件迁移服务311的身份识别文件((Identity Document,ID),并将获取到的调用者信息包装在内容提供器321响应创建请求返回的内容提供者上以绑定所请求的内容提供者与调用者之间的调用关系,从而对该内容提供者进行实例化。其中,内容提供器321创建内容提供者的过程、以及Activity管理服务322获取内容提供器321所创建的内容提供者进行实例化后返回内容提供者实例句柄给文件迁移服务311的过程,将在下文详细描述,在此不再赘述。
可以理解,在另一些实施例中,Activity管理服务322响应文件迁移服务311的实例请求的过程中涉及的数据转换过程也可以包括其他转换方式,在此不做限制。
607:Activity管理服务322向文件迁移服务311发送内容提供者实例的句柄。
示例性地,Activity管理服务322完成对所接收的内容提供者进行实例化的过程后,可以将该实例化的内容提供者(即内容提供者实例)的调用句柄发送给文件迁移服务311。之后,文件迁移服务311基于该句柄便可以调用该实例。
作为示例,例如Activity管理服务322返给文件迁移服务311的实例是主空间内的内容提供器321所创建的内容提供者经实例化之后得到的,则文件迁移服务311可以通过该实例的句柄调用该实例访问主空间内的文件数据,对主空间内的文件进行复制、删除等操作,完成文件迁移过程。
对于上述步骤602至步骤607的执行过程,下面结合另一流程图,并以将指定文件从手机100的主空间迁移至隐私空间为例,详细介绍Activity管理服务322响应文件迁移服务311(调用者)的实例请求后所执行的判断过程、以及基于判断结果查询实例缓存池获取内容提供者实例、或者调用主空间内的内容提供器创建内容提供者实例的内容提供者、再对所创建的内容提供者进行实例化后返给文件迁移服务311的过程进行具体介绍。
图7根据本申请实施例示出了本申请的文件迁移方法实施过程中,手机100系统内的Activity管理服务322响应文件迁移服务311的调用请求返回内容提供者实例句柄过程的执行流程示意图。可以理解,图7所示流程的各步骤的执行主体均为手机100系统内的Activity管理服务322,以下各步骤的描述中将不再重复描述各步骤的执行主体。
如图7所示,该流程包括以下步骤:
701:响应于调用者的请求,判断当前空间是否为隐私空间。其中,隐私空间为指定开通迁移权限的空间。如果判断结果为是,则Activity管理服务322可以继续执行下述步骤702进一步确认是否需要获取主空间内的内容提供者实例返给调用者;如果判断结果为否,则Activity管理服务322执行下述步骤704,返回手机100当前空间用户ID。
示例性地,文件迁移服务311(调用者)执行用户的文件迁移操作时,如果待迁移的指定文件为主空间内的文件,则Activity管理服务322响应文件迁移服务311的调用请求需要先判断手机100当前空间是否为隐私空间,已确认是否需要返回主空间内的内容提供者实例。本步骤的具体判断过程可以参考上述步骤402中相关描述,在此不再赘述。
702:判断调用者是否为文件迁移服务。如果判断结果为是,则可以确定该调用者可以获取主空间的文件迁移权限,可以向Activity管理服务322内的管理模块返回主空间用户ID;如果判断结果为否,则可以确定该调用者不能获取主空间的文件迁移权限,因此只能向Activity管理服务322内的管理模块返回当前空间用户ID。
示例性地,Activity管理服务322在确定手机100的当前空间为隐私空间的情况下,可以进一步判断调用者是否为文件迁移服务,其中隐私空间内运行的文件迁移服务是指定开通迁移权限的应用。本步骤的具体判断过程可以参考上述步骤403中相关描述,在此不再赘述。
可以理解,本申请实施例所描述的上述步骤701和本步骤702、以及上述步骤402和403的执行顺序,既可以同时执行也可以分别先后执行,在此不做限制。
703:返回主空间用户ID。在本步骤之后,继续执行下述步骤705。
示例性地,在确定该调用者可以获取主空间的文件迁移权限的情况下,Activity管理服务322例如可以向该服务内的管理模块返回主空间用户ID,以用于获取主空间内的内容提供者实例。
704:返回当前空间用户ID。在本步骤之后,继续执行下述步骤705。
示例性地,在确定该调用者不能获取主空间的文件迁移权限的情况下,Activity管理服务322例如可以向该服务内的管理模块返回当前空间用户ID,以用于获取当前空间内的内容提供者实例。
可以理解,在本申请实施例中,当前空间例如可以是隐私空间,在另一些实施例中,当前空间也可以是主空间、隐私空间之外的其他空间,在此不做限制。
705:在实例缓存池中,查找所返回的用户ID对应的用户名下是否存在内容提供者实例。如果判断结果为是,则Activity管理服务322获取该空间名下的实例返给调用者,即执行下述步骤708;如果判断结果为否,则Activity管理服务322需要向该空间内的内容提供器请求创建内容提供者实例的内容提供者,即执行下述步骤706。
示例性地,Activity管理服务322可以在该服务内的实例缓存池中查询调用者所请求的内容提供者实例,可以理解,Activity管理服务322内的实例缓存池中存储有各空间用户名下的对应于各应用程序的可调用的内容提供者实例。如果是主空间用户ID,则Activity管理服务322可以查询实例缓存池中主空间用户名下的各个实例,如果可以查询到调用者所请求的实例,则可以向调用者返回所查询到的实例的句柄。如果是当前空间用户ID,当前空间例如是隐私空间,则Activity管理服务322可以查询实例缓存池中隐私空间用户名下的各个实例,如果可以查询到调用者所请求的实例,则可以向调用者返回所查询到的实例的句柄。
706:生成相应实例的内容提供者请求数据包,向所返回的用户ID对应空间的内容提供器请求创建相应的内容提供者。
示例性地,例如Activity管理服务322如果在该服务内的实例缓存池中未查询到主空间名下的内容提供者实例,则需要向主空间的内容提供器请求创建内容提供者实例的内容提供者。Activity管理服务322例如可以生成内容提供者实例的内容提供者请求数据包,发送给主空间内的内容提供器以请求创建内容提供者实例的内容提供者。具体可以参考上述步骤602中相关描述,在此不再赘述。
707:接收内容提供器321返回的内容提供者,并对该内容提供者进行实例化。
示例性地,主空间内的内容提供器接收到Activity管理服务322发来的请求数据包后,可以基于数据包中的描述信息创建内容提供者实例的内容提供者,并返给Activity管理服务322。Activity管理服务322接收内容提供器返回的内容提供者后,可以对该内容提供者进行实例化,具体实例化的过程可以参考上述步骤606中相关描述,在此不再赘述。
708:向调用者返回调用者所请求的内容提供者实例的句柄。
示例性地,Activity管理服务322完成对所接收的内容提供者进行实例化的过程后,向调用者(例如文件迁移服务311)返回内容提供者实例的句柄,文件迁移服务311可以基于所返回的句柄可以调用内容提供者实例,例如主空间内对应于文件迁移服务的内容提供者实例,获取主空间内待迁移的指定文件。具体可以参考上述步骤607中的相关描述。在此不再赘述。
可以理解,在手机100的系统运行过程中Activity管理服务322可以通过Activity线程来启动,并通过Activity线程获取文件迁移服务311的内容提供者实例请求,以及通过Activity线程向文件迁移服务311返回内容提供者实例的句柄。
因此,为了更加清楚的说明本申请方案的实现逻辑,下面继续结合另一流程图详细描述本申请的文件迁移方法实施过程中,手机100系统内文件迁移服务311与Activity管理服务322以及Activity线程3221之间的交互过程。
图8示出了本申请的文件迁移方法实施过程中,手机100系统内文件迁移服务311与Activity管理服务322以及Activity线程3221之间的交互执行流程示意图。
如图8所示,该交互执行流程包括以下步骤:
801:文件迁移服务311请求可调用的内容提供者实例。
示例性地,文件迁移服务311(即调用者)响应于用户的文件迁移操作,生成内容提供者实例请求,用于请求能够提供待迁移文件资源的内容提供者实例。可以理解,文件迁移服务311所请求的内容提供者实例为主空间的内容提供器321所创建的内容提供者经实例化后的内容提供者实例。文件迁移服务311请求内容提供者实例的具体操作过程可以参考上述步骤601中相关描述,在此不再赘述。
802:Activity线程3221判断连接过的内容提供者实例中是否有符合调用者请求的内容提供者实例。若判断结果为是,则Activity线程3221可以直接执行步骤815;若判断结果为否,则Activity线程3221可以向Activity管理服务322返回没有内容提供者实例的判断结果,由Activity管理服务322继续执行下述步骤803。
示例性地,Activity线程3221在所保存的已连接过程的内容提供者实例资源中,先基于文件迁移服务311所请求的内容提供者实例的相关信息进行匹配,判断是否有文件迁移服务311所请求的内容提供者实例,可以理解,Activity线程3221所匹配的内容提供者实例是由主空间的内容提供器321创建的内容提供者经实例化之后得到的内容提供者实例。如果有,则说明文件迁移服务311曾调用过内容提供者实例,直接将匹配到的内容提供者实例的句柄返回给文件迁移服务311即可。如果没有,则说明文件迁移服务311是首次调用内容提供者实例,需要执行下述步骤803,判断文件迁移服务311是否有获取主空间的内容提供者的权限,即判断调用者是否有文件迁移权限,在此不再赘述。
803:Activity管理服务322判断内容提供者实例请求是否满足预设响应条件。若判断结果为是,表明Activity管理服务322可以获取主空间的相应内容提供者实例返给调用者,则可以继续执行下述步骤804;如果判断结果为否,表明Activity管理服务322不能获取主空间的相应内容提供者实例返给调用者,则执行下述步骤805。
示例性地,Activity管理服务322判断内容提供者实例请求是否满足预设响应条件,包括判断运行文件迁移服务311的当前空间是否为隐私空间(或,判断当前用户是否是隐私空间用户),以及判断请求内容提供者实例的调用者是否为隐私空间的文件迁移服务311。在确定运行文件迁移服务311的当前空间为隐私空间并且请求内容提供者实例的调用者为隐私空间的文件迁移服务311的情况下,继续执行下述步骤804,返回主空间用户ID。如果运行文件迁移服务311的当前空间不是隐私空间,或者请求内容提供者实例的调用者不是隐私空间的文件迁移服务311,则继续执行下述步骤805,返回当前空间用户ID。具体可以参考上述步骤701至步骤702的判断过程中相关描述,在此不再赘述。
804:Activity管理服务322返回主空间用户ID。可以理解,步骤804与上述步骤703相同,在此不再赘述。
805:Activity管理服务322返回隐私空间用户ID。可以理解,步骤805与上述步骤704的不同之处在于,本步骤805基于当前空间为隐私空间进行描述,因此直接描述为Activity管理服务322向服务内的管理模块返回隐私空间用户ID,在此不再赘述。
806:Activity管理服务322在实例缓存池中,查找所返回的用户ID对应的用户名下是否存在内容提供者实例。若判断结果为是,则可以直接将查找到的内容提供者实例的句柄通过Activity线程3221返回给文件迁移服务311,即执行下述步骤807;若判断结果为否,则需要调用内容提供器321创建相应的内容提供者,即执行下述步骤808至814的过程。
可以理解,Activity管理服务322在实例缓存池中查找所返回的用户ID对应的主空间用户名下或隐私空间用户名下是否存在内容提供者实例的过程,具体可以参考上述步骤705中相关描述,在此不再赘述。
807:Activity线程3221缓存Activity管理服务322查找到的内容提供者实例。
示例性地,在上述步骤806中如果Activity管理服务322在实例缓存池中查找到所返回的主空间用户名下的内容提供者实例,则Activity线程3221可以获取该主空间用户名下的内容提供者实例并缓存,之后Activity线程3221可以将缓存的主空间用户名下的内容提供者实例的句柄返回给文件迁移服务311,即在本步骤807之后可以继续执行下述步骤815。
相应地,如果Activity管理服务322返回的是隐私空间用户ID,则在上述步骤806中如果Activity管理服务322在实例缓存池中查找到隐私空间用户名下的内容提供者实例,Activity线程3221也可以获取该隐私空间用户名下的内容提供者实例并缓存,之后Activity线程3221可以将缓存的隐私空间用户名下的内容提供者实例的句柄返回给文件迁移服务311,即在本步骤807之后可以继续执行下述步骤815。可以理解,文件迁移服务311调用隐私空间用户名下的内容提供者实例仅能访问隐私空间内的文件,如果需要访问主空间内的文件则需获得主空间用户名下的内容提供者实例。
808:Activity管理服务322判断所返回的用户ID对应空间的内容提供器与调用者是否位于同一进程。若判断结果为是,则继续执行下述步骤809;若判断结果为否,则继续执行下述步骤810。
示例性地,在上述步骤806中如果Activity管理服务322在实例缓存池中未查找到所返回的主空间用户ID对应的用户名下的内容提供者实例,或者未查找到所返回的隐私空间用户ID对应的用户名下的内容提供者实例,则需要启动创建内容提供者的流程,包括Activity管理服务322先判断所返回的用户ID对应空间的内容提供器与调用者是否位于同一进程。例如所返回的用户ID为主空间用户ID,则Activity管理服务322判断主空间的内容提供器321与调用者文件迁移服务311是否位于同一进程,如果二者位于同一进程,则此时主空间的内容提供器321可以直接创建内容提供者返给Activity管理服务322的Activity线程3221,即继续执行下述步骤809即可;如果二者不在同一进程,则需要建立主空间的内容提供器321与文件迁移服务311之间的连接,即需要执行下述步骤810。
809:Activity线程3221获取所返回的用户ID对应空间的内容提供器创建的内容提供者并进行实例化,得到相应实例。在本步骤809执行后,Activity线程3221可以继续执行下述步骤815,向调用者反馈调用者所请求的内容提供者实例的句柄。
示例性地,例如所返回的用户ID为主空间用户ID,上述步骤808中判断的主空间的内容提供器321与调用者文件迁移服务311位于同一进程,则Activity线程3221可以获取同一进程上的主空间内容提供器321创建的内容提供者,并对所获取的内容提供者进行实例化,得到主空间的内容提供者实例,进而可以继续执行下述步骤815向调用者反馈调用者所请求的内容提供者实例的句柄。
810:Activity管理服务322建立所返回的用户ID对应空间的内容提供器与调用者之间的连接。
示例性地,例如所返回的用户ID为主空间用户ID,上述步骤808中判断的主空间的内容提供器321与调用者文件迁移服务311不在同一进程,则Activity管理服务322需要建立二者之间的连接,即将文件迁移服务311创建为主空间的内容提供器321的连接对象,以将主空间的文件数据通过主空间的内容提供器321暴露给文件迁移服务311。在此不再赘述。
811:Activity管理服务322判断所返回的用户ID对应空间的内容提供器是否在等待启动列表中。若判断结果为是,则继续执行下述步骤812;若判断结果为否,则继续执行下述步骤813。
示例性地,例如所返回的用户ID为主空间用户ID,在建立主空间的内容提供器321与文件迁移服务311之间的连接时,Activity管理服务322需要判断此时主空间的内容提供器321是否在启动列表里,如果在启动列表里,则Activity管理服务322可以调用Activity线程3221启动内容提供器创建相应的内容提供者,即继续执行下述步骤812;如果不在启动列表里,则需要执行下述步骤813,继续判断内容提供器321所在进程是否在运行。
812:Activity线程3221启动内容提供器创建相应的内容提供者并进行实例化。在本步骤812执行后,Activity线程3221可以继续执行下述步骤815,向调用者反馈调用者所请求的内容提供者实例的句柄。
示例性地,例如所返回的用户ID为主空间用户ID,在上述步骤811中如果Activity管理服务322判断此时主空间的内容提供器321已在启动列表里,则Activity线程3221可以直接启动主空间的内容提供器321创建内容提供者,Activity线程3221再将主空间的内容提供器321所创建的内容提供者进行实例化,之后Activity线程3221可以继续执行下述步骤815向调用者反馈调用者所请求的内容提供者实例的句柄。
813:Activity管理服务322判断内容提供器321所在的进程是否存活。若判断结果为是,则执行上述步骤812;若判断结果为否,则需要执行下述步骤814。
示例性地,例如所返回的用户ID为主空间用户ID,在上述步骤811中如果Activity管理服务322判断此时主空间的内容提供器321不在启动列表里,则Activity管理服务322需要获取主空间的内容提供器321当前所在的进程是否还在运行,即是否存活。如果主空间的内容提供器321当前所在的进程仍在运行,例如此时主空间的内容提供器321正与其他应用程序位于同一进程中时,则Activity线程3221仍可以访问获主空间的内容提供器321所在的进程,启动主空间的内容提供器321创建内容提供者,即继续执行上述步骤的812。如果主空间的内容提供器321当前所在的进程已停止运行,则Activity管理服务322需要启动进程,将主空间的内容提供器321添加到启动列表中,即需要执行下述步骤814。
814:Activity管理服务322启动进程,把所返回的用户ID对应空间的内容提供器添加进待启动列表中。在本步骤814执行后,Activity线程3221可以继续执行上述步骤812,启动内容提供器创建相应的内容提供者并进行实例化。
示例性地,例如所返回的用户ID为主空间用户ID,在上述步骤813中如果Activity管理服务322判断主空间的内容提供器321当前所在的进程已停止运行,则需要启动一个进程,将主空间的内容提供器321添加到启动列表中,之后Activity线程3221继续执行上述步骤812,启动主空间的内容提供器321创建相应的内容提供者并进行实例化,在此不再赘述。
815:Activity线程3221返回调用者所请求的内容提供者实例的句柄给调用者。
可以理解,如果上述步骤803判断相应实例请求满足预设响应条件,执行步骤804返回主空间用户ID之后,经过上述步骤806至815的过程后可以将文件迁移服务311所请求的主空间的内容提供者实例返回给文件迁移服务311,如此,文件迁移服务311便可以访问主空间内的文件将指定文件从主空间迁移至隐私空间。如果上述步骤803判断相应实例请求不满足预设响应条件,执行步骤805返回隐私空间用户ID之后,则经过上述步骤806至815的过程后,Activity线程3221向文件迁移服务311返回的则是隐私空间的内容提供者实例,此种情形下文件迁移服务311无法访问主空间内文件,则无法完成文件迁移过程。
本申请通过对满足预设响应条件、或者说对指定开通迁移权限的指定空间内的指定应用的文件迁移请求,通过重定向到待迁移文件所在空间的内容提供器请求的相应内容提供者实例的方式,最终完成文件迁移过程。能够在用户空间文件系统的分用户管理下完成文件迁移过程,满足用户的文件迁移需求,安全性高,并且不会增加手机100系统运行负担,用户体验也较好。
可以理解,在另一些实施例中,手机100实施本申请的文件迁移方法,也可以将隐私空间内的指定文件迁移至主空间内,该文件迁移过程中手机100所显示的相关界面可以参考图9a至图9f所示。
图9a至图9f示出了隐私空间内文件迁移至主空间的过程中手机100所显示的部分界面示意图。
用户操作手机100进入隐私空间后,可以操作手机100打开图9a所示的隐私空间管理界面510。图9a所示的隐私空间管理界面510与图5a所示界面相同,在此不再赘述。
如图9a所示,用户在隐私空间管理界面510上点击“隐私空间至主空间”选项512,后,手机100可以显示图9b所示的迁移至主空间的操作界面920。
如图9b所示,迁移至主空间的操作界面920包括可迁移的图片921、视频922以及音频923。例如,用户选择图片921,手机100则可以显示图9c所示的图片选择界面930。
如图9c所示,用户在图片选择界面930可以选择需要迁移的图片(即指定文件),被选中的图片右下角可以显示勾选标记931表明该文件处于选中状态,勾选标记531的样式参考图9c所示的“√”,用户在图片选择界面930上选定需要迁移的图片后可以点击迁移按钮932,此时手机100可以弹出图9c所示的迁移确认框933,用户可以进一步点击迁移确认框933中的确认按钮934可以完成对所选图片文件的迁移,手机100则可以显示图9d所示的迁移完成界面940。图9c所示的图片选择界面930左上角还可以显示用户选择的需要迁移的文件数量,例如图9c所示的“已选择136项”。
继续如图9c所示,用户在图片选择界面930也可以点击全选按钮935,对图片选择界面930上的图片全部选中(包括未显示在图9c所示界面上的图片),在此不再赘述。另外,在图9c中用户点击迁移按钮932之后手机100所显示迁移确认框933中,用户也可以点击取消按钮936取消本次迁移操作。
通过上述图9a至图9d所示的迁移操作过程,完成对用户所选图片文件的迁移后,参考图9e所示,用户点击主空间桌面950上的图库应用图标951可以打开手机100主空间的图库应用,手机100则运行图库应用并显示图9f所示的图库界面960。
如图9f所示,图库界面560上显示的“所有照片3,136”中包括图9a至图9d的迁移操作完成的从隐私空间迁移至主空间的136张图片。
图10根据本申请实施例示出了一种手机100的结构示意图。
如图10所示,手机100可以包括处理器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,加速度传感器180E,指纹传感器180H,触摸传感器180K,环境光传感器180L等。
可以理解的是,本申请实施例示意的结构并不构成对手机100的具体限定。在本申请另一些实施例中,手机100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从上述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。在本申请实施例中,处理器110可以调用存储器中存储的实施本申请的文件迁移方法的执行指令,实施本申请实施例所提供的文件迁移方法。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器110可以包含多组I2C总线。处理器110可以通过不同的I2C总线接口分别耦合触摸传感器180K,充电器,闪光灯,摄像头193等。例如:处理器110可以通过I2C接口耦合触摸传感器180K,使处理器110与触摸传感器180K通过I2C总线接口通信,实现手机100的触摸功能。
I2S接口可以用于音频通信。在一些实施例中,处理器110可以包含多组I2S总线。处理器110可以通过I2S总线与音频模块170耦合,实现处理器110与音频模块170之间的通信。在一些实施例中,音频模块170可以通过I2S接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过PCM总线接口耦合。在一些实施例中,音频模块170也可以通过PCM接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。所述I2S接口和所述PCM接口都可以用于音频通信。
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过UART接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过UART接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
MIPI接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(displayserial interface,DSI)等。在一些实施例中,处理器110和摄像头193通过CSI接口通信,实现手机100的拍摄功能。处理器110和显示屏194通过DSI接口通信,实现手机100的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为手机100充电,也可以用于手机100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如AR设备等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对手机100的结构限定。在本申请另一些实施例中,手机100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为电子设备供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。
手机100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。
移动通信模块150可以提供应用在手机100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(lownoise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
无线通信模块160可以提供应用在手机100上的包括无线局域网(wireless localarea networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequencymodulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
手机100通过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),Mini-LED,Micro-LED,Micro-OLED,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,手机100可以包括1个或N个显示屏194,N为大于1的正整数。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,手机100可以包括1个或N个摄像头193,N为大于1的正整数。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展手机100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,上述可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储手机100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行手机100的各种功能应用以及数据处理。
手机100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。
耳机接口170D用于连接有线耳机。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180A,电极之间的电容改变。手机100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,手机100根据压力传感器180A检测该触摸操作的强度。手机100也可以根据压力传感器180A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
加速度传感器180E可检测手机100在各个方向上(一般为三轴)加速度的大小。当手机100静止时可检测出重力的大小及方向。还可以用于识别电子设备姿态,应用于横竖屏切换,计步器等应用。
环境光传感器180L用于感知环境光亮度。手机100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180L也可用于拍照时自动调节白平衡。环境光传感器180L还可以与接近光传感器180G配合,检测手机100是否在口袋里,以防误触。
指纹传感器180H用于采集指纹。手机100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。在本申请实施例中,主空间和隐私空间可以采用不同的解锁指纹进行验证登录,以保障隐私空间内隐私数据的安全性。用户可以在手机100上验证不同的指纹分别进入主空间和隐私空间。
触摸传感器180K,也称“触控器件”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于手机100的表面,与显示屏194所处的位置不同。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。手机100可以接收按键输入,产生与手机100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。
可以理解,在说明书对“一个实施例”或“实施例”的引用意指结合实施例所描述的具体特征、结构或特性被包括在根据本申请公开的至少一个范例实施方案或技术中。说明书中的各个地方的短语“在一个实施例中”的出现不一定全部指代同一个实施例。
本申请公开还涉及用于执行文本中的操作装置。该装置可以专门处于所要求的目的而构造或者其可以包括被存储在计算机中的计算机程序选择性地激活或者重新配置的通用计算机。这样的计算机程序可以被存储在计算机可读介质中,诸如,但不限于任何类型的盘,包括软盘、光盘、CD-ROM、磁光盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁或光卡、专用集成电路(ASIC)或者适于存储电子指令的任何类型的介质,并且每个可以被耦合到计算机系统总线。此外,说明书中所提到的计算机可以包括单个处理器或者可以是采用针对增加的计算能力的多个处理器涉及的架构。
另外,在本说明书所使用的语言已经主要被选择用于可读性和指导性的目的并且可能未被选择为描绘或限制所公开的主题。因此,本申请公开旨在说明而非限制本文所讨论的概念的范围。
Claims (17)
1.一种文件迁移方法,应用于电子设备,所述电子设备上设置有主空间、隐私空间和第一应用,所述电子设备的文件系统为用户空间文件系统,其特征在于,包括:
接收第一应用对主空间的第一类文件的第一访问请求,其中,运行所述第一应用的空间为隐私空间;
在确定所述第一应用具有对所述主空间的第一类文件的读权限的情况下,
响应于所述第一访问请求,对所述第一类文件所对应的内容提供者由隐私空间的第二内容提供者重定向至主空间的第一内容提供者;其中,所述第一内容提供者用于供所述第一应用获取所述第一类文件;
接收所述第一应用对所述主空间的第一类文件中的第一指定文件的第一迁移请求,其中所述第一迁移请求用于请求将所述第一指定文件从主空间迁移至隐私空间;
响应于所述第一迁移请求,在确定所述第一应用具有对所述主空间的第一类文件的读写权限的情况下将所述第一指定文件从主空间迁移至隐私空间。
2.根据权利要求1所述的方法,其特征在于,所述第一迁移请求包括第一文件路径和第二文件路径,其中所述第一文件路径为所述第一指定文件的获取路径,所述第二文件路径为所述第一指定文件的写入路径;并且
所述第一文件路径指向所述主空间,所述第二文件路径指向所述隐私空间。
3.根据权利要求2所述的方法,其特征在于,所述对所述第一类文件所对应的内容提供者由隐私空间的第二内容提供者重定向至主空间的第一内容提供者,包括:
响应于所述第一访问请求,返回主空间用户的身份识别文件;
基于所述主空间用户的身份识别文件获得所述第一内容提供者,其中
所述第一内容提供者用于提供所述第一文件路径。
4.根据权利要求3所述的方法,其特征在于,所述将所述第一指定文件从主空间迁移至隐私空间,包括:
基于所述第一文件路径从所述主空间获取所述第一指定文件;
基于所述第二文件路径将获取的所述第一指定文件写入所述隐私空间。
5.根据权利要求1至4中任一项所述的方法,其特征在于,在所述第一应用为文件迁移服务的情形下,确定所述第一应用具有对所述主空间的第一类文件的读写权限。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:在确定所述第一应用不具有对所述第一类文件的读写权限的情况下,
响应于所述第一迁移请求,返回所述隐私空间用户的身份识别文件;
基于所述隐私空间用户的身份识别文件获得第二内容提供者,其中
所述第二内容提供者无法提供访问所述第一指定文件的路径。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收第一应用对隐私空间的第二指定文件的第二迁移请求,所述第二迁移请求用于请求将所述第二指定文件从隐私空间迁移至主空间;其中,运行所述第一应用的空间为隐私空间;
在确定所述第一应用具有对所述第二指定文件的读写权限的情况下,
响应于所述第二迁移请求,对所述第二指定文件所对应的内容提供者由隐私空间的第四内容提供者重定向至主空间的第三内容提供者;其中,
所述第三内容提供者用于供所述第一应用将所述第二指定文件写入所述主空间,以将所述第二指定文件从隐私空间迁移至主空间。
8.根据权利要求7所述的方法,其特征在于,所述第二迁移请求包括第三文件路径和第四文件路径,其中所述第三文件路径为所述第二指定文件的访问路径,所述第四文件路径为所述第二指定文件的写入路径;并且
所述第三文件路径指向所述隐私空间,所述第四文件路径指向所述主空间。
9.根据权利要求8所述的方法,其特征在于,所述对所述第二指定文件所对应的内容提供者由隐私空间的第四内容提供者重定向至主空间的第三内容提供者,包括:
响应于所述第二迁移请求,返回主空间用户的身份识别文件;
基于所述主空间用户的身份识别文件获得所述第三内容提供者,其中,
所述第三内容提供者用于提供所述第四文件路径。
10.根据权利要求9所述的方法,其特征在于,所述将所述第二指定文件从隐私空间迁移至主空间,包括:
基于所述第三文件路径从所述隐私空间获取所述第二指定文件;
基于所述第四文件路径将获取的所述第二指定文件写入所述主空间。
11.根据权利要求7至10中任一项所述的方法,其特征在于,在所述第一应用为文件迁移服务的情形中,确定所述第一应用具有对所述第二指定文件的读写权限。
12.根据权利要求1至11中任一项所述的方法,其特征在于,所述第一类文件包括图片、视频、音频、联系人中的任一项。
13.根据权利要求7至11中任一项所述的方法,其特征在于,所述第二指定文件的类型包括图片、视频、音频、联系人中的任一项。
14.一种文件迁移方法,应用于电子设备,所述电子设备上设置有主空间、隐私空间和第一应用,所述电子设备的文件系统为用户空间文件系统,其特征在于,包括:
接收第一应用对隐私空间的第一类文件的第一访问请求,其中,运行所述第一应用的空间为主空间;
在确定所述第一应用具有对所述隐私空间的第一类文件的读权限的情况下,
响应于所述第一访问请求,对所述第一类文件所对应的内容提供者由主空间的第一内容提供者重定向至隐私空间的第二内容提供者;其中,所述第二内容提供者用于供所述第一应用获取所述第一类文件;
接收所述第一应用对所述隐私空间的第一类文件中的第一指定文件的第二迁移请求,其中所述第二迁移请求用于请求将所述第一指定文件从隐私空间迁移至主空间;
响应于所述第二迁移请求,在确定所述第一应用具有对所述隐私空间的第一类文件的读写权限的情况下将所述第一指定文件从隐私空间迁移至主空间。
15.根据权利要求14所述的方法,其特征在于,所述方法还包括:
接收第一应用对主空间的第二指定文件的第二迁移请求,所述第二迁移请求用于请求将所述第二指定文件从主空间迁移至隐私空间;其中,运行所述第一应用的空间为主空间;
在确定所述第一应用具有对所述第二指定文件的读写权限的情况下,
响应于所述第二迁移请求,对所述第二指定文件所对应的内容提供者由主空间的第三内容提供者重定向至主空间的第四内容提供者;其中,
所述第四内容提供者用于供所述第一应用将所述第二指定文件写入所述隐私空间,以将所述第二指定文件从主空间迁移至隐私空间。
16.一种电子设备,其特征在于,包括:一个或多个处理器;一个或多个存储器;所述一个或多个存储器存储有一个或多个程序,当所述一个或者多个程序被所述一个或多个处理器执行时,使得所述电子设备执行权利要求1至15中任一项所述的文件迁移方法。
17.一种计算机可读存储介质,其特征在于,所述存储介质上存储有指令,所述指令在计算机上执行时使所述计算机执行权利要求1至15中任一项所述的文件迁移方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111300248.6A CN116069723B (zh) | 2021-11-04 | 2021-11-04 | 文件迁移方法、电子设备及存储介质 |
EP22889002.6A EP4339762A1 (en) | 2021-11-04 | 2022-09-15 | File migration method, electronic device, and storage medium |
US18/570,483 US20240281549A1 (en) | 2021-11-04 | 2022-09-15 | File migration method, electronic device , and storage medium |
PCT/CN2022/119111 WO2023077975A1 (zh) | 2021-11-04 | 2022-09-15 | 文件迁移方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111300248.6A CN116069723B (zh) | 2021-11-04 | 2021-11-04 | 文件迁移方法、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116069723A true CN116069723A (zh) | 2023-05-05 |
CN116069723B CN116069723B (zh) | 2024-08-30 |
Family
ID=86177524
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111300248.6A Active CN116069723B (zh) | 2021-11-04 | 2021-11-04 | 文件迁移方法、电子设备及存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240281549A1 (zh) |
EP (1) | EP4339762A1 (zh) |
CN (1) | CN116069723B (zh) |
WO (1) | WO2023077975A1 (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105912951A (zh) * | 2016-04-15 | 2016-08-31 | 北京小米移动软件有限公司 | 数据迁移方法及装置 |
CN106844464A (zh) * | 2016-12-21 | 2017-06-13 | 北京奇虎科技有限公司 | 移动终端及其文件解禁方法和装置 |
CN107636612A (zh) * | 2015-03-27 | 2018-01-26 | 英特尔公司 | 用于移动应用的实时迁移的应用容器 |
CN108229203A (zh) * | 2017-12-29 | 2018-06-29 | 北京安云世纪科技有限公司 | 一种终端中的文件保护方法及装置 |
WO2021083378A1 (zh) * | 2019-11-01 | 2021-05-06 | 华为技术有限公司 | 一种加速应用程序启动的方法及电子设备 |
CN113157231A (zh) * | 2019-09-18 | 2021-07-23 | 华为技术有限公司 | 一种数据传输的方法及相关设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104657674B (zh) * | 2015-01-16 | 2018-02-23 | 北京邮电大学 | 一种手机中隐私数据的隔离保护系统及方法 |
US10248355B2 (en) * | 2017-02-22 | 2019-04-02 | International Business Machines Corporation | Data migration for applications on a mobile device |
CN108573161B (zh) * | 2017-03-13 | 2022-02-18 | 北京贝塔科技股份有限公司 | 加密方法、应用锁以及电子设备 |
-
2021
- 2021-11-04 CN CN202111300248.6A patent/CN116069723B/zh active Active
-
2022
- 2022-09-15 US US18/570,483 patent/US20240281549A1/en active Pending
- 2022-09-15 WO PCT/CN2022/119111 patent/WO2023077975A1/zh active Application Filing
- 2022-09-15 EP EP22889002.6A patent/EP4339762A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107636612A (zh) * | 2015-03-27 | 2018-01-26 | 英特尔公司 | 用于移动应用的实时迁移的应用容器 |
CN105912951A (zh) * | 2016-04-15 | 2016-08-31 | 北京小米移动软件有限公司 | 数据迁移方法及装置 |
CN106844464A (zh) * | 2016-12-21 | 2017-06-13 | 北京奇虎科技有限公司 | 移动终端及其文件解禁方法和装置 |
CN108229203A (zh) * | 2017-12-29 | 2018-06-29 | 北京安云世纪科技有限公司 | 一种终端中的文件保护方法及装置 |
CN113157231A (zh) * | 2019-09-18 | 2021-07-23 | 华为技术有限公司 | 一种数据传输的方法及相关设备 |
WO2021083378A1 (zh) * | 2019-11-01 | 2021-05-06 | 华为技术有限公司 | 一种加速应用程序启动的方法及电子设备 |
Non-Patent Citations (1)
Title |
---|
余勇;郭骞;: "基于Smali Code的移动应用行为模型的自动构建方法", 计算机科学, no. 11, 15 November 2017 (2017-11-15) * |
Also Published As
Publication number | Publication date |
---|---|
US20240281549A1 (en) | 2024-08-22 |
EP4339762A1 (en) | 2024-03-20 |
WO2023077975A1 (zh) | 2023-05-11 |
CN116069723B (zh) | 2024-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022100315A1 (zh) | 应用界面的生成方法及相关装置 | |
CN114840825B (zh) | 智能终端的登录方法及电子设备 | |
CN114816167B (zh) | 应用图标的显示方法、电子设备及可读存储介质 | |
WO2022100222A1 (zh) | 信息检索方法、装置、系统及存储介质 | |
EP3886416B1 (en) | Image classification method and electronic device | |
WO2022028494A1 (zh) | 一种多设备数据协作的方法及电子设备 | |
WO2022089121A1 (zh) | 处理推送消息的方法和装置 | |
WO2023088459A1 (zh) | 设备协同方法及相关装置 | |
CN115017534B (zh) | 文件处理权限控制方法、装置及存储介质 | |
WO2022001279A1 (zh) | 跨设备桌面管理方法、第一电子设备及第二电子设备 | |
CN116431044A (zh) | 开启应用程序的方法、装置及终端设备 | |
CN117077703A (zh) | 图像处理方法及电子设备 | |
CN116069723B (zh) | 文件迁移方法、电子设备及存储介质 | |
CN114048469B (zh) | 目录操作管理方法、电子设备及可读存储介质 | |
WO2022088867A1 (zh) | 一种指纹验证方法、电子设备与服务器 | |
CN116982042A (zh) | 灵活授权的访问控制方法、相关装置及系统 | |
CN115022458A (zh) | 电子设备丢失的处理方法、系统、电子设备及介质 | |
CN115981576B (zh) | 共享数据的方法、电子设备及存储介质 | |
WO2024078412A1 (zh) | 跨屏分享方法、图形界面及相关装置 | |
CN117354884B (zh) | 一种apn切换方法及相关设备 | |
CN117857646B (zh) | 数据网络共享方法、电子设备及存储介质 | |
EP4325356A1 (en) | Desktop sharing method and electronic device | |
CN117111965A (zh) | 应用程序的安装方法、电子设备和可读存储介质 | |
CN117708055A (zh) | 文件挂载方法、介质、程序产品和电子设备 | |
CN117750340A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |