我有一个Android应用程序就像限制一些应用类别,如游戏。 所以如果我停止我的Android设备中的所有游戏应用程序,那么它是如何可能的 我如何得到这个应用程序是游戏或天气或医疗等。
任何想法......
答案 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_UNDEFINED
,CATEGORY_GAME
,CATEGORY_AUDIO
,CATEGORY_VIDEO
,CATEGORY_IMAGE
,CATEGORY_SOCIAL
,CATEGORY_NEWS
,CATEGORY_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)
// ...
}