我如何获得所有Android应用程序类别的名称?

时间:2011-12-21 08:15:07

标签: android get categories

我有一个Android应用程序就像限制一些应用类别,如游戏。 所以如果我停止我的Android设备中的所有游戏应用程序,那么它是如何可能的 我如何得到这个应用程序是游戏或天气或医疗等。

任何想法......

3 个答案:

答案 0 :(得分:4)

应用类别对应于Android电子市场中的分类,但您无法检查应用程序本身。您可以执行的操作是查询Android Market以获取特定应用程序的信息。

Android Market按包名识别应用程序。因此,获取要查询的包的ApplicationInfo(查看PackageManager文档)并使用ApplicationInfo.packageName

然后向Android Market查询您刚刚获得的包名称。这是一个非官方的API http://code.google.com/p/android-market-api/

希望它有所帮助。

答案 1 :(得分:3)

创建原始 JSON POST请求,其中包含您要分类的数据包数组:

{
  "packages": [
    "com.pixmix.mobileapp",
    "snooze.ninja"
  ]
}

发送至:

http://api.wheredatapp.com/data

以下是回复:

{
    "apps": [
        {
            "category": "Photography",
            "created": 1430868349,
            "package": "com.pixmix.mobileapp"
        },
        {
            "category": "Productivity",
            "created": 1427510152,
            "package": "snooze.ninja"
        }
    ]
}

答案 2 :(得分:1)

我知道这是一个非常老的问题,但是在搜索时仍然显示很高的值。我刚刚在这里https://stackoverflow.com/a/61801271/7274401回答了一个类似的问题,所以我将在下面复制。

API级别26(O)已将类别添加到android.content.pm.ApplicationInfo。来自文档https://developer.android.com/reference/android/content/pm/ApplicationInfo#category

public int category

此应用的类别。类别用于将多个应用程序聚集在一起,组成有意义的组,例如在汇总电池,网络或磁盘使用情况时。应用仅应在适合特定类别之一时定义此值。

从清单中的R.attr.appCategory属性进行设置。如果清单未定义类别,则安装程序可能已通过PackageManager#setApplicationCategoryHint(String, int)提供了此值。 值是CATEGORY_UNDEFINEDCATEGORY_GAMECATEGORY_AUDIOCATEGORY_VIDEOCATEGORY_IMAGECATEGORY_SOCIALCATEGORY_NEWSCATEGORY_MAPS,或CATEGORY_PRODUCTIVITY

现在可以执行以下操作:

PackageManager pm = context.getPackageManager();
ApplicationInfo applicationInfo = pm.getApplicationInfo(packageName, 0);
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
    int appCategory = applicationInfo.category;
    String categoryTitle = (String) ApplicationInfo.getCategoryTitle(context, appCategory)
    // ...
}