通过Intent

时间:2015-05-12 16:25:26

标签: android android-intent share

我试图实现一个共享某些信息的功能。该应用程序需要发送纯文本,HTML格式的文本(链接)和图片。这应该可以通过SMS,Gmail,Whatsapp等实现。到目前为止,我已经尝试了以下代码:

    public void shareInfo(){

        Intent shareIntent = new Intent();
        shareIntent.setAction(Intent.ACTION_SEND);

        // Name (String), Type (String), Direction (String) and Images(String-HTML)
        String text = name+ "<br />";
        text = text + type + "<br />";
        text = text + direction + "<br />";                     

        // Images (String-HTML links)                                   
        for(int cont = 0; cont < _urlThumbsImagenes.length; cont++){
            text = text + "<a href=" + "\'" + _urlThumbsImagenes[cont] + "\'>" + "Image " + cont + "</a>" + "<br />";
        }
        shareIntent.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(text));
        shareIntent.setType("text/html");           

        // Image 
        Uri pathImage = (Uri) ivPortada.getTag();
        shareIntent.putExtra(Intent.EXTRA_STREAM, pathImagenPortada);
        shareIntent.setType("image/*");

        startActivity(Intent.createChooser(shareIntent, "Share Intent :D"));
    }

这在我选择Gmail选项时适用于我,但在任何其他选择中无法共享。如果用户选择SMS或WhatsApp,则仅显示要发送的图像。

如何实现该功能,以便完全独立于所选模式共享信息?

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

我解决了:

public static void ShareInfo(Activity activity) {
    // Intent to share info
    Intent shareIntent = new Intent();
    shareIntent.setAction(Intent.ACTION_SEND);

    // Info
    String text = name+ "." + System.getProperty("line.separator");
    text = text + type+ "." + System.getProperty("line.separator");
    text = text + adress+ "." + System.getProperty("line.separator");  

    // Image
    Uri pathImagenPortada = (Uri) ivPortada.getTag();

    shareIntent.putExtra(Intent.EXTRA_TEXT, text);    
    shareIntent.putExtra(Intent.EXTRA_STREAM, pathImagenPortada);
    shareIntent.setType("image/*"); 


    shareIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

    activity.startActivity(Intent.createChooser(shareIntent, "Share Intent :D"));   
}  

这样我几乎可以通过任何允许的应用程序发送文本和图像。