4

アクティビティ(com.myapp.launcher.settings)を空のArrayListに追加したいと思います。

    ArrayList<ResolveInfo> selectedApps = new ArrayList<ResolveInfo>();
    selectedApps.add(/*WHAT GOES IN HERE?*/);

しかし、自分のアクティビティでResolveInfoオブジェクトを取得する方法がわかりません。


私は自分のアクティビティを見つけるためにすべてのアプリをループする回避策を作ることができました。しかし、それはあまり効率的でも実用的でもありません。

    // Get an array list of all apps
    ArrayList<ResolveInfo> allApps = (ArrayList<ResolveInfo>) pm.queryIntentActivities(intent, PackageManager.PERMISSION_GRANTED);
    for(final ResolveInfo app : allApps) {
        // If it's name is "com.myapp.launcher.settings" add it
        if(app.activityInfo.name.equals("com.myapp.launcher.settings")) {
                selectedApps.add(app);
            }
        }
4

2 に答える 2

9

resolveActivity明示的に使用するだけIntentです。おそらく次のようなものです:

Intent intent = new Intent();
intent.setComponent(new ComponentName("com.myapp", "com.myapp.launcher.settings"));
ResolveInfo app = pm.resolveActivity(intent, 0);
selectedApps.add(app);
于 2013-03-19T22:59:37.147 に答える