2013-04-14 58 views
2

在我正在开发的应用程序中,我需要遍历已安装的应用程序并检测哪些是游戏。有没有办法做到这一点?如何检测Android应用程序是否是游戏?

我在想一个Play Store API,它可以搜索包名并返回它的类别,即使它仅限于商店中的应用程序。有类似的东西存在吗?可能吗?

有没有其他方法可以做到这一点?

回答

3

由于Android API版本21,最终有一种方法来检查应用程序是否是游戏。

PackageManager pm = mContext.getPackageManager(); 
ApplicationInfo ai = pm.getApplicationInfo(mPackageName,0); 
if((ai.flags & ApplicationInfo.FLAG_IS_GAME) == ApplicationInfo.FLAG_IS_GAME) 
    return true; 
return false; 
+0

有没有这个标志设置的游戏的要求。 – CommonsWare

+0

但开发人员将此标志放入其应用程序清单中有几个很好的理由,其中之一是在Play商店和Android电视启动器中正确编制索引。 – Vektor88

3

没有自动检测应用是否是游戏的方法。您只需比较软件包名称公共部分的软件包名称即可。我的解决方案是索引google商店页面并散列包名称。

我可以优化我的哈希通过建立共同的前缀。我将包名称作为一个域处理,并且grep公共后缀。我使用http://publicsuffix.org/的列表。

“公共后缀”是Internet用户可以直接注册的名称。公共后缀的一些例子是.com,.co.uk和pvt.k12.ma.us.公共后缀列表是所有已知公共后缀的列表。

公共后缀列表是Mozilla的一项举措,但作为社区资源来维护。它可用于任何软件,但最初是为了满足浏览器制造商的需求而创建的。

有了这个列表,你可以检测到packagename的一部分是一个通用的前缀。

+0

为什么downvote?这是我的解决方案,适用于我。 – rekire

+0

它不是我的,如果它工作我会对更多的方向感兴趣。 – Vektor88

+0

但是这样做我应该事先有一个最重要的游戏公司名单。从应用程序的Play商店页面获取分类信息不是更好吗? – Vektor88

相关问题