3

この方法を使用して、デバイスで起動可能なすべてのアプリケーションを取得しようとしています:

apps = new ArrayList<>();
Intent intent = new Intent(Intent.ACTION_MAIN, null);
intent.addCategory(Intent.CATEGORY_LAUNCHER);
List<ResolveInfo> availableActivities = manager.queryIntentActivities(intent, 0);
for(ResolveInfo ri:availableActivities){
    AppDetail app = new AppDetail();
    app.label = ri.loadLabel(manager);
    app.name = ri.activityInfo.packageName;
    app.icon = ri.activityInfo.loadIcon(manager);
    apps.add(app);
}

それらのアプリケーションのラベルとパッケージ名を印刷しようとしたところ、これが見つかりました:
連絡先 com.sonyericsson.android.socialphonebook
電話 com.sonyericsson.android.socialphonebook
それらは異なるアプリ ラベルを持っていますが、同じパッケージ名を持っています。アプリを開こうとすると、両方とも連絡先アプリが開きます。
それらを区別する方法はありますか?または、アプリケーションのリストを取得するために間違った方法を使用しましたか?

4

1 に答える 1