gpt4 book ai didi

android - 如何仅在 Android 上过滤已安装的游戏?

转载 作者:行者123 更新时间:2023-12-05 00:02:26 24 4
gpt4 key购买 nike

Here描述了如何使用 PackageManager 获取 Android 上所有已安装应用程序的列表。 .
我想得到这个完整的列表,按所有已安装的“游戏”过滤。如何过滤“游戏”类别的所有已安装应用程序

最佳答案

您需要解析每个应用程序网页以获取其类型,然后从应用程序类型中区分游戏类型。
你可以使用 Jsoup Java HTML Parser这是一个示例代码

public class MainActivity extends AppCompatActivity {

public final static String GOOGLE_URL = "https://play.google.com/store/apps/details?id=";
public static final String ERROR = "error";

...


private class FetchCategoryTask extends AsyncTask<Void, Void, Void> {

private final String TAG = FetchCategoryTask.class.getSimpleName();
private PackageManager pm;
private ActivityUtil mActivityUtil;

@Override
protected Void doInBackground(Void... errors) {
String category;
pm = getPackageManager();
List<ApplicationInfo> packages = pm.getInstalledApplications(PackageManager.GET_META_DATA);
Iterator<ApplicationInfo> iterator = packages.iterator();
while (iterator.hasNext()) {
ApplicationInfo packageInfo = iterator.next();
String query_url = GOOGLE_URL + packageInfo.packageName;
Log.i(TAG, query_url);
category = getCategory(query_url);
// store category or do something else
}
return null;
}


private String getCategory(String query_url) {
boolean network = mActivityUtil.isNetworkAvailable();
if (!network) {
//manage connectivity lost
return ERROR;
} else {
try {
Document doc = Jsoup.connect(query_url).get();
Element link = doc.select("span[itemprop=genre]").first();
return link.text();
} catch (Exception e) {
return ERROR;
}
}
}
}
}
你会发现类似的东西
<a class="r2Osbf" href="/store/apps/category/GAME_RACING" title="Racing">Racing</a>
...
"applicationCategory":"GAME_RACING"
因此,如果类别包含“游戏”文本,那么它就是一个游戏。
更新:看一下这个
screenshot1

关于android - 如何仅在 Android 上过滤已安装的游戏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69841621/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com