簡體   English   中英

如何獲取Android上的應用程序列表?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM