安卓系统中拔出USB设备后停止媒体扫描的方法和系统与流程

文档序号:13051614阅读:800来源:国知局
技术领域本发明的实施例涉及安卓系统,更具体地,涉及安卓系统中拔出USB设备后停止媒体扫描的方法和安卓系统中拔出USB设备后停止媒体扫描的系统。

背景技术:
目前使用安卓系统的智能设备的普及率越来越高,在这些智能设备上应用USB设备也越来越普遍,例如在智能电视中接入USB移动硬盘,播放USB移动硬盘中存储的视频、查看USB移动硬盘中存储的照片等等。但安卓系统在USB设备处理方面还存在着不足:当用户插入USB设备(例如U盘、USB移动硬盘等)时,安卓系统会发出广播通知有新设备接入,安卓的一个系统应用会接收到这个广播,开始进行媒体扫描(MediaScanner)去扫描USB设备中的媒体文件(例如音乐、视频、图片等),获取USB设备中的视频、音乐、图片等信息并存储到数据库中,以供其他应用使用。当用户拔出USB设备后,安卓系统会执行卸载命令(unmount),只有卸载命令执行成功了,安卓系统才会认为USB设备真正的被移除了。如果用户插入USB设备后又在很短的时间内拔出,如果该USB设备中存储的媒体文件过多,很有可能安卓系统还正处于媒体扫描过程中,媒体扫描程序正在占用该USB设备,这会导致USB设备卸载(unmount)失败,甚至会导致系统出现不能响应应用的后果(ApplicationNotResponding)。

