[英]How to get a list of applications on Android?
我想做一些您可能稱為動態文件夾的事情,該文件夾包含一個列表應用程序,該列表應用程序由ID(程序包名稱)或可見名稱的某些部分過濾。
所以我需要像您可以用於聯系的內容:
Cursor contacts = managedQuery(ContactsContract.Contacts.CONTENT_URI,
new String[]{
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.Contacts._ID
},
ContactsContract.Contacts.HAS_PHONE_NUMBER + "='1'"
, null, null)
但我需要查詢以列出應用程序。
從列表中選擇時,我還需要一種方法來運行應用程序。
你可以這樣寫:
PackageManager pm = this.getPackageManager();
Intent mainIntent = new Intent(Intent.ACTION_MAIN, null);
mainIntent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> appList = pm.queryIntentActivities(mainIntent, 0);
Collections.sort(appList, new ResolveInfo.DisplayNameComparator(pm));
int found = -1;
for (int i = 0; i < appList.size(); i++) {
String pack = appList.get(i).activityInfo.applicationInfo.packageName;
if (pack.equals("com.mypackage")) // Your custom criteria comes here...
found = i;
}
// Launch found application
Intent intent = new Intent();
intent.setAction(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
intent.setComponent(new ComponentName(appList.get(found).activityInfo.applicationInfo.packageName, appList
.get(found).activityInfo.name));
startActivity(intent);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.