在我的项目中,我可以通过以下代码获取所有已安装应用程序的列表:
public class ApplicationFilterActivity extends Activity implements
OnItemClickListener {
ListView appfilter;
SharedPreferences preferences;
public static String filenames = "RotateData";
PackageManager pck;
ArrayList<Applications> results = new ArrayList<Applications>();
ArrayList<String> gotPackagename = new ArrayList<String>();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
appfilter = (ListView) findViewById(R.id.lvApp);
preferences = getSharedPreferences(filenames, 0);
PackageManager packageManager = this.getPackageManager();
List<PackageInfo> applist = packageManager.getInstalledPackages(0);
Iterator<PackageInfo> it = applist.iterator();
while (it.hasNext()) {
PackageInfo pk = (PackageInfo) it.next();
results.add(new Applications(pk.applicationInfo
.loadIcon(packageManager), ""
+ pk.applicationInfo.loadLabel(packageManager)));
Log.i("AppName", "" + pk.applicationInfo.packageName);
gotPackagename.add(pk.applicationInfo.packageName);
}
appfilter.setAdapter(new Customarrayadapter(this, results));
appfilter.setOnItemClickListener(this);
}
}
但现在我想过滤列表只显示游戏,这可能吗?
最佳答案
Android 中无法将您的应用设置为“游戏类型”,因此您无法按类别过滤应用。
我认为,最好的解决方案 - 从 Google Play 解析所有游戏包(游戏名称可能因手机本地化而有所不同),并将该列表放入应用程序中,有时从服务器更新它。如果您的应用程序始终有互联网连接,您可以将找到的应用程序列表发送到服务器,服务器将从该列表返回游戏。因此,您需要为此编写服务器代码。
关于java - 如何以编程方式获取Android中已安装的游戏列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13668443/