Android - 在选择器中包含文本和HTML共享服务?

时间:2015-10-14 19:23:01

标签: android html email share

我想分享Facebook,Twitter,电子邮件和短信应用的动态文本字段。对于电子邮件,我想要包含超链接,因此我需要使用"text/html"而不是"text/plain"。这不可能吗?以下代码不起作用:

    List<Intent> targetedShareIntents = new ArrayList<Intent>();
    Intent sharingIntent = new Intent(Intent.ACTION_SEND);
    sharingIntent.setType("text/plain");

    PackageManager pm = getActivity().getPackageManager();

    List<ResolveInfo> activityList = pm.queryIntentActivities(sharingIntent, 0);
    for(final ResolveInfo app : activityList) {

        String packageName = app.activityInfo.packageName;
        Intent targetedShareIntent = new Intent(Intent.ACTION_SEND);
        targetedShareIntent.setType("text/plain");
        targetedShareIntent.putExtra(Intent.EXTRA_TEXT, getTextToShare(data));
        targetedShareIntent.setPackage(packageName);
        targetedShareIntents.add(targetedShareIntent);

    }

    Intent emailIntent = new Intent(Intent.ACTION_SEND);
    emailIntent.setType("text/html");
    List<ResolveInfo> emailList = pm.queryIntentActivities(emailIntent, 0);
    for(final ResolveInfo app : emailList) {

        String packageName = app.activityInfo.packageName;
        Intent targetedShareIntent = new Intent(Intent.ACTION_SEND);
        targetedShareIntent.setType("text/html");

        if (packageName.contains("android.email") || packageName.contains("android.gm")) {
            targetedShareIntent.putExtra(Intent.EXTRA_SUBJECT, data.getHeadline());
            targetedShareIntent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(getTextToShare(data, "Email")));
        }

        targetedShareIntent.setPackage(packageName);
        targetedShareIntents.add(targetedShareIntent);
    }

    Intent chooserIntent = Intent.createChooser(targetedShareIntents.remove(targetedShareIntents.size() - 1), "Share this story");
    chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, targetedShareIntents.toArray(new Parcelable[]{}));
    startActivity(chooserIntent);

编辑:这适用于Facebook,电子邮件 - 但是,出于某种原因Twitter不会出现。有谁知道为什么?

0 个答案:

没有答案