技术实现要素:
本发明的一个目的是提供一种安卓系统中拔出USB设备后停止媒体扫描的新技术方案。根据本发明的第一方面,提供了一种安卓系统中拔出USB设备后停止媒体扫描(MediaScanner)的方法,包括以下步骤:接收USB设备拔出广播(MEDIA_EJECTED),从中取得USB设备路径;将从USB设备拔出广播(MEDIA_EJECTED)中取得的USB设备路径赋值给媒体扫描类中的USB设备路径静态变量(stringusb_path);获取USB设备路径静态变量(stringusb_path),从中取得USB设备路径;判断当前待扫描的文件路径中是否包含从USB设备路径静态变量(stringusb_path)中取得的USB设备路径,如果包含,则跳过所述当前待扫描的文件不进行扫描。优选地,还包括以下步骤:接收USB设备卸载广播(MEDIA_UNMOUNTED),从中取得USB设备路径;再一次获取USB设备路径静态变量(stringusb_path),从中取得当前的USB设备路径;判断从USB设备卸载广播(MEDIA_UNMOUNTED)中取得的USB设备路径是否在当前的USB设备路径中,如果在,则将USB设备路径从USB设备路径静态变量(stringusb_path)中移除。优选地,所述将从USB设备拔出广播(MEDIA_EJECTED)中取得的USB设备路径赋值给USB设备路径静态变量(stringusb_path)是通过设置静态变量函数(setPath(stringpath))进行赋值。优选地,所述获取USB设备路径静态变量(stringusb_path)是通过获取静态变量函数(getPath(stringpath))进行获取。优选地,所述将USB设备路径从USB设备路径静态变量(stringusb_path)中移除是通过移除静态变量函数(removePath(stringpath))进行移除。根据本发明的第二方面,提供了一种安卓系统中拔出USB设备后停止媒体扫描(MediaScanner)的系统,包括以下单元:广播接收单元,用于接收USB设备拔出广播(MEDIA_EJECTED),从中取得USB设备路径;USB设备路径静态变量赋值单元,用于将从USB设备拔出广播(MEDIA_EJECTED)中取得的USB设备路径赋值给媒体扫描类中的USB设备路径静态变量(stringusb_path);USB设备路径静态变量获取单元,用于获取USB设备路径静态变量(stringusb_path),从中取得USB设备路径;扫描判断单元,用于判断当前待扫描的文件路径中是否包含从USB设备路径静态变量(stringusb_path)中取得的USB设备路径,如果包含,则跳过所述当前待扫描的文件不进行扫描。优选地,还包括USB设备路径移除单元;所述广播接收单元,还用于接收USB设备卸载广播(MEDIA_UNMOUNTED),从中取得USB设备路径;所述USB设备路径静态变量获取单元,还用于再一次获取USB设备路径静态变量(stringusb_path),从中取得当前的USB设备路径;所述USB设备路径移除单元,用于判断从USB设备卸载广播(MEDIA_UNMOUNTED)中取得的USB设备路径是否在当前的USB设备路径中,如果在,则将USB设备路径从USB设备路径静态变量(stringusb_path)中移除。优选地,所述USB设备路径静态变量赋值单元是通过设置静态变量函数(setPath(stringpath))进行赋值。优选地,所述获USB设备路径静态变量获取单元是通过获取静态变量函数(getPath(stringpath))获取USB设备路径静态变量(stringusb_path)。优选地,所述USB设备路径移除单元是通过移除静态变量函数(removePath(stringpath))进行移除。本发明提供的停止媒体扫描的方法和系统,使得USB设备拔出后,能够自动停止扫描USB设备媒体文件,使卸载命令能够执行成功,真正地将USB设备从安卓系统中移除。本发明的发明人发现,在现有技术中,还安卓系统中拔出USB设备后停止媒体扫描的技术方案。因此,本发明所要实现的技术任务或者所要解决的技术问题是本领域技术人员从未想到的或者没有预期到的,故本发明是一种新的技术方案。通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。附图说明被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。图1是安卓系统中拔出USB设备后停止媒体扫描的方法的第一实施例的步骤示意图。图2是安卓系统中拔出USB设备后停止媒体扫描的方法的第二实施例的步骤示意图。图3是安卓系统中拔出USB设备后停止媒体扫描的系统的第一实施例的框图。图4是安卓系统中拔出USB设备后停止媒体扫描的系统的第二实施例的框图。具体实施方式现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。参图1所示介绍安卓系统中拔出USB设备后停止媒体扫描MediaScanner的方法的第一实施例,包括以下步骤:101、接收USB设备拔出广播MEDIA_EJECTED,从中取得USB设备路径;102、调用设置静态变量函数setPath(stringpath)将从USB设备拔出广播MEDIA_EJECTED中取得的USB设备路径赋值给媒体扫描类中的USB设备路径静态变量stringusb_path;103、调用获取静态变量函数getPath(stringpath)获取USB设备路径静态变量stringusb_path,从中取得USB设备路径;104、判断当前待扫描的文件路径中是否包含从USB设备路径静态变量stringusb_path中取得的USB设备路径,如果包含则跳过所述当前待扫描的文件不进行扫描,否则进行扫描。经过以上步骤,MediaScanner就不会再占用已经被拔出的USB设备,该USB设备可以从安卓系统中成功卸载。参图2所示介绍安卓系统中拔出USB设备后停止媒体扫描MediaScanner的方法的第二实施例,相比与第一实施例,第二实施例还包括以下步骤:105、接收USB卸载广播MEDIA_UNMOUNTED,从中取得USB设备路径;106、再一次是调用获取静态变量函数getPath(stringpath)获取USB设备路径静态变量stringusb_path,从中取得当前的USB设备路径;107、判断从USB设备卸载广播MEDIA_UNMOUNTED中取得的USB设备路径是否在当前的USB设备路径中,如果在,则调用移除静态变量函数removePath(stringpath)将USB设备路径从USB设备路径静态变量stringusb_path中移除。第二实施例在USB设备卸载以后,自动将USB设备路径从USB设备路径静态变量stringusb_path中移除,这样下次插入USB设备需要进行媒体扫描时,MediaScanner不会根据没有移除的USB设备路径跳过扫描USB设备中的媒体文件。参图3所示介绍安卓系统中拔出USB设备后停止媒体扫描MediaScanner的系统的第一实施例,包括以下单元:广播接收单元1,用于接收USB设备拔出广播MEDIA_EJECTED,从中取得USB设备路径;USB设备路径静态变量赋值单元2,用于调用设置静态变量函数setPath(stringpath)将从USB设备拔出广播MEDIA_EJECTED中取得的USB设备路径赋值给媒体扫描类中的USB设备路径静态变量stringusb_path;USB设备路径静态变量获取单元3,用于调用获取静态变量函数getPath(stringpath)获取USB设备路径静态变量stringusb_path,从中取得USB设备路径;扫描判断单元4,用于判断当前待扫描的文件路径中是否包含从USB设备路径静态变量stringusb_path中取得的USB设备路径,如果包含则跳过所述当前待扫描的文件不进行扫描,否则进行扫描。参图4所示介绍安卓系统中拔出USB设备后停止媒体扫描MediaScanner的系统的第二实施例,相比于第一实施例,第二实施例还包括USB设备路径移除单元5;所述广播接收单元1,还用于接收USB设备卸载广播MEDIA_UNMOUNTED,从中取得USB设备路径;所述USB设备路径静态变量获取单元3,还用于再一次调用获取静态变量函数getPath(stringpath)获取USB设备路径静态变量stringusb_path,从中取得当前的USB设备路径;所述USB设备路径移除单元5,用于判断从USB设备卸载广播MEDIA_UNMOUNTED中取得的USB设备路径是否在当前的USB设备路径中,如果在,则调用移除静态变量函数removePath(stringpath)将USB设备路径从USB设备路径静态变量stringusb_path中移除。第二实施例在USB设备卸载以后,自动将USB设备路径从USB设备路径静态变量stringusb_path中移除,这样下次插入USB设备需要进行媒体扫描时,MediaScanner不会根据没有移除的USB设备路径跳过扫描USB设备中的媒体文件。根据本发明的技术方案,在USB设备拔出后,MediaScanner不会再占用已经被拔出的USB设备,被拔出的USB设备可以从安卓系统中成功卸载。本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。对于本领域技术人员来说公知的是,本发明可以通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现,无论以何种方式实现都应当属于本发明的保护范围内。虽然已经通过例子对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上例子仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改。本发明的范围由所附权利要求来限定。
当前第1页1 2 3 
网友询问留言 已有1条留言
  • 访客 来自[中国] 2022年11月23日 14:27
    这是搞笑的么
    0
1