我正在我的应用中实现共享。它只需要文本共享。所有应用程序与意图共享文本工作正常,但Facebook不允许通过意图共享文本。所以我实现了它的sdk并写下了这段代码。
ShareContent linkContent = new ShareLinkContent.Builder()
.setContentTitle("Hello Facebook")
.setContentDescription(localThoughtDesc.get(finalI1))
.setContentUrl(Uri.parse("https://www.google.com"))
.build();
shareDialog.show(linkContent);
但是我得到了像这样的输出
我经历了很多教程。但他们中的大多数都被弃用了。所以,如果有人能帮助我,那将是非常好的。:)
谢谢:)
答案 0 :(得分:1)
Facebook分享不支持文字。您只能分享链接,并且会在该页面显示<meta content ="...">
文字以及您在Facebook上的链接。
答案 1 :(得分:0)
由于我没有办法在Facebook上发布任何内容,所以我尝试了另一种方式将文字发布到Facebook。认为它可能有帮助。顺便说一下,它实际上并没有共享文本。我将文本转换为图像文件,而不是通过意图发布图像。 我是怎么做到的。
TextView textView=new TextView(getBaseContext());
textView.setTag("textView");
View view=innerLayout.findViewWithTag("textView");
String SCREENSHOTS_LOCATIONS = Environment.getExternalStorageDirectory().toString() + "/screenshots/";
Bitmap bitmap = Bitmap.createBitmap(view.getWidth(),view.getHeight(), Bitmap.Config.ARGB_4444);
String path=SCREENSHOTS_LOCATIONS+ System.currentTimeMillis() + ".jpg";
final Canvas canvas = new Canvas(bitmap);
view.draw(canvas);
System.out.println(bitmap.getHeight()+" "+bitmap.getWidth());
FileOutputStream fos = null;
try {
final File sddir = new File(SCREENSHOTS_LOCATIONS);
if (!sddir.exists()) {
sddir.mkdirs();
}
fos = new FileOutputStream(path);
System.out.println(sddir.getPath().toString());
if (fos != null) {
if (!bitmap.compress(Bitmap.CompressFormat.JPEG, 90, fos)) {
Log.d("abc", "Compress/Write failed");
}
fos.flush();
fos.close();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Intent intent=new Intent();
intent.setAction(Intent.ACTION_SEND);
intent.putExtra(Intent.EXTRA_TITLE, "Title");
intent.putExtra(Intent.EXTRA_SUBJECT, "Extra Subject");
intent.putExtra(Intent.EXTRA_STREAM,Uri.fromFile(new File(path))); //optional//use this when you want to send an image
intent.setType("image/jpeg");
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
startActivityForResult(Intent.createChooser(intent, "send"), REQUEST_CODE);