CN106649588B - 一种获取已安装应用程序列表的方法、装置及系统 - Google Patents

一种获取已安装应用程序列表的方法、装置及系统 Download PDF

Info

Publication number
CN106649588B
CN106649588B CN201611025023.3A CN201611025023A CN106649588B CN 106649588 B CN106649588 B CN 106649588B CN 201611025023 A CN201611025023 A CN 201611025023A CN 106649588 B CN106649588 B CN 106649588B
Authority
CN
China
Prior art keywords
list
obtaining
acquiring
mobile terminal
data sharing
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
CN201611025023.3A
Other languages
English (en)
Other versions
CN106649588A (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.)
Beijing Qizhi Business Consulting Co ltd
Beijing Qihoo Technology Co Ltd
Original Assignee
Beijing Qihoo Technology Co Ltd
Qizhi Software Beijing 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 Beijing Qihoo Technology Co Ltd, Qizhi Software Beijing Co Ltd filed Critical Beijing Qihoo Technology Co Ltd
Priority to CN201611025023.3A priority Critical patent/CN106649588B/zh
Publication of CN106649588A publication Critical patent/CN106649588A/zh
Application granted granted Critical
Publication of CN106649588B publication Critical patent/CN106649588B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/50Information retrieval; Database structures therefor; File system structures therefor of still image data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0631Item recommendations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Finance (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明涉及一种获取已安装应用程序列表的方法、装置及系统,其中所述方法包括如下步骤:所述应用程序安装于移动终端,包括如下步骤:(一)获取桌面图标数据;(二)建立临时哈希容器以存储所述桌面图标数据中的包名,所述哈希容器的数据即所有已安装应用程序的包名;(三)单个查询所有已安装应用程序的包名从而得到其包信息,然后将所述包信息组合成列表并存储。利用本发明,可以绕开系统的封禁,从文件层面上实现App列表的获取。在获取App列表后,可以对比用户本地App版本与应用市场服务端提供的App最新版本,用于提醒用户进行App升级;或者在给用户推荐“装机必备应用”时,排除用户已安装的App,从而避免盲目推荐终端已安装App。

Description

一种获取已安装应用程序列表的方法、装置及系统
技术领域
本发明涉及智能终端领域,具体而言,本发明涉及一种获取已安装应用程序列表的方法、装置及相应的系统。
背景技术
第三方平台用于对App的定点推广都是基于用户手机上安装的App列表,例如,基于列表提醒应用升级、获取用户对App的偏好,以及避免推送已安装App等。一般来说,现有技术通过API查询方式或者Linux内核打印包名的方式来获取App列表。然而有些品牌/型号手机对API方式禁用,或者Linux内核打印方式造成获取App列表不全。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的获取已安装应用程序列表的方法、装置及相应的系统。
依据本发明的一个方面,提供了一种获取已安装应用程序列表的方法,所述应用程序安装于移动终端,包括如下步骤:
(一)获取桌面图标数据;
(二)建立临时哈希容器以存储所述桌面图标数据中的包名,所述哈希容器的数据即所有已安装应用程序的包名;
(三)单个查询所有已安装应用程序的包名从而得到其包信息,然后将所述包信息组合成列表并存储。
优选地,所述步骤(一)进一步包括如下子步骤:
(1)确定系统使用的默认桌面;
(2)确定默认桌面中图标对应的数据共享组件;
(3)为需要适配的默认桌面添加读取权限;
(4)在目标数据共享组件中获取默认桌面中图标对应的图标数据。
优选地,所述子步骤(2)的具体方法为:
(a)对于只有一个数据共享组件的桌面,直接确定其为目标数据共享组件;
(b)对于拥有多个数据共享组件的桌面,根据所述移动终端的类型直接确定第一个数据共享组件为目标数据共享组件,或者其权限域包含设置字符的为目标数据共享组件,或对每个数据共享组件进行精细化处理以得到目标数据共享组件。
优选地,所述对每个数据共享组件进行精细化处理以得到目标数据共享组件的具体方法如下:首先,获取每个数据共享组件的权限字段,并利用系统接口组合得到数据共享组件查询地址;然后,遍历该数据共享组件,查询所有包含桌面图标属性字段的记录项,并组成列表;最后,将查询到的记录项最多的数据共享组件确定为目标数据共享组件。
根据本发明的另一个方面,还提供了一种获取已安装应用程序列表的装置,所述应用程序安装于移动终端,包括如下模块:
获取图标模块,用于获取桌面图标数据;
包名存储模块,用于建立临时哈希容器以存储所述桌面图标数据中的包名,所述哈希容器的数据即所有已安装应用程序的包名;
查询存储模块,用于单个查询所有已安装应用程序的包名从而得到其包信息,然后将所述包信息组合成列表并存储。
根据本发明的另一个方面,还提供了一种获取已安装应用程序列表的方法,所述应用程序安装于移动终端,包括如下步骤:
(1)获取所述移动终端的信息;
(2)获取预设表格;
(3)依据获取的移动终端信息查询所述预设表格来选定应用程序列表的获取方式;
(4)依据选择的获取方式获取应用程序列表;
(5)若获取成功/不成功,为用户记录此次列表获取的结果信息或者将所述结果信息上报给服务端以更新预设表格。
根据本发明的另一个方面,还提供了一种获取已安装应用程序列表的装置,所述应用程序安装于移动终端,包括如下模块:
信息获取模块,用于获取所述移动终端的信息;
表格获取模块,用于获取预设表格;
查询模块,用于依据获取的移动终端信息查询所述预设表格来选定应用程序列表的获取方式;
列表获取模块,用于依据选择的获取方式获取应用程序列表;
记录上报模块,用于在上述列表获取成功或不成功时,为用户记录此次列表获取的结果信息或者将所述结果信息上报给服务端以更新预设表格。
根据本发明的另一个方面,还提供了一种获取已安装应用程序列表的方法,所述应用程序安装于移动终端,包括如下步骤:
(1)获取所述移动终端的信息;
(2)获取预设表格;
(3)依据获取的移动终端信息查询所述预设表格来选定应用程序列表的获取方式;
(4)依据选择的获取方式获取应用程序列表;
(5)若获取成功/不成功,为用户记录此次列表获取的结果信息或者根据所述结果信息更新预设表格。
根据本发明的另一个方面,还提供了一种获取已安装应用程序列表的装置,所述应用程序安装于移动终端,包括如下模块:
信息获取模块,用于获取所述移动终端的信息;
表格获取模块,用于获取预设表格;
查询模块,用于依据获取的移动终端信息查询所述预设表格来选定应用程序列表的获取方式;
列表获取模块,用于依据选择的获取方式获取应用程序列表;
记录更新模块,用于在上述列表获取成功或不成功时,为用户记录此次列表获取的结果信息或者根据所述结果信息更新预设表格。
根据本发明的另一个方面,还提供了一种获取已安装应用程序列表的系统,包括具移动终端和服务器,所述移动终端和服务器进行交互以获取已安装应用程序列表。
本发明的有益效果如下:利用本发明,可以绕开系统的封禁,从文件层面上实现App列表的获取。在获取App列表后,对比用户本地App版本与应用市场服务端最新App版本,可以获取用户手机中所有应用更新信息,用于提醒用户进行App升级。或者在给用户推荐“装机必备应用”时,排除掉用户已安装的应用,能避免盲目推荐的已有应用。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的一种获取已安装应用程序列表的方法的流程示意图;
图2示出了根据本发明一个实施例的一种获取已安装应用程序列表的装置的结构示意图;
图3示出了根据本发明一个实施例的一种获取图标模块的结构示意图;
图4示出了根据本发明一个实施例的另一种获取已安装应用程序列表的方法的流程示意图;
图5示出了根据本发明一个实施例的另一种获取已安装应用程序列表的装置的结构示意图;
图6示出了根据本发明一个实施例的再一种获取已安装应用程序列表的方法的流程示意图;
图7示出了根据本发明一个实施例的再一种获取已安装应用程序列表的装置的结构示意图;
图8示出了根据本发明一个实施例的一种获取已安装应用程序列表的系统的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的一种获取已安装应用程序列表的方法的流程示意图;如图1所示,所述应用程序安装于移动终端,包括如下步骤:
S110、获取桌面图标数据。
所述步骤S110进一步包括如下子步骤:
(1)确定系统使用的默认桌面,其中确定默认桌面的方法为利用默认应用列表查询或者利用意图属性(Intent)直接进行查询。Android系统可能安装多个桌面,默认桌面是用户正在使用的桌面,因此该桌面的图标是需要获取的目标。
所述利用默认应用列表查询的方法为:先获取所有系统默认应用列表,PackageManager.getPreferredActivities(preferredFilters,preferredActivities,null);然后利用桌面意图属性筛选出默认桌面。其代码如下:
Figure GDA0001395593370000061
(2)确定默认桌面中图标对应的数据共享组件。
桌面图标数据存储于图标数据库中,但Android利用数据共享组件实现图标数据共享,并屏蔽底层数据库存储实现,因此找到正确的数据共享组件是读取默认桌面图标数据的关键。获取默认桌面图标数据共享组件采用以下方法:
PackageInfo pkgInfo=packageManager.getPackageInfo(packageName,PackageManager.GET_PROVIDERS);
ProviderInfo[]providerInfos=pkgInfo.providers;
具体方法为:(a)对于只有一个数据共享组件的桌面,直接确定其为目标数据共享组件;(b)对于拥有多个数据共享组件的桌面,根据所述移动终端的类型直接确定第一个数据共享组件为目标数据共享组件,或者其权限域包含设置字符(setting字符)的数据共享组件为目标数据共享组件,或对每个数据共享组件进行精细化处理以得到目标数据共享组件。
其中,所述对每个数据共享组件进行精细化处理以得到目标数据共享组件的具体方法如下:首先,获取每个数据共享组件的权限字段,并利用系统接口组合Uri.parse("content://"+authority+"/favorites")得到数据共享组件查询地址;然后,遍历该数据共享组件,查询所有包含桌面图标属性字段(例如_id、title、intent、container、screen、cellX、cellY、spanX、spanY)的记录项,并组成列表;最后,将查询到的记录项最多的数据共享组件确定为目标数据共享组件。
(3)为需要适配的默认桌面添加读取权限;例如:
<uses-permission
android:name="com.android.launcher2.permission.READ_SETTINGS"/>
<uses-permission
android:name="com.qiku.launcher.permission.READ_SETTINGS"/>
(4)在目标数据共享组件中获取默认桌面中图标对应的图标数据。
S120、建立临时哈希容器以存储所述桌面图标数据中的包名,所述哈希容器的数据即所有已安装应用程序的包名;
S130、单个查询所有已安装应用程序的包名从而得到其包信息,然后将所述包信息组合成列表并存储:
List<PackageInfo>result=new ArrayList<>();
PackageInfo packageInfo=pm.getPackageInfo(packageName,flags);
result.add(packageInfo);
根据本发明的一个优选实施例,获取已安装应用程序列表后,逐条遍历所述应用程序列表,获取每个应用程序的版本号;对比移动终端的本地应用程序版本与应用市场服务端提供的应用程序最新版本,获取移动终端中所有应用更新信息,并提醒用户进行应用程序升级。例如,如果通过本发明所述的方法得知移动终端安装的“优酷”版本为1.1(2016年1月更新),而服务器所提供的最新优酷版本为1.2(2016年7月更新),则根据该信息给出提示,提醒该移动终端的用户更新优酷的版本。从而,用户可以及时掌握其移动终端的软件更新,获得较佳的用户体验。
根据本发明的另一个优选实施例,获取已安装应用程序列表后,在给用户推荐装机必备应用程序时,排除用户已安装的应用程序。例如,如果根据本发明的方法得知移动终端中已经安装了优酷软件,在用户商店中推荐装机必备时,可以排出优酷,也可以将其排序向后转移,从而为用户节省时间,也由此获得了较佳的用户体验。
根据本发明的另一个优选实施例,在所述步骤S110之前,首先选择API查询方式或Linux内核打印包名方式以获取所述列表,当上述两种方式均失败时,再通过步骤S110到S130获取所述列表。如果打印结果为零或者打印结果很少,例如五个以内,即可认为打印方式失败。
其中,标准系统API调用如下:
List<PackageInfo>packageInfos=PackageManager.getInstalledPackages(flags);
Linux内核打印包名的方式进行App查询;在360助手中执行获取安装包名列表的shell命令,即"pm list packages"命令,读取命令输出结果,从而收集到所用App包名,代码如下:
Figure GDA0001395593370000091
如图2所示,根据本发明的另一个方面,还提供了一种获取已安装应用程序列表的装置200,所述应用程序安装于移动终端,包括如下模块:
获取图标模块210,用于获取桌面图标数据。如图3所示,所述获取图标模块进一步包括如下子模块:
桌面确认模块211,用于确定系统使用的默认桌面,利用默认应用列表查询或者利用意图属性直接进行查询。Android系统可能安装多个桌面,默认桌面是用户正在使用的桌面,因此该桌面的图标是需要获取的目标。
所述利用默认应用列表查询的方法为:先获取所有系统默认应用列表,PackageManager.getPreferredActivities(preferredFilters,preferredActivities,null);然后利用桌面意图属性筛选出默认桌面。其代码如下:
Figure GDA0001395593370000101
数据共享组件确认模块212,用于确定默认桌面中图标对应的数据共享组件。桌面图标数据存储于图标数据库中,但Android利用数据共享组件实现图标数据共享,并屏蔽底层数据库存储实现,因此找到正确的数据共享组件是读取默认桌面图标数据的关键。获取默认桌面图标数据共享组件采用以下方法:
PackageInfo pkgInfo=packageManager.getPackageInfo(packageName,PackageManager.GET_PROVIDERS);
ProviderInfo[]providerInfos=pkgInfo.providers;
具体方法为:(a)对于只有一个数据共享组件的桌面,直接确定其为目标数据共享组件;(b)对于拥有多个数据共享组件的桌面,根据所述移动终端的类型直接确定第一个数据共享组件为目标数据共享组件,或者其权限域包含设置字符的为目标数据共享组件,或对每个数据共享组件进行精细化处理以得到目标数据共享组件。
其中,所述对每个数据共享组件进行精细化处理以得到目标数据共享组件的具体方法如下:首先,获取每个数据共享组件的权限字段,并利用系统接口组合Uri.parse("content://"+authority+"/favorites")得到数据共享组件查询地址;然后,遍历该数据共享组件,查询所有包含桌面图标属性字段(例如_id、title、intent、container、screen、cellX、cellY、spanX、spanY)的记录项,并组成列表;最后,将查询到的记录项最多的数据共享组件确定为目标数据共享组件。
权限添加模块213,用于为需要适配的默认桌面添加读取权限。
图标数据获取模块214,用于在目标数据共享组件中获取默认桌面中图标对应的图标数据。
包名存储模块220,用于建立临时哈希容器以存储所述桌面图标数据中的包名,所述哈希容器的数据即所有已安装应用程序的包名;
查询存储模块230,用于单个查询所有已安装应用程序的包名从而得到其包信息,然后将所述包信息组合成列表并存储。
根据本发明的一个优选实施例,所述装置进一步包括升级提醒模块,用于在获取已安装应用程序列表后,逐条遍历应用程序列表,获取每个应用程序的版本号;对比移动终端的本地应用程序版本与应用市场服务端最新应用程序版本,获取移动终端中所有应用更新信息,并提醒用户进行应用程序升级。例如,如果通过本发明所述的装置得知移动终端安装的“优酷”版本为1.1(2016年1月更新),而服务器所提供的最新优酷版本为1.2(2016年7月更新),则根据该信息给出提示,提醒该移动终端的用户更新优酷的版本。从而,用户可以及时掌握其移动终端的软件更新,获得较佳的用户体验。
根据本发明的一个优选实施例,所述装置进一步包括排除模块,用于获取已安装应用程序列表后,在给用户推荐装机必备应用程序时,排除掉用户已安装的应用程序。例如,如果根据本发明的装置得知移动终端中已经安装了优酷软件,在用户商店中推荐装机必备时,可以排出优酷,也可以将其排序向后转移,从而为用户节省时间,也由此获得了较佳的用户体验。
根据本发明的另一个优选实施例,所述装置进一步包括预查询模块,其使用API查询方式或Linux内核打印包名方式以获取所述列表。如果打印结果为零或者打印结果很少,例如五个以内,即可认为打印方式失败。
其中,标准系统API调用如下:
List<PackageInfo>packageInfos=PackageManager.getInstalledPackages(flags);
Linux内核打印包名的方式进行App查询;在360助手中执行获取安装包名列表的shell命令,即"pm list packages"命令,读取命令输出结果,从而收集到所用App包名,代码如下:
Figure GDA0001395593370000121
Figure GDA0001395593370000131
图4示出了根据本发明一个实施例的另一种获取已安装应用程序列表的方法的流程示意图;如图4所示,一种获取已安装应用程序列表的方法,该方法是在移动终端完成的,包括如下步骤:
S310、获取所述移动终端的信息;所述信息是移动终端的品牌、型号、系统版本、和/或配置信息。
S320、获取预设表格,所述预设表格是存储移动终端信息和应用程序列表获取方式的映射表。所述获取预设表格的具体方法包括以下的一种或多种:(1)向服务端申请获取整个表格;(2)把请求信息发送到服务端并由服务端查询其上的预设表格后给出应用程序列表的获取方式。所述预设表格的生成,可以根据之前上报的历史信息(例如某种手机曾用某方法成功获取过应用程序列表)综合生成。
S330、依据获取的移动终端信息查询所述预设表格来选定应用程序列表的获取方式。
S340、依据选择的获取方式获取应用程序列表。
S350、若获取成功/不成功,为用户记录此次列表获取的结果信息或者将所述结果信息上报给服务端以更新预设表格。若获取不成功,也可以依据备选方案重新获取列表。
图5示出了根据本发明一个实施例的一种获取已安装应用程序列表的装置的结构示意图。如图5所示,一种获取已安装应用程序列表的装置400,该装置用于移动终端,所述装置包括如下模块:
信息获取模块410,用于获取所述移动终端的信息;所述信息获取模块获取的信息是移动终端的品牌、型号、系统版本、和/或配置信息。
表格获取模块420,用于获取预设表格,所述预设表格是存储移动终端信息和应用程序列表获取方式的映射表;所述表格获取模块获取预设表格的具体方法包括以下的一种或多种:(1)向服务端申请获取整个表格;(2)把请求信息发送到服务端并由服务端查询其上的预设表格后给出应用程序列表的获取方式。
查询模块430,用于依据获取的移动终端信息查询所述预设表格来选定应用程序列表的获取方式;
列表获取模块440,用于依据选择的获取方式获取应用程序列表;
记录上报模块450,用于在上述列表获取成功或不成功时,为用户记录此次列表获取的结果信息或者将所述结果信息上报给服务端以更新预设表格。
根据本发明的一个优选实施例,所述装置可以进一步包括备选模块,用于在所述列表获取模块获取不成功,进一步依据备选方案重新获取列表。
图6示出了根据本发明一个实施例的另一种获取已安装应用程序列表的方法的流程示意图;如图6所示,一种获取已安装应用程序列表的方法,该方法是在服务端完成的,包括如下步骤:
S510、获取所述移动终端的信息;所述信息是移动终端的品牌、型号、系统版本、和/或配置信息。
S520、获取预设表格,所述预设表格是存储移动终端信息和应用程序列表获取方式的映射表。所述获取预设表格的具体方法包括以下的一种或多种:(1)向服务端申请获取整个表格;(2)把请求信息发送到服务端并由服务端查询其上的预设表格后给出应用程序列表的获取方式。所述预设表格的生成,可以根据之前上报的历史信息(例如某种手机曾用某方法成功获取过应用程序列表)综合生成。
S530、依据获取的移动终端信息查询所述预设表格来选定应用程序列表的获取方式;
S540、依据选择的获取方式获取应用程序列表;
S550、若获取成功/不成功,为用户记录此次列表获取的结果信息或者根据所述结果信息更新预设表格。若获取不成功,也可以依据备选方案重新获取列表。
图7示出了根据本发明一个实施例的另一种获取已安装应用程序列表的装置的结构示意图;如图7所示,一种获取已安装应用程序列表的装置600,该装置用于服务端,所述装置包括如下模块:
信息获取模块610,用于获取所述移动终端的信息;所述信息获取模块获取的信息是移动终端的品牌、型号、系统版本、和/或配置信息。
表格获取模块620,用于获取预设表格,所述预设表格是存储移动终端信息和应用程序列表获取方式的映射表;所述表格获取模块获取预设表格的具体方法包括以下的一种或多种:(1)根据移动终端的申请获取整个表格;(2)根据移动终端的请求信息查询其预设表格后给出应用程序列表的获取方式。
查询模块630,用于依据获取的移动终端信息查询所述预设表格来选定应用程序列表的获取方式;
列表获取模块640,用于依据选择的获取方式获取应用程序列表;
记录更新模块650,用于在上述列表获取成功或不成功时,为用户记录此次列表获取的结果信息或者根据所述结果信息更新预设表格。
优选的,根据本发明的另一个优选实施例,所述装置可以进一步包括备选模块,用于在所述列表获取模块获取不成功,进一步依据备选方案重新获取列表。
图8示出了根据本发明一个实施例的一种获取已安装应用程序列表的系统的结构示意图。如图8所示,一种获取已安装应用程序列表的系统700,包括具有如上所述装置400的移动终端800和具有如上所述装置600的服务端900,所述服务端和所述移动终端进行交互实现获取已安装应用程序列表。所述移动终端800可以是手机、平板电脑、智能手表等常见的智能移动终端。所述服务端可以是企业级服务器、台式电脑、笔记本电脑等常见的可以用于作为服务器的设备。
需要说明的是:
在此提供的算法和显示不与任何特定计算机、虚拟装置或者其它设备固有相关。各种通用装置也可以与基于在此的示教一起使用。根据上面的描述,构造这类装置所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的虚拟机的创建装置中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其同等技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (35)

1.一种获取已安装应用程序列表的方法,所述应用程序安装于移动终端,其特征在于,包括如下步骤:
(一)获取桌面图标数据;
(二)建立临时哈希容器以存储所述桌面图标数据中的包名,所述哈希容器的数据即所有已安装应用程序的包名;
(三)单个查询所有已安装应用程序的包名从而得到其包信息,然后将所述包信息组合成列表并存储。
2.如权利要求1所述的获取已安装应用程序列表的方法,其特征在于:
所述步骤(一)进一步包括如下子步骤:
(1)确定系统使用的默认桌面;
(2)确定默认桌面中图标对应的数据共享组件;
(3)为需要适配的默认桌面添加读取权限;
(4)在目标数据共享组件中获取默认桌面中图标对应的图标数据。
3.如权利要求2所述的获取已安装应用程序列表的方法,其特征在于:
所述子步骤(1)中确定默认桌面的方法为利用默认应用列表查询或者利用意图属性直接进行查询。
4.如权利要求3所述的获取已安装应用程序列表的方法,其特征在于:
所述利用默认应用列表查询的方法为:先获取所有系统默认应用列表,然后利用桌面意图属性筛选出默认桌面。
5.如权利要求2所述的获取已安装应用程序列表的方法,其特征在于:
所述子步骤(2)的具体方法为:
(a)对于只有一个数据共享组件的桌面,直接确定其为目标数据共享组件;
(b)对于拥有多个数据共享组件的桌面,根据所述移动终端的类型直接确定第一个数据共享组件为目标数据共享组件,或者其权限域包含设置字符的为目标数据共享组件,或对每个数据共享组件进行精细化处理以得到目标数据共享组件。
6.如权利要求5所述的获取已安装应用程序列表的方法,其特征在于:
所述对每个数据共享组件进行精细化处理以得到目标数据共享组件的具体方法如下:首先,获取每个数据共享组件的权限字段,并利用系统接口组合得到数据共享组件查询地址;然后,遍历该数据共享组件,查询所有包含桌面图标属性字段的记录项,并组成列表;最后,将查询到的记录项最多的数据共享组件确定为目标数据共享组件。
7.如权利要求1-6任意一项所述的获取已安装应用程序列表的方法,其特征在于:
获取已安装应用程序列表后,逐条遍历所述已安装应用程序列表,获取每个应用程序的版本号;对比移动终端的本地应用程序版本与应用市场服务端最新应用程序版本,获取移动终端中所有应用更新信息,并提醒用户进行应用程序升级。
8.如权利要求1-6任意一项所述的获取已安装应用程序列表的方法,其特征在于:
获取已安装应用程序列表后,在给用户推荐装机必备应用时,排除掉用户已安装的应用。
9.如权利要求1-6任意一项所述的获取已安装应用程序列表的方法,其特征在于:
在所述步骤(一)之前,首先选择API查询方式或Linux内核打印包名方式以获取所述列表,当上述两种方式均失败时,再通过步骤(一)到(三)获取所述列表。
10.一种获取已安装应用程序列表的装置,所述应用程序安装于移动终端,其特征在于,包括如下模块:
获取图标模块,用于获取桌面图标数据;
包名存储模块,用于建立临时哈希容器以存储所述桌面图标数据中的包名,所述哈希容器的数据即所有已安装应用程序的包名;
查询存储模块,用于单个查询所有已安装应用程序的包名从而得到其包信息,然后将所述包信息组合成列表并存储。
11.如权利要求10所述的获取已安装应用程序列表的装置,其特征在于:
所述获取图标模块进一步包括如下子模块:
桌面确认模块,用于确定系统使用的默认桌面;
数据共享组件确认模块,用于确定默认桌面中图标对应的数据共享组件;
权限添加模块,用于为需要适配的默认桌面添加读取权限;
图标数据获取模块,用于在目标数据共享组件中获取默认桌面中图标对应的图标数据。
12.如权利要求11所述的获取已安装应用程序列表的装置,其特征在于:
所述桌面确认模块确定默认桌面的方法为利用默认应用列表查询或者利用意图属性直接进行查询。
13.如权利要求12所述的获取已安装应用程序列表的装置,其特征在于:
所述利用默认应用列表查询的方法为:先获取所有系统默认应用列表,然后利用桌面意图属性筛选出默认桌面。
14.如权利要求11所述的获取已安装应用程序列表的装置,其特征在于:
所述数据共享组件确认模块确定目标数据共享组件的具体方法为:
(a)对于只有一个数据共享组件的桌面,直接确定其为目标数据共享组件;
(b)对于拥有多个数据共享组件的桌面,根据所述移动终端的类型直接确定第一个数据共享组件为目标数据共享组件,或者其权限域包含设置字符的为目标数据共享组件,或对每个数据共享组件进行精细化处理以得到目标数据共享组件。
15.如权利要求14所述的获取已安装应用程序列表的装置,其特征在于:
所述对每个数据共享组件进行精细化处理以得到目标数据共享组件的具体方法如下:首先,获取每个数据共享组件的权限字段,并利用系统接口组合得到数据共享组件查询地址;然后,遍历该数据共享组件,查询所有包含桌面图标属性字段的记录项,并组成列表;最后,将查询到的记录项最多的数据共享组件确定为目标数据共享组件。
16.如权利要求10-15任意一项所述的获取已安装应用程序列表的装置,其特征在于:
所述装置进一步包括升级提醒模块,用于在获取已安装应用程序列表后,逐条遍历已安装应用程序列表,获取每个应用程序的版本号;对比移动终端的本地应用程序版本与应用市场服务端最新应用程序版本,获取移动终端中所有应用更新信息,并提醒用户进行应用程序升级。
17.如权利要求10-15任意一项所述的获取已安装应用程序列表的装置,其特征在于:
所述装置进一步包括排除模块,用于获取已安装应用程序列表后,在给用户推荐装机必备应用时,排除掉用户已安装的应用。
18.如权利要求10-15任意一项所述的获取已安装应用程序列表的装置,其特征在于:
所述装置进一步包括预查询模块,其使用API查询方式或Linux内核打印包名方式以获取所述列表。
19.一种获取已安装应用程序列表的方法,所述应用程序安装于移动终端,其特征在于,包括如下步骤:
(1)获取所述移动终端的信息;
(2)获取预设表格;
(3)依据获取的移动终端信息查询所述预设表格来选定已安装应用程序列表的获取方式;
(4)依据选择的获取方式获取已安装应用程序列表;
(5)若获取成功,为用户记录此次列表获取的结果信息或者将所述结果信息上报给服务端以更新预设表格;
其中,所述预设表格是存储移动终端信息和已安装应用程序列表获取方式的映射表。
20.如权利要求19所述的获取已安装应用程序列表的方法,其特征在于:
所述步骤(1)中的信息是移动终端的品牌、型号、系统版本、和/或配置信息。
21.如权利要求19所述的获取已安装应用程序列表的方法,其特征在于:
所述获取预设表格的具体方法包括以下的一种或多种:
(1)向服务端申请获取整个表格;
(2)把请求信息发送到服务端并由服务端查询其上的预设表格后给出已安装应用程序列表的获取方式。
22.如权利要求19所述的获取已安装应用程序列表的方法,其特征在于:
所述步骤(5)中若获取不成功,进一步依据备选方案重新获取列表。
23.一种获取已安装应用程序列表的装置,所述应用程序安装于移动终端,其特征在于,包括如下模块:
信息获取模块,用于获取所述移动终端的信息;
表格获取模块,用于获取预设表格;
查询模块,用于依据获取的移动终端信息查询所述预设表格来选定已安装应用程序列表的获取方式;
列表获取模块,用于依据选择的获取方式获取已安装应用程序列表;
记录上报模块,用于在上述列表获取成功时,为用户记录此次列表获取的结果信息或者将所述结果信息上报给服务端以更新预设表格;
其中,所述预设表格是存储移动终端信息和已安装应用程序列表获取方式的映射表。
24.如权利要求23所述的获取已安装应用程序列表的装置,其特征在于:
所述信息获取模块获取的信息是移动终端的品牌、型号、系统版本、和/或配置信息。
25.如权利要求23所述的获取已安装应用程序列表的装置,其特征在于:
所述表格获取模块获取预设表格的具体方法包括以下的一种或多种:
(1)向服务端申请获取整个表格;
(2)把请求信息发送到服务端并由服务端查询其上的预设表格后给出已安装应用程序列表的获取方式。
26.如权利要求23所述的获取已安装应用程序列表的装置,其特征在于:
所述装置进一步包括备选模块,用于在所述列表获取模块获取不成功,进一步依据备选方案重新获取列表。
27.一种获取已安装应用程序列表的方法,所述应用程序安装于移动终端,其特征在于,包括如下步骤:
(1)获取所述移动终端的信息;
(2)获取预设表格;
(3)依据获取的移动终端信息查询所述预设表格来选定已安装应用程序列表的获取方式;
(4)依据选择的获取方式获取已安装应用程序列表;
(5)若获取成功,为用户记录此次列表获取的结果信息或者根据所述结果信息更新预设表格;
其中,所述预设表格是存储移动终端信息和已安装应用程序列表获取方式的映射表。
28.如权利要求27所述的获取已安装应用程序列表的方法,其特征在于:
所述步骤(1)中的信息是移动终端的品牌、型号、系统版本、和/或配置信息。
29.如权利要求27所述的获取已安装应用程序列表的方法,其特征在于:
所述获取预设表格的具体方法包括以下的一种或多种:
(1)根据移动终端的申请获取整个表格;
(2)根据移动终端发送的请求信息查询预设表格后给出已安装应用程序列表的获取方式。
30.如权利要求27所述的获取已安装应用程序列表的方法,其特征在于:
所述步骤(5)中若获取不成功,进一步依据备选方案重新获取列表。
31.一种获取已安装应用程序列表的装置,所述应用程序安装于移动终端,其特征在于,包括如下模块:
信息获取模块,用于获取所述移动终端的信息;
表格获取模块,用于获取预设表格;
查询模块,用于依据获取的移动终端信息查询所述预设表格来选定已安装应用程序列表的获取方式;
列表获取模块,用于依据选择的获取方式获取已安装应用程序列表;
记录更新模块,用于在上述列表获取成功时,为用户记录此次列表获取的结果信息或者根据所述结果信息更新预设表格;
其中,所述预设表格是存储移动终端信息和已安装应用程序列表获取方式的映射表。
32.如权利要求31所述的获取已安装应用程序列表的装置,其特征在于:
所述信息获取模块获取的信息是移动终端的品牌、型号、系统版本、和/或配置信息。
33.如权利要求31所述的获取已安装应用程序列表的装置,其特征在于:
所述表格获取模块获取预设表格的具体方法包括以下的一种或多种:
(1)根据移动终端的申请获取整个表格;
(2)根据移动终端的请求信息查询其预设表格后给出已安装应用程序列表的获取方式。
34.如权利要求31所述的获取已安装应用程序列表的装置,其特征在于:
所述装置进一步包括备选模块,用于在所述列表获取模块获取不成功,进一步依据备选方案重新获取列表。
35.一种获取已安装应用程序列表的系统,其特征在于,包括具有权利要求23-26任一所述装置的移动终端和具有权利要求31-34任一所述装置的服务器,所述移动终端和服务器进行交互以获取已安装应用程序列表。
CN201611025023.3A 2016-11-15 2016-11-15 一种获取已安装应用程序列表的方法、装置及系统 Active CN106649588B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201611025023.3A CN106649588B (zh) 2016-11-15 2016-11-15 一种获取已安装应用程序列表的方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201611025023.3A CN106649588B (zh) 2016-11-15 2016-11-15 一种获取已安装应用程序列表的方法、装置及系统

Publications (2)

Publication Number Publication Date
CN106649588A CN106649588A (zh) 2017-05-10
CN106649588B true CN106649588B (zh) 2020-06-12

Family

ID=58808241

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611025023.3A Active CN106649588B (zh) 2016-11-15 2016-11-15 一种获取已安装应用程序列表的方法、装置及系统

Country Status (1)

Country Link
CN (1) CN106649588B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107343103A (zh) * 2017-07-13 2017-11-10 北京元心科技有限公司 应用权限的控制方法、控制装置以及移动终端
CN107977566B (zh) * 2017-11-27 2021-03-19 珠海市君天电子科技有限公司 一种功能触发方法、装置及电子设备
CN108848497B (zh) * 2018-06-01 2022-05-20 中国联合网络通信集团有限公司 应用列表的获取方法、装置、终端及计算机可读存储介质
CN112988195B (zh) * 2021-03-31 2023-03-14 亿咖通(湖北)技术有限公司 终端设备的应用程序更新方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101959179A (zh) * 2009-07-17 2011-01-26 华为技术有限公司 一种提供移动终端应用程序的方法、服务器和移动终端
CN102790961A (zh) * 2011-05-20 2012-11-21 腾讯科技(深圳)有限公司 应用程序的更新方法、移动终端和服务器
CN104268205A (zh) * 2014-09-23 2015-01-07 可牛网络技术(北京)有限公司 一种ios系统中获取已安装应用程序信息的方法及装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101959179A (zh) * 2009-07-17 2011-01-26 华为技术有限公司 一种提供移动终端应用程序的方法、服务器和移动终端
CN102790961A (zh) * 2011-05-20 2012-11-21 腾讯科技(深圳)有限公司 应用程序的更新方法、移动终端和服务器
CN104268205A (zh) * 2014-09-23 2015-01-07 可牛网络技术(北京)有限公司 一种ios系统中获取已安装应用程序信息的方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Android获取已安装应用信息;Android开发周刊;《http://www.cnblogs.com/mainroadlee/archive/2011/05/23/android_get_installed_app.html》;20110523;第1-3页 *

Also Published As

Publication number Publication date
CN106649588A (zh) 2017-05-10

Similar Documents

Publication Publication Date Title
US20220269529A1 (en) Task completion through inter-application communication
JP6752969B2 (ja) アカウントログインのための方法、装置及びサーバ
CN106649588B (zh) 一种获取已安装应用程序列表的方法、装置及系统
CN108027741A (zh) 基于补丁升级的文件处理方法、装置、终端以及存储介质
CN104391725A (zh) 页面展示方法和页面展示装置
US20150169872A1 (en) Method and Device for Intercepting Call for Service by Application
US8495617B2 (en) Interworking system between user terminal and smart card for executing widget, and method thereof
CN106528578B (zh) 一种信息展示方法及装置
US8060586B2 (en) Dynamic web service deployment and integration
EP2972818B1 (en) Application registration and interaction
US9245044B2 (en) Use of generic universal resource indicators
CN113535267A (zh) 小程序页面配置方法及装置、电子设备、存储介质
CN107368513B (zh) 客户端数据库更新的方法及装置
CN108833584B (zh) 消息推送方法、终端、服务器及计算机存储介质
CN109117153B (zh) 应用程序的处理方法、装置、终端和存储介质
CN111225018A (zh) 一种请求报文处理方法、装置和电子设备
CN109271778A (zh) 应用安装来源区分方法、电子设备及计算机存储介质
US10552233B2 (en) Application convergence method and apparatus
CN103365672A (zh) 一种处理应用程序的描述信息的方法和系统
CN103365678A (zh) 车载系统的更新方法
CN113721936A (zh) 一种应用管理方法及智能终端、装置及存储介质
CN105653341A (zh) 一种网络发票客户端的升级方法、装置及系统
CN111309411A (zh) 日程展示方法及装置
CN108363614B (zh) 一种应用的业务模块管理方法、装置及服务器
US8881036B2 (en) Database view systems

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
CP03 Change of name, title or address

Address after: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Country or region after: China

Patentee after: Beijing Qizhi Business Consulting Co.,Ltd.

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Country or region before: China

Patentee before: Qizhi software (Beijing) Co.,Ltd.

CP03 Change of name, title or address
TR01 Transfer of patent right

Effective date of registration: 20240122

Address after: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee after: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Country or region after: China

Address before: 100088 room 112, block D, 28 new street, new street, Xicheng District, Beijing (Desheng Park)

Patentee before: BEIJING QIHOO TECHNOLOGY Co.,Ltd.

Country or region before: China

Patentee before: Beijing Qizhi Business Consulting Co.,Ltd.

TR01 Transfer of patent right