答案 0 :(得分:1)
您正在寻找LabeledIntent
。这是解决方案:
public void openChooser() {
Intent email = new Intent(Intent.ACTION_SEND);
email.putExtra(Intent.EXTRA_TEXT, "This is text for sharing");
email.setType("text/plain");
List<ResolveInfo> candidates = getPackageManager().queryIntentActivities(email, 0);
List<Intent> targets = new ArrayList<>();
for(ResolveInfo candidate : candidates) {
String name = candidate.activityInfo.name;
String packageName = candidate.activityInfo.packageName;
int icon = candidate.activityInfo.icon;
Intent intent = new Intent();
intent.setComponent(new ComponentName(packageName, name));
if(packageName.equals(getPackageName())) {
intent = new LabeledIntent(intent, packageName, "Your custom label", icon);
}
targets.add(intent);
}
Intent chooser = Intent.createChooser(targets.remove(0), "Share");
chooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, targets.toArray(new Parcelable[]{}));
startActivity(chooser);
}
以下是证据: