मैं एक ऐप पर काम कर रहा हूं जहां मैं उपयोगकर्ता को सभी इंस्टॉल किए गए ऐप्स के साथ प्रस्तुत करना चाहता हूं और उसे एक चुनने देता हूं और फिर इसके साथ कुछ करता हूं। मैंने एक ट्यूटोरियल का पालन किया (यह: http://impressive-artworx.de/2011/list-all-installed-apps-in-style/) हालांकि मुझे कुछ समस्याएं हैं। ट्यूटोरियल का पालन करने के बाद मुझे केवल ऐसे ऐप्स मिल गए जिन्हें पूर्वस्थापित नहीं किया गया था (जैसे सभी पृष्ठभूमि ऐप्स जो लॉन्च करने योग्य नहीं हैं) जो बहुत अच्छा है यदि आप उन ऐप्स को चाहते हैं जिन्हें उपयोगकर्ता ने Play store से डाउनलोड किया है। समस्या यह है कि मेरे ऐप में मैं यूट्यूब और ब्राउजर जैसे लॉन्च करने योग्य सिस्टम ऐप प्रदर्शित करना चाहता हूं लेकिन गैर-लॉन्च करने योग्य नहीं जैसे खोज अनुप्रयोग प्रदाता।सभी इंस्टॉल किए गए ऐप्स प्राप्त करते समय गैर-लॉन्च करने योग्य ऐप्स फ़िल्टर करें
यहाँ कोड है कि मैं जब क्षुधा पाने के लिए उपयोग कर रहा हूँ है:
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;
}
अब मेरे सवाल है, गैर-लॉन्च करने योग्य ऐप्स को फ़िल्टर करने का सबसे अच्छा तरीका क्या है?
किसी भी मदद की सराहना की जाती है!
यह एक अच्छा विचार नहीं है, क्योंकि कुछ क्षुधा getLaunchIntentForPackageName के लिए अशक्त लौट आते हैं। इस समाधान के साथ मुझे समस्या थी कि "टेलीफोनी" ऐप ऐप्स की सूची में नहीं था। एक बेहतर समाधान के लिए यहां देखें: https://stackoverflow.com/a/30446616/4274651 – Janosch