我试图实现一个共享某些信息的功能。该应用程序需要发送纯文本,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,则仅显示要发送的图像。
如何实现该功能,以便完全独立于所选模式共享信息?
感谢您的时间。
答案 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"));
}
这样我几乎可以通过任何允许的应用程序发送文本和图像。