在我正在开发的应用程序中,我需要遍历已安装的应用程序并检测哪些是游戏。有没有办法做到这一点?如何检测Android应用程序是否是游戏?
我在想一个Play Store API,它可以搜索包名并返回它的类别,即使它仅限于商店中的应用程序。有类似的东西存在吗?可能吗?
有没有其他方法可以做到这一点?
在我正在开发的应用程序中,我需要遍历已安装的应用程序并检测哪些是游戏。有没有办法做到这一点?如何检测Android应用程序是否是游戏?
我在想一个Play Store API,它可以搜索包名并返回它的类别,即使它仅限于商店中的应用程序。有类似的东西存在吗?可能吗?
有没有其他方法可以做到这一点?
由于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;
没有自动检测应用是否是游戏的方法。您只需比较软件包名称公共部分的软件包名称即可。我的解决方案是索引google商店页面并散列包名称。
我可以优化我的哈希通过建立共同的前缀。我将包名称作为一个域处理,并且grep公共后缀。我使用http://publicsuffix.org/的列表。
“公共后缀”是Internet用户可以直接注册的名称。公共后缀的一些例子是.com,.co.uk和pvt.k12.ma.us.公共后缀列表是所有已知公共后缀的列表。
公共后缀列表是Mozilla的一项举措,但作为社区资源来维护。它可用于任何软件,但最初是为了满足浏览器制造商的需求而创建的。
有了这个列表,你可以检测到packagename的一部分是一个通用的前缀。
有没有这个标志设置的游戏的要求。 – CommonsWare
但开发人员将此标志放入其应用程序清单中有几个很好的理由,其中之一是在Play商店和Android电视启动器中正确编制索引。 – Vektor88