我的Codename One应用程序具有ShareButton
,其使用方式如下:
// Share this report on social networks (text plus screenshot)
ShareButton shareReportButton = new ShareButton();
shareReportButton.setText("Share this report!");
shareReportButton.getAllStyles().setBorder(
RoundBorder.create().rectangle(true));
FontImage.setMaterialIcon(shareReportButton, FontImage.MATERIAL_SHARE);
shareReportButton.getStyle().setBgColor(ParametresGeneraux.accentColor);
shareReportButton.getPressedStyle().setBgColor(ParametresGeneraux.darkPrimaryColor);
shareReportButton.setTextToShare("I reported this via the great app ABCD "!"
);
shareReportButton.setImageToShare(currentReport.getPhotoPath(), ImageIO.FORMAT_PNG);
我在模拟器下按预期工作,但在实际的Android 4.4设备上,我得到一个带有&#34的对话菜单;没有应用程序可以执行此操作"。
请注意,可以与原生应用分享例如照片。
我找不到任何构建提示来添加in the doc。我该怎么做才能让分享按钮提供一种在社交网络上分享文字+照片的方法?
任何帮助表示赞赏,
此致
编辑
在@James H和@Diamond回答后,图像类型必须设置为mime类型。因此,用" image / jpg"替换ImageIO.FORMAT_PNG;填充共享菜单。
为完整起见,请注意文档
中所述必须使用FileSystemStorage API存储图像,并且不应使用其他API,例如存储!
因此即使照片在缓存中,您也必须将其复制到您的主文件夹,然后在ShareButton中使用此复制版本。
答案 0 :(得分:2)
我认为问题可能就是
setImageToShare(String imagePath, String imageMimeType)
正在寻找具有不同格式的Mime描述,例如:“image / png”
我不确定ImageIO.FORMAT_PNG是否以这种方式工作。查看JavaDoc中的示例,它使用:
sb.setImageToShare(imageFile, "image/png");
答案 1 :(得分:2)
使用本机共享功能,并通过执行以下操作检查本机共享是否支持:
// Share this report on social networks (text plus screenshot)
Button shareReportButton = new Button("Share this report!");
shareReportButton.getAllStyles().setBorder(create().rectangle(true));
FontImage.setMaterialIcon(shareReportButton, FontImage.MATERIAL_SHARE);
shareReportButton.getStyle().setBgColor(ParametresGeneraux.accentColor);
shareReportButton.getPressedStyle().setBgColor(ParametresGeneraux.darkPrimaryColor);
shareReportButton.addActionListener(e -> {
if (Display.getInstance().isNativeShareSupported()) {
Display.getInstance().share("I reported this via the great app ABCD ", currentReport.getPhotoPath(), "image/png"); // Or "image/jpg"
} else {
ToastBar.showErrorMessage("Your phone doesn't support sharing...");
}
});