1

ユーザーがチューザーからインテント アクションを選択したかどうかを知る方法はありますか。

私はこれをしたい - ユーザーが選択した場合、現在のアクティビティを終了し、そうでない場合は現在のアクティビティに残ります。

私はこのコードを持っています:

startActivity(Intent.createChooser(email, "Choose an Email client :"));
finish();

ただし、これにより、ユーザーが電子メールクライアントを選択したかどうかに関係なく、常に現在のアクティビティが終了します。

何か案は?

4

1 に答える 1

4

これを行うには、独自のカスタム チューザーを表示します。

まず、インテントを処理できるすべてのパッケージを取得します

private List<String> getInstalledComponentList(Intent emailIntent)
            throws NameNotFoundException {

        List<ResolveInfo> ril = getPackageManager().queryIntentActivities(emailIntent, 0);
        List<String> componentList = new ArrayList<String>();
        String name = null;

        for (ResolveInfo ri : ril) {
            if (ri.activityInfo != null) {
                Resources res = getPackageManager().getResourcesForApplication(ri.activityInfo.applicationInfo);
                if (ri.activityInfo.labelRes != 0) {
                    name = res.getString(ri.activityInfo.labelRes);
                } else {
                    name = ri.activityInfo.applicationInfo.loadLabel(
                            getPackageManager()).toString();
                }
                componentList.add(name);
            }
        }
        return componentList;
    } 

次に、このようなパッケージのすべてのリストを含むダイアログを表示します

次に、クリックイベントを処理し、選択したパッケージを開始します

于 2013-04-04T10:57:10.687 に答える