インストールされているすべてのアプリをユーザーに提示し、ユーザーに1つを選択させてから、それを使って何かを実行させたいアプリに取り組んでいます。いくつかの問題がありますが、チュートリアル(これ:http://impressive-artworx.de/2011/list-all-installed-apps-in-style/)に従いました。チュートリアルに従った後、プリインストールされていないアプリ(起動できないすべてのバックグラウンドアプリなど)のみを取得しました。これは、ユーザーがPlayストアからダウンロードしたアプリが必要な場合に最適です。問題は、私のアプリで、YoutubeやBrowserのような起動可能なシステムアプリを表示したいのですが、SearchApplicationProviderのような起動不可能なアプリは表示したくないということです。
アプリを入手するときに使用しているコードは次のとおりです。
private List<App> loadInstalledApps(boolean includeSysApps) {
List<App> apps = new ArrayList<App>();
// the package manager contains the information about all installed apps
PackageManager packageManager = getPackageManager();
List<PackageInfo> packs = packageManager.getInstalledPackages(0); //PackageManager.GET_META_DATA
for(int i=0; i < packs.size(); i++) {
PackageInfo p = packs.get(i);
ApplicationInfo a = p.applicationInfo;
App app = new App();
app.setTitle(p.applicationInfo.loadLabel(packageManager).toString());
app.setPackageName(p.packageName);
app.setVersionName(p.versionName);
app.setVersionCode(p.versionCode);
CharSequence description = p.applicationInfo.loadDescription(packageManager);
app.setDescription(description != null ? description.toString() : "");
apps.add(app);
}
return apps;
}
今私の質問は; 起動できないアプリを除外するための最良の方法は何ですか?
どんな助けでも大歓迎です!