2

インストールされているアプリケーションとシステムアプリケーションの両方のリストを別々に作成したい.以下は私のコードです

List<ApplicationInfo> appList = packageManager.getInstalledApplications(0);
if(appList != null && !appList.isEmpty()){
        for (ApplicationInfo appInfo : appList) {
        Intent intent = packageManager.getLaunchIntentForPackage(appInfo.packageName);
        if(intent != null){
            ComponentName componentName = intent.getComponent();
            if((appInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 1) {
                //It is a system app
            }else{
                //It is an installed app.
            }
        }
    }
}

リストビューのクリックで各アプリを起動したいのですが、連絡先、マップなどの一部のアプリケーションでは、 componentName .getClassName()が「com.android.internal.app.ResolverActivity 」として表示されます。正確なクラス名を取得するにはどうすればよいですかアプリケーションの分類が難しいため、ResolveInfoを使用できませんでした。

パッケージ名を使用してアプリケーションの正確なクラス名を取得するには?

前もって感謝します

4

1 に答える 1

-1

packageManager に尋ねることができます:

CharSequence label = "";
for (ApplicationInfo appInfo : appList)    
    label = packageManager.getApplicationLabel(appInfo);
于 2013-03-25T12:15:03.323 に答える