CN113642010B - 一种获取扩展存储设备数据的方法及移动终端 - Google Patents

一种获取扩展存储设备数据的方法及移动终端 Download PDF

Info

Publication number
CN113642010B
CN113642010B CN202010346481.7A CN202010346481A CN113642010B CN 113642010 B CN113642010 B CN 113642010B CN 202010346481 A CN202010346481 A CN 202010346481A CN 113642010 B CN113642010 B CN 113642010B
Authority
CN
China
Prior art keywords
storage device
user
information
party application
switched
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.)
Active
Application number
CN202010346481.7A
Other languages
English (en)
Other versions
CN113642010A (zh
Inventor
綦开东
黄增志
张军辉
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hisense Mobile Communications Technology Co Ltd
Original Assignee
Hisense Mobile Communications Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hisense Mobile Communications Technology Co Ltd filed Critical Hisense Mobile Communications Technology Co Ltd
Priority to CN202010346481.7A priority Critical patent/CN113642010B/zh
Publication of CN113642010A publication Critical patent/CN113642010A/zh
Application granted granted Critical
Publication of CN113642010B publication Critical patent/CN113642010B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/604Tools and structures for managing or administering access control systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space

Abstract

本发明提供一种获取扩展存储设备数据的方法及移动终端,用以解决在Android系统发生用户切换后第三方应用无法读取切换前挂载的扩展存储设备数据的问题。本发明实施例在确定操作系统的系统用户发生切换时,将内核文件系统中扩展存储设备的挂载用户信息更新为切换后的系统用户的标识信息;在第三方应用请求获取扩展存储设备中存储的数据时,确定第三方应用当前运行所在的操作系统的系统用户的标识信息与内核文件系统中扩展存储设备的挂载用户信息相同,将扩展存储设备中存储的数据返回给第三方应用。因此在系统用户发生切换后第三方应用可以从切换前挂载的扩展存储设备中读取数据。

Description

一种获取扩展存储设备数据的方法及移动终端
技术领域
本发明涉及计算机技术领域,尤其涉及一种获取扩展存储设备数据的方法及移动终端。
背景技术
Android平台为了保护用户数据安全不断增强第三方应用读写存储设备数据时的权限检测机制,但该权限检测机制对用户私密性要求较低、共享要求较高的扩展存储设备的数据读取造成了很大影响。
目前,Android默认支持多用户功能,例如可以Android系统可以设置主用户和至少一个副用户。在将扩展存储设备接入移动终端,且在移动终端挂载成功后,若Android系统发生用户切换,切换后移动终端上的第三方应用将无法读取扩展存储设备中的数据。例如在主用户下插入的TF卡,第三方应用可以正常读取TF卡的数据,但当切换到副用户后,第三方应用就无法读取TF卡数据。反之,副用户下插入的TF卡,切换到主用户后第三方应用也无法读取TF卡的数据。
综上所述,在Android系统发生用户切换后,第三方应用无法读取用户切换前挂载的扩展存储设备中的数据。
发明内容
本发明示例性的实施方式中提供一种获取扩展存储设备的及移动终端,用以在Android系统发生用户切换后,第三方应用能够正常读取用户切换前挂载的扩展存储设备中的数据。
根据示例性的实施方式中的第一方面,提供一种通信终端,包括:处理器和扩展存储设备;
所述扩展存储设备被配置为存储数据;
所述处理器被配置为在确定操作系统的系统用户发生切换时,将内核文件系统中所述扩展存储设备的挂载用户信息更新为切换后的系统用户的标识信息;其中,所述扩展存储设备为在系统用户发生切换前挂载成功的存储设备;
在第三方应用请求获取所述扩展存储设备中存储的数据时,确定所述第三方应用当前运行所在的操作系统的系统用户的标识信息与所述内核文件系统中所述扩展存储设备的挂载用户信息相同,将所述扩展存储设备中存储的数据返回给所述第三方应用。
上述实施例中,在扩展存储设备在移动终端操作系统挂载成功之后,若操作系统的系统用户发生切换,将内核文件系统中扩展存储设备的挂载用户信息更新为切换后的系统用户的标识信息,在第三方应用运行且需要获取扩展存储设备中存储的数据时,由于第三方应用运行所在的操作系统的系统用户为切换后的系统用户,此时内核文件系统中扩展存储设备的挂载用户信息与第三方应用运行所在的操作系统的系统用户的标识信息一致,因此,可以将扩展存储设备中存储的数据返回给第三方设备,从而可以保证在系统用户发生切换后,第三方应用可以从切换前挂载的扩展存储设备中读取数据。
在一些示例性的实施方式中,所述处理器被配置为:
在确定操作系统的系统用户发生切换时,将framework层中所述扩展存储设备的挂载用户信息更新为切换后的系统用户的标识信息;
在系统应用的外部存储进程启动后,确定所述framework层中扩展存储设备的挂载用户信息与当前操作系统的系统用户的标识信息相同,通过所述系统应用的外部存储进程将所述扩展存储设备的设备信息更新至存储设备集合中;其中,所述存储设备集合中包括第三方应用可读的存储设备的设备信息。
上述实施例中,在确定操作系统的系统用户发生切换时,将framework层中扩展存储设备的挂载用户信息更新为切换后的系统用户的标识信息,因此确定当前系统用户的标识信息与framework层中扩展存储设备的挂载用户信息一致,则将扩展存储设备添加至存储设备集合中。
在一些示例性的实施方式中,所述处理器被配置为根据下列方式确定所述第三方应用请求获取所述扩展存储设备中存储的数据:
在确定所述第三方应用通过IO接口将所述扩展存储设备的设备路径传入内核文件系统后,确定所述第三方应用请求获取所述扩展存储设备中存储的数据;其中,所述第三方应用是根据所述扩展存储设备的设备信息确定所述扩展存储设备的设备路径的,且所述扩展存储设备的设备信息是所述第三方应用通过所述外部存储进程的调用接口从所述存储设备集合中获取的。
上述实施例中,在确定操作系统的系统用户发生切换后,第三方应用在切换后的系统用户下运行,第三方应用通过外部存储进程的调用接口获取存储设备集合,由于存储设备集合中包含扩展存储设备的设备信息,第三方应用可以从存储设备集合中获取扩展存储设备的设备信息;第三方应用根据扩展存储设备的设备信息确定扩展存储设备的设备路径,并通过IO接口将扩展存储设备的设备路径传入内核文件系统中,从而触发请求获取扩展存储设备中存储的数据。
在一些示例性的实施方式中,所述处理器被配置为通过sdcard服务将所述内核文件系统中扩展存储设备的挂载用户信息更新为切换后的系统用户的标识信息。
在一些示例性的实施方式中,所述处理器被配置为根据下列方式切换所述操作系统的系统用户:
响应用户通过系统设置界面触发的切换指令,对所述操作系统的系统用户进行切换。
根据示例性的实施方式中的第一方面,提供一种获取扩展存储设备数据的方法,包括:
在确定操作系统的系统用户发生切换时,将内核文件系统中所述扩展存储设备的挂载用户信息更新为切换后的系统用户的标识信息;其中,所述扩展存储设备为在系统用户发生切换前挂载成功的存储设备;
在第三方应用请求获取所述扩展存储设备中存储的数据时,确定所述第三方应用当前运行所在的操作系统的系统用户的标识信息与所述内核文件系统中所述扩展存储设备的挂载用户信息相同,将所述扩展存储设备中存储的数据返回给所述第三方应用。
在一些示例性的实施方式中,该方法还包括:
在确定操作系统的系统用户发生切换时,将framework层中扩展存储设备的挂载用户信息更新为切换后的系统用户的标识信息;
在系统应用的外部存储进程启动后,确定所述framework层中所述扩展存储设备的挂载用户信息与当前操作系统的系统用户的标识信息相同,通过所述系统应用将所述扩展存储设备的设备信息更新至存储设备集合(mRoot对象)中;其中,所述存储设备集合中包括第三方应用可读的存储设备的设备信息。
在一些示例性的实施方式中,所述根据下列方式确定所述第三方应用请求获取所述扩展存储设备中存储的数据:
在确定所述第三方应用通过IO接口将所述扩展存储设备的设备路径传入内核文件系统后,确定所述第三方应用请求获取所述扩展存储设备中存储的数据;其中,所述第三方应用是根据所述扩展存储设备的设备信息确定所述扩展存储设备的设备路径的,且所述扩展存储设备的设备信息是所述第三方应用通过所述外部存储进程的调用接口从所述存储设备集合中获取的。
在一些示例性的实施方式中,所述内核文件系统中扩展存储设备的挂载用户信息更新为切换后的系统用户的标识信息,包括:
通过sdcard服务将所述内核文件系统中扩展存储设备的挂载用户信息更新为切换后的系统用户的标识信息。
在一些示例性的实施方式中,根据下列方式切换所述操作系统的系统用户:
响应用户通过系统设置界面触发的切换指令,对所述操作系统的系统用户进行切换。
根据示例性的实施方式中的第三方面,提供一种计算机存储介质,所述计算机存储介质中存储有计算机程序指令,当所述指令在计算机上运行时,使得所述计算机执行如上所述的获取扩展存储设备数据的方法。
在符合本领域常识的基础上,上述各优选条件,可任意组合,即得本发明各较佳实施例。
附图说明
图1为本发明实施例提供的一种移动终端的结构示意图;
图2示例性示出了本发明实施例提供的一种移动终端的软件架构示意图;
图3示例性示出了本发明实施例提供的移动终端的用户界面示意图;
图4为本发明实施例提供的一种系统设置界面示意图;
图5为本发明实施例提供的另一种系统设置界面示意图;
图6示例性示出了本发明实施例提供的扩展存储设备的挂载流程图;
图7示例性示出了本发明实施例提供的第三方应用获取扩展存储设备中的数据的方法流程图;
图8示例性示出了本发明实施例提供的获取扩展存储设备数据的方法流程图;
图9示例性示出了本发明实施例提供的一种移动终端的结构示意图;
图10示例性示出了本发明实施例提供的另一种移动终端的结构示意图。
具体实施方式
下面将结合附图对本发明实施例中的技术方案进行清除、详尽地描述。其中,在本发明实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本发明实施例的描述中,“多个”是指两个或多于两个。
图1示出了移动终端100的结构示意图。
下面以移动终端100为例对实施例进行具体说明。应该理解的是,图1所示移动终端100仅是一个范例,并且移动终端100可以具有比图1中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
图1中示例性示出了根据示例性实施例中移动终端100的硬件配置框图。如图1所示,移动终端100包括:射频(radio frequency,RF)电路110、存储器120、显示单元130、摄像头140、传感器150、音频电路160、听筒音频电路161、无线保真(Wireless Fidelity,Wi-Fi)模块170、处理器180、蓝牙模块181、以及电源190等部件。
RF电路110可用于在收发信息或通话过程中信号的接收和发送,可以接收基站的下行数据后交给处理器180处理;可以将上行数据发送给基站。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪音放大器、双工器等器件。
存储器120可用于存储软件程序及数据。处理器180通过运行存储在存储器120的软件程序或数据,从而执行移动终端100的各种功能以及数据处理。存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。存储器120存储有使得移动终端100能运行的操作系统。本发明中存储器120可以存储操作系统及各种应用程序,还可以存储执行本发明实施例所述方法的代码。
显示单元130可用于接收输入的数字或字符信息,产生与移动终端100的用户设置以及功能控制有关的信号输入,具体地,显示单元130可以包括设置在移动终端100正面的触摸屏131,可收集用户在其上或附近的触摸操作,例如点击按钮,拖动滚动框等。
显示单元130还可用于显示由用户输入的信息或提供给用户的信息以及终端100的各种菜单的图形用户界面(graphical user interface,GUI)。具体地,显示单元130可以包括设置在移动终端100正面的显示屏132。其中,显示屏132可以采用液晶显示器、发光二极管等形式来配置。显示单元130可以用于显示本发明中所述的各种图形用户界面。
其中,触摸屏131可以覆盖在显示屏132之上,也可以将触摸屏131与显示屏132集成而实现移动终端100的输入和输出功能,集成后可以简称触摸显示屏。本发明中显示单元130可以显示应用程序以及对应的操作步骤。
摄像头140可用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给处理器180转换成数字图像信号。
移动终端100还可以包括至少一种传感器150,比如加速度传感器151、距离传感器152、指纹传感器153、温度传感器154。移动终端100还可配置有陀螺仪、气压计、湿度计、温度计、红外线传感器、光传感器、运动传感器等其他传感器。
音频电路160、扬声器1601、麦克风1602可提供用户与移动终端100之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器1601,由扬声器1601转换为声音信号输出。移动终端100还可配置音量按钮,用于调节声音信号的音量。另一方面,麦克风1602将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出至RF电路110以发送给比如另一终端,或者将音频数据输出至存储器120以便进一步处理。
音频电路160中包括调整声音响度模块1613,音频电路160、听筒受话器1611以及与听筒受话器1611并排设置的麦克风1602可提供用户与移动终端100之间的听筒音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到听筒受话器1611,由听筒受话器1611转换为声音信号输出。移动终端100还可配置音量按钮,用于调节声音信号的音量。另一方面,麦克风1602可以收集环境中的噪音信号或扬声器1601播放的音频信号并转换为电信号,由音频电路160接收后转换为音频数据,由调整声音响度模块1613对音频数据进行处理,用于对扬声器1601播放的音频进行响度调整。
Wi-Fi属于短距离无线传输技术,移动终端100可以通过Wi-Fi模块170帮助用户收发电子邮件、浏览网页和访问流媒体等,它为用户提供了无线的宽带互联网访问。
处理器180是移动终端100的控制中心,利用各种接口和线路连接整个终端的各个部分,通过运行或执行存储在存储器120内的软件程序,以及调用存储在存储器120内的数据,执行移动终端100的各种功能和处理数据。在一些实施例中,处理器180可包括一个或多个处理单元;处理器180还可以集成应用处理器和基带处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,基带处理器主要处理无线通信。可以理解的是,上述基带处理器也可以不集成到处理器180中。本发明中处理器180可以运行操作系统、应用程序、用户界面显示及触控响应,以及本发明实施例所述的处理方法。另外,处理器180与显示单元130耦接。
蓝牙模块181,用于通过蓝牙协议来与其他具有蓝牙模块的蓝牙设备进行信息交互。例如,移动终端100可以通过蓝牙模块181与同样具备蓝牙模块的可穿戴电子设备(例如智能手表)建立蓝牙连接,从而进行数据交互。
移动终端100还包括给各个部件供电的电源190(比如电池)。电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电以及功耗等功能。移动终端100还可配置有电源按钮,用于终端的开机和关机,以及锁屏等功能。
图2是本发明实施例的移动终端100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图2所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图2所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供移动终端100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,移动终端振动,指示灯闪烁等。
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绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
下面结合捕获拍照场景,示例性说明移动终端100软件以及硬件的工作流程。
当触摸屏131接收到触摸操作,相应的硬件中断被发给内核层。内核层将触摸操作加工成原始输入事件(包括触摸坐标,触摸操作的时间戳等信息)。原始输入事件被存储在内核层。应用程序框架层从内核层获取原始输入事件,识别该输入事件所对应的控件。以该触摸操作是触摸单击操作,该单击操作所对应的控件为相机应用图标的控件为例,相机应用调用应用框架层的接口,启动相机应用,进而通过调用内核层启动摄像头驱动,通过摄像头140捕获静态图像或视频。
本发明实施例中的移动终端100可以为手持移动终端,例如手机、平板电脑以及可穿戴设备等。
图3是用于示出移动终端(例如图1的移动终端100)上的用户界面的示意图。在一些具体实施中,用户通过触摸用户界面上的应用图标可以打开相应的应用程序,或者通过触摸用户界面上的文件夹图标可以打开相应的文件夹。
Android系统支持多用户功能,在不同的系统用户登录时,为不同的系统用户创建不同的用户空间,并且,为不同系统用户创建的用户空间中可以包括不同的应用;并且,用户可以切换Android系统的系统用户。
例如,Android系统支持主用户和副用户,在主用户下创建的用户空间中可以包括系统应用、即时通讯类应用、支付类应用、视频类应用;在从主用户切换到副用户时,在副用户下创建的用户空间中包括系统应用、视频类应用。
一种可选的实施方式为,移动终端响应用户通过系统设置界面触发的切换指令,对操作系统的系统用户进行切换。
例如,如图4所示的系统设置界面,该系统设置界面的用户中心包括“切换系统用户”的选项,用户触摸该“切换系统用户”选项后展示如图5所示的包含主用户和副用户的系统设置界面。若当前操作系统为主用户,则用户选择副用户后触发切换指令,将操作系统由主用户切换为副用户;若当前操作系统为副用户,则用户选择主用户后触发切换指令,将操作系统由副用户切换为主用户。
另外,本发明实施例的移动终端为了增加终端内部存储空间,可以为移动终端外接扩展存储设备;
其中,扩展存储设备包括但不限于:
TF卡、CF卡、SD卡、U盘。
在将扩展存储设备插入移动终端后,移动终端执行挂载操作。下面详细介绍本发明实施例扩展存储设备的挂载流程。
如图6所示的扩展存储设备的挂载流程图,包括以下步骤:
步骤S601、在移动终端上插入扩展存储设备时,移动终端的native层的vold服务收到扩展存储设备插入事件后,执行挂载操作。
步骤S602、在扩展存储设备挂载成功后,启动native层的sdcard服务,将当前操作系统的系统用户的标识信息传入内核文件系统中;
需要说明的是,将传入内核文件系统的当前操作系统的系统用户的标识信息作为扩展存储设备的挂载用户信息。
步骤S603、通过binder通信机制将扩展存储设备挂载成功的消息以及扩展存储设备的设备路径等信息传递给上层的系统服务StorageManagerService。
步骤S604、上层服务在接收到扩展存储设备挂载成功的消息后会向外发出扩展存储设备挂载成功广播消息。
步骤S605、将当前操作系统的系统用户的标识信息传入VolumeInfo中。
步骤S606、系统应用ExternalStorage在接收到扩展存储设备挂载成功的广播消息后,确定扩展存储设备的挂载用户信息与当前操作系统的系统用户的标识信息一致,ExternalStorage就会将扩展存储设备的设备信息添加到mRoot对象中,并提供标准接口供第三方应用获取扩展存储设备的设备路径。
本发明实施例在扩展存储设备挂载成功后,移动终端上安装的第三方应用可以读取扩展存储设备中存储的数据;例如,扩展存储设备中可以存储图片、视频、音频、文本等多种类型数据。
假设第三方应用为即时通讯类应用,在根据用户操作,需要获取移动终端上存储的图片数据时,第三方应用可以通过获取扩展存储设备的设备路径,获取扩展存储设备中的数据。
如图7所示,本发明实施例第三方应用可以通过下列方式获取扩展存储设备中的数据:
步骤S701、第三方应用通过系统应用ExternalStorage提供的标准接口获取mRoot对象;
步骤S702、第三方应用从mRoot对象中获取扩展存储设备的设备信息;
步骤S703、第三方应用是根据扩展存储设备的设备信息确定扩展存储设备的设备路径;
步骤S704、第三方应用获取到扩展存储设备的设备路径后,通过系统提供的标准IO接口将扩展存储设备的设备路径传入内核文件系统中;
步骤S705、内核文件系统在进行IO操作时,获取第三方应用运行所在的操作系统的系统用户的标识信息;
步骤S706、内核文件系统确定扩展存储设备的挂载用户信息与第三方应用运行所在的操作系统的系统用户的标识信息一致,则内核文件系统向第三方应用返回扩展存储设备中的数据。
例如,在移动终端操作系统的系统用户为主用户时,假设主用户的标识信息为userId==0;若在主用户下插入TF卡,操作系统将TF卡挂载成功后,会启动native层的sdcard服务将TF卡挂载时的用户Id写入到内核文件系统中,然后借助系统服务StorageManagerService将TF卡挂载时的用户Id写入到VolumeInfo中,同时还向外发送TF卡挂载成功的广播消息。
系统应用ExternalStorage接收到广播消息后,启会遍历所有的VolumeInfo并将挂载用户Id为0的存储设备添加到mRoot对象中,即将TF卡的设备信息添加到了mRoot对象中。
其中,需要说明的是,VolumeInfo为framework层用于记录存储设备的类,VolumeInfo中包含了存储设备的设备路径、名称、类型、用户ID信息等等。
此时,若用户打开GMS包中的Photos应用查看TF卡上的图片时,Photos应用会先通过ExternalStorage提供的接口获取TF卡的路径,然后通过标准IO接口(例如File.java)尝试读取TF卡的数据确认当前TF卡是否可用;IO接口将TF卡的设备路径传入到内核文件系统时,内核文件系统会通过调用关系获取Photos应用运行所在的用户Id,然后与sdcard传入的用户Id信息进行比较,二者一致后就返回TF卡的数据。此时,Photos应用可以通过接口遍历或显示TF卡上的图片资源。
但是,若TF卡挂载成功之后操作系统的系统用户发生切换,由于TF卡是在系统用户切换前挂载成功的,framework层(应用程序框架层)中的TF卡挂载用户信息为切换前的系统用户的标识信息,在framework层中的TF卡挂载用户信息与当前切换后的系统用户的标识信息不一致时,无法将TF卡添加至mRoot对象中,那么第三方应用在需要读取TF卡中的数据时,第三方应用无法获得TF卡的设备信息,从而无法获得TF卡的设备路径。另外,同时内核文件系统中的TF卡挂载用户信息为切换前的系统用户的标识信息,在内核文件系统的TF卡挂载用户信息与当前切换后的系统用户的标识信息不一致时,第三方应用也无法读取TF卡中的数据。
基于上述问题,本发明实施例提供一种获取扩展存储设备数据的方法,如图8所示,包括以下步骤:
步骤S801、在确定操作系统的系统用户发生切换时,将内核文件系统中扩展存储设备的挂载用户信息更新为切换后的系统用户的标识信息;其中,扩展存储设备为在系统用户发生切换前挂载成功的存储设备;
步骤S802、在第三方应用请求获取扩展存储设备中存储的数据时,确定第三方应用当前运行所在的操作系统的系统用户的标识信息与内核文件系统中扩展存储设备的挂载用户信息相同,将扩展存储设备中存储的数据返回给第三方应用。
由于本发明实施例在扩展存储设备在移动终端操作系统挂载成功之后,若操作系统的系统用户发生切换,将内核文件系统中扩展存储设备的挂载用户信息更新为切换后的系统用户的标识信息,在第三方应用运行且需要获取扩展存储设备中存储的数据时,由于第三方应用运行所在的操作系统的系统用户为切换后的系统用户,此时内核文件系统中扩展存储设备的挂载用户信息与第三方应用运行所在的操作系统的系统用户的标识信息一致,因此,可以将扩展存储设备中存储的数据返回给第三方设备,从而可以保证在系统用户发生切换后,第三方应用可以从切换前挂载的扩展存储设备中读取数据。
本发明实施例在切换系统用户的过程中,创建完成新的用户空间后(也就是说在即将完成用户切换时),再次启动sdcard服务,将切换后的系统用户的标识信息更新到内核文件系统中,使得内核文件系统中扩展存储设备的挂载用户信息为切换后的系统用户的标识信息。
另外,本发明实施例在确定操作系统的系统用户发生切换时,还需要将framework层中扩展存储设备的挂载用户信息更新为切换后的系统用户的标识信息;
这样,在系统应用的外部存储进程(ExternalStorage)启动后,需要获取当前可用的存储设备并确定存储设备集合;其中存储设备集合可以为mRoot对象,且存储设备集合中包括第三方应用可读的存储设备的设备信息。
在判断是否可以将扩展存储设备更新至存储设备集合中时,需要判断当前系统用户的标识信息与framework层中扩展存储设备的挂载用户信息是否一致,若是,则将扩展存储设备更新至存储设备集合中;
由于本发明实施例在确定操作系统的系统用户发生切换时,将framework层中扩展存储设备的挂载用户信息更新为切换后的系统用户的标识信息,因此确定当前系统用户的标识信息与framework层中扩展存储设备的挂载用户信息一致,则将扩展存储设备添加至存储设备集合中。
在确定操作系统的系统用户发生切换后,第三方应用在切换后的系统用户下运行,第三方应用通过外部存储进程的调用接口获取存储设备集合,由于存储设备集合中包含扩展存储设备的设备信息,第三方应用可以从存储设备集合中获取扩展存储设备的设备信息;
第三方应用根据扩展存储设备的设备信息确定扩展存储设备的设备路径,并通过IO接口将扩展存储设备的设备路径传入内核文件系统中,触发请求获取扩展存储设备中存储的数据;
由于内核文件系统中扩展存储设备的挂载用户信息与切换后的系统用户的标识信息一致,则内核文件系统向第三方设备返回扩展存储设备中存储的数据。
基于同一发明构思,本发明实施例中还提供了一移动终端,由于该移动终端解决问题的原理与本发明实施例获取扩展存储设备数据的方法相似,因此该移动终端的实施可以参见方法的实施,重复之处不再赘述。
如图9所示,本发明实施例提供的一种移动终端900,包括:处理器901和扩展存储设备902;
所述扩展存储设备902被配置为存储数据;
所述处理器901被配置为在确定操作系统的系统用户发生切换时,将内核文件系统中所述扩展存储设备的挂载用户信息更新为切换后的系统用户的标识信息;其中,所述扩展存储设备为在系统用户发生切换前挂载成功的存储设备;
在第三方应用请求获取所述扩展存储设备中存储的数据时,确定所述第三方应用当前运行所在的操作系统的系统用户的标识信息与所述内核文件系统中所述扩展存储设备的挂载用户信息相同,将所述扩展存储设备中存储的数据返回给所述第三方应用。
一种可选的实施方式为,所述处理器901被配置为:
在确定操作系统的系统用户发生切换时,将framework层中所述扩展存储设备的挂载用户信息更新为切换后的系统用户的标识信息;
在系统应用的外部存储进程启动后,确定所述framework层中扩展存储设备的挂载用户信息与当前操作系统的系统用户的标识信息相同,通过所述系统应用的外部存储进程将所述扩展存储设备的设备信息更新至存储设备集合中;其中,所述存储设备集合中包括第三方应用可读的存储设备的设备信息。
一种可选的实施方式为,所述处理器901被配置为根据下列方式确定所述第三方应用请求获取所述扩展存储设备中存储的数据:
在确定所述第三方应用通过IO接口将所述扩展存储设备的设备路径传入内核文件系统后,确定所述第三方应用请求获取所述扩展存储设备中存储的数据;其中,所述第三方应用是根据所述扩展存储设备的设备信息确定所述扩展存储设备的设备路径的,且所述扩展存储设备的设备信息是所述第三方应用通过所述外部存储进程的调用接口从所述存储设备集合中获取的。
一种可选的实施方式为,所述处理器901被配置为:
通过sdcard服务将所述内核文件系统中扩展存储设备的挂载用户信息更新为切换后的系统用户的标识信息。
一种可选的实施方式为,所述处理器901被配置为根据下列方式切换所述操作系统的系统用户:
响应用户通过系统设置界面触发的切换指令,对所述操作系统的系统用户进行切换。
如图10所示,本发明实施例还提供一种移动终端,包括:
更新模块1001,用于在确定操作系统的系统用户发生切换时,将内核文件系统中所述扩展存储设备的挂载用户信息更新为切换后的系统用户的标识信息;其中,所述扩展存储设备为在系统用户发生切换前挂载成功的存储设备;
数据处理模块1002,用于在第三方应用请求获取所述扩展存储设备中存储的数据时,确定所述第三方应用当前运行所在的操作系统的系统用户的标识信息与所述内核文件系统中所述扩展存储设备的挂载用户信息相同,将所述扩展存储设备中存储的数据返回给所述第三方应用。
本公开实施例提供一种存储介质,当所述存储介质中的指令由处理器执行时,使得所述处理器能够执行上述流程中移动终端实现的获取扩展存储设备数据的方法。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种移动终端,其特征在于,包括:处理器和扩展存储设备;
所述扩展存储设备被配置为存储数据;
所述处理器被配置为在确定操作系统的系统用户发生切换时,将内核文件系统中所述扩展存储设备的挂载用户信息更新为切换后的系统用户的标识信息;其中,所述扩展存储设备为在系统用户发生切换前挂载成功的存储设备;
在第三方应用请求获取所述扩展存储设备中存储的数据时,确定所述第三方应用当前运行所在的操作系统的系统用户的标识信息与所述内核文件系统中所述扩展存储设备的挂载用户信息相同,将所述扩展存储设备中存储的数据返回给所述第三方应用。
2.如权利要求1所述的移动终端,其特征在于,所述处理器被配置为:
在确定操作系统的系统用户发生切换时,将framework层中所述扩展存储设备的挂载用户信息更新为切换后的系统用户的标识信息;
在系统应用的外部存储进程启动后,确定所述framework层中扩展存储设备的挂载用户信息与当前操作系统的系统用户的标识信息相同,通过所述系统应用的外部存储进程将所述扩展存储设备的设备信息更新至存储设备集合中;其中,所述存储设备集合中包括第三方应用可读的存储设备的设备信息。
3.如权利要求2所述的移动终端,其特征在于,所述处理器被配置为根据下列方式确定所述第三方应用请求获取所述扩展存储设备中存储的数据:
在确定所述第三方应用通过IO接口将所述扩展存储设备的设备路径传入内核文件系统后,确定所述第三方应用请求获取所述扩展存储设备中存储的数据;其中,所述第三方应用是根据所述扩展存储设备的设备信息确定所述扩展存储设备的设备路径的,且所述扩展存储设备的设备信息是所述第三方应用通过所述外部存储进程的调用接口从所述存储设备集合中获取的。
4.如权利要求1所述的移动终端,其特征在于,所述处理器被配置为:
通过sdcard服务将所述内核文件系统中扩展存储设备的挂载用户信息更新为切换后的系统用户的标识信息。
5.如权利要求1所述的移动终端,其特征在于,所述处理器被配置为根据下列方式切换所述操作系统的系统用户:
响应用户通过系统设置界面触发的切换指令,对所述操作系统的系统用户进行切换。
6.一种获取扩展存储设备数据的方法,其特征在于,包括:
在确定操作系统的系统用户发生切换时,将内核文件系统中所述扩展存储设备的挂载用户信息更新为切换后的系统用户的标识信息;其中,所述扩展存储设备为在系统用户发生切换前挂载成功的存储设备;
在第三方应用请求获取所述扩展存储设备中存储的数据时,确定所述第三方应用当前运行所在的操作系统的系统用户的标识信息与所述内核文件系统中所述扩展存储设备的挂载用户信息相同,将所述扩展存储设备中存储的数据返回给所述第三方应用。
7.如权利要求6所述的方法,其特征在于,该方法还包括:
在确定操作系统的系统用户发生切换时,将framework层中扩展存储设备的挂载用户信息更新为切换后的系统用户的标识信息;
在系统应用的外部存储进程启动后,确定所述framework层中所述扩展存储设备的挂载用户信息与当前操作系统的系统用户的标识信息相同,通过所述系统应用将所述扩展存储设备的设备信息更新至存储设备集合中;其中,所述存储设备集合中包括第三方应用可读的存储设备的设备信息。
8.如权利要求7所述的方法,其特征在于,根据下列方式确定所述第三方应用请求获取所述扩展存储设备中存储的数据:
在确定所述第三方应用通过IO接口将所述扩展存储设备的设备路径传入内核文件系统后,确定所述第三方应用请求获取所述扩展存储设备中存储的数据;其中,所述第三方应用是根据所述扩展存储设备的设备信息确定所述扩展存储设备的设备路径的,且所述扩展存储设备的设备信息是所述第三方应用通过所述外部存储进程的调用接口从所述存储设备集合中获取的。
9.如权利要求6所述的方法,其特征在于,所述内核文件系统中扩展存储设备的挂载用户信息更新为切换后的系统用户的标识信息,包括:
通过sdcard服务将所述内核文件系统中扩展存储设备的挂载用户信息更新为切换后的系统用户的标识信息。
10.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有计算机程序指令,当所述指令在计算机上运行时,使得所述计算机执行如权利要求6~9任一项所述的获取扩展存储设备数据的方法。
CN202010346481.7A 2020-04-27 2020-04-27 一种获取扩展存储设备数据的方法及移动终端 Active CN113642010B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010346481.7A CN113642010B (zh) 2020-04-27 2020-04-27 一种获取扩展存储设备数据的方法及移动终端

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010346481.7A CN113642010B (zh) 2020-04-27 2020-04-27 一种获取扩展存储设备数据的方法及移动终端

Publications (2)

Publication Number Publication Date
CN113642010A CN113642010A (zh) 2021-11-12
CN113642010B true CN113642010B (zh) 2024-04-26

Family

ID=78415206

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010346481.7A Active CN113642010B (zh) 2020-04-27 2020-04-27 一种获取扩展存储设备数据的方法及移动终端

Country Status (1)

Country Link
CN (1) CN113642010B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114630164B (zh) * 2022-03-14 2024-01-16 卡莱特云科技股份有限公司 一种基于空间拓展播放盒的节目播放方法、装置及系统

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102572092A (zh) * 2010-12-22 2012-07-11 Lg电子株式会社 移动终端和在移动终端中显示信息的方法
CN104090822A (zh) * 2014-07-11 2014-10-08 Tcl通讯(宁波)有限公司 Android系统下外部存储设备的切换方法及系统
CN104408053A (zh) * 2014-10-29 2015-03-11 上海斐讯数据通信技术有限公司 一种移动终端存储卡扩展方法
CN105100901A (zh) * 2014-05-08 2015-11-25 Tcl集团股份有限公司 一种虚拟存储卡配置方法及系统
WO2015176359A1 (zh) * 2014-05-23 2015-11-26 中兴通讯股份有限公司 基于安卓系统的多用户管理方法、装置及计算机存储介质
CN106126438A (zh) * 2016-06-06 2016-11-16 北京珠穆朗玛移动通信有限公司 双用户系统间的数据共享方法及移动终端
CN108920338A (zh) * 2018-06-28 2018-11-30 青岛海信电器股份有限公司 一种指示文件系统状态的方法及终端
CN109086079A (zh) * 2018-06-11 2018-12-25 青岛海信移动通信技术股份有限公司 一种存储设备挂载管理方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050276570A1 (en) * 2004-06-15 2005-12-15 Reed Ogden C Jr Systems, processes and apparatus for creating, processing and interacting with audiobooks and other media
US20190205317A1 (en) * 2012-10-30 2019-07-04 FHOOSH, Inc. Systems and methods for secure storage and retrieval of data objects
US10733300B2 (en) * 2017-10-24 2020-08-04 Ncr Corporation Basic input/output system (BIOS)/unified extensible firmware interface (UEFI) hard drive authentication
US10929247B2 (en) * 2018-04-26 2021-02-23 EMC IP Holding Company LLC Automatic creation of application-centric extended metadata for a storage appliance

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102572092A (zh) * 2010-12-22 2012-07-11 Lg电子株式会社 移动终端和在移动终端中显示信息的方法
CN105100901A (zh) * 2014-05-08 2015-11-25 Tcl集团股份有限公司 一种虚拟存储卡配置方法及系统
WO2015176359A1 (zh) * 2014-05-23 2015-11-26 中兴通讯股份有限公司 基于安卓系统的多用户管理方法、装置及计算机存储介质
CN104090822A (zh) * 2014-07-11 2014-10-08 Tcl通讯(宁波)有限公司 Android系统下外部存储设备的切换方法及系统
CN104408053A (zh) * 2014-10-29 2015-03-11 上海斐讯数据通信技术有限公司 一种移动终端存储卡扩展方法
CN106126438A (zh) * 2016-06-06 2016-11-16 北京珠穆朗玛移动通信有限公司 双用户系统间的数据共享方法及移动终端
CN109086079A (zh) * 2018-06-11 2018-12-25 青岛海信移动通信技术股份有限公司 一种存储设备挂载管理方法及装置
CN108920338A (zh) * 2018-06-28 2018-11-30 青岛海信电器股份有限公司 一种指示文件系统状态的方法及终端

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Android开发中利用反射获取存储路径的研究;陆志平;胡晨骏;;计算机系统应用;20170715(第07期);全文 *
IOMan:一种支持多操作系统远程启动和运行的I/O管理方法;夏楠;张尧学;杨善林;王晓辉;;计算机研究与发展;20070228(第02期);全文 *
Optimizing Local File Accesses for FUSE-Based Distributed Storage;Ishiguro S et al.;2012 SC Companion: High Performance Computing, Networking Storage and Analysis;20130411;全文 *
基于Android移动终端的U盘系统的设计与实现;许剑琪;中国优秀硕士学位论文全文数据库信息科技辑;20150715(第07期);全文 *

Also Published As

Publication number Publication date
CN113642010A (zh) 2021-11-12

Similar Documents

Publication Publication Date Title
CN111597000B (zh) 一种小窗口管理方法及终端
CN110865837B (zh) 一种进行系统升级的方法和终端
CN113835569A (zh) 终端设备、应用内部功能的快捷启动方法和存储介质
CN114721761B (zh) 一种终端设备、应用图标管理方法和存储介质
CN111597004B (zh) 终端及应用中用户界面显示方法
CN111274564A (zh) 通信终端及分屏模式下的应用解锁方法
CN111176766A (zh) 一种通信终端及组件显示方法
CN114020379A (zh) 一种终端设备、信息反馈方法和存储介质
CN112825072B (zh) 通信终端以及数据共享方法
CN113055585B (zh) 拍摄界面的缩略图显示方法及移动终端
CN113642010B (zh) 一种获取扩展存储设备数据的方法及移动终端
CN114371895B (zh) 一种终端设备、邮件标记方法和存储介质
CN111600862B (zh) 一种用户账户管理方法及设备
CN111163220B (zh) 一种显示方法、通信终端及计算机存储介质
CN114035870A (zh) 一种终端设备、应用资源控制方法和存储介质
CN114675786A (zh) 一种大容量存储挂载方法、装置、终端及介质
CN111159734A (zh) 通信终端及多应用数据互访处理方法
CN113496039A (zh) 一种权限管理方法及终端
CN113938890B (zh) 数据共享方法和终端设备
CN114020381B (zh) 一种终端设备、插件部署方法和存储介质
CN112000411B (zh) 移动终端及其录音通道占用信息的显示方法
CN111142648B (zh) 一种数据处理方法和智能终端
CN113641533B (zh) 终端及短信息处理方法
CN111258699B (zh) 一种页面显示方法及通信终端
CN114911394A (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
CB02 Change of applicant information
CB02 Change of applicant information

Country or region after: China

Address after: 266071 Shandong city of Qingdao province Jiangxi City Road No. 11

Applicant after: Qingdao Hisense Mobile Communication Technology Co.,Ltd.

Address before: 266071 Shandong city of Qingdao province Jiangxi City Road No. 11

Applicant before: HISENSE MOBILE COMMUNICATIONS TECHNOLOGY Co.,Ltd.

Country or region before: China

GR01 Patent grant
GR01 Patent grant