Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在android中分享到Facebook(如twitter)_Android_Facebook_Android Intent_Twitter_Android Sharing - Fatal编程技术网

在android中分享到Facebook(如twitter)

在android中分享到Facebook(如twitter),android,facebook,android-intent,twitter,android-sharing,Android,Facebook,Android Intent,Twitter,Android Sharing,任何试图通过Android与Facebook共享的人都知道,Facebook团队决定忽略共享协议,忽略共享意图中提供的文本(见:) 然而,twitter应用程序似乎已经找到了规避这一问题的方法。当您查看推文时: 您可以单击tweet下方的共享图标,它将打开普通共享对话框,其中包含应用程序列表,包括Facebook: 如果您单击Facebook,您将看到以下视图: 这看起来很完美,而且很明显twitter发送的不仅仅是其他答案所建议的链接。此外,如果您与邮件共享: 您可以看到文本已正确添加

任何试图通过Android与Facebook共享的人都知道,Facebook团队决定忽略共享协议,忽略共享意图中提供的文本(见:)

然而,twitter应用程序似乎已经找到了规避这一问题的方法。当您查看推文时:

您可以单击tweet下方的共享图标,它将打开普通共享对话框,其中包含应用程序列表,包括Facebook:

如果您单击Facebook,您将看到以下视图:

这看起来很完美,而且很明显twitter发送的不仅仅是其他答案所建议的链接。此外,如果您与邮件共享:


您可以看到文本已正确添加,没有任何问题。twitter是如何做到这一点的?

如果你问,在从另一个应用程序共享Facebook链接时,如何包含预填充文本,这实际上直接违反了Facebook的政策-


“确保用户消息参数中的所有内容都是由用户输入的。不要预填充。这包括帖子、消息、评论和标题。”()

我为解决此问题所做的工作虽然不严重,但很有用

复制要在剪贴板中共享的文本,然后

toast消息“粘贴文本”

复制到剪贴板
@SuppressLint(“NewApi”)
专用void copyToClipBoard(字符串数据)
{
int sdk=android.os.Build.VERSION.sdk\u int;
如果(sdk
为了结束这个问题,我相信示例中Twitter的工作方式是基于提供的url中可用的元数据。这是一个很好的起点:

但是twitter应用程序仍然能够做到这一点。(以及iOS应用程序)。这就是您要寻找的答案:@arrowtop否,请参阅提供的答案。
@SuppressLint("NewApi")
private void copyToClipBoard(String data) 
{
    int sdk = android.os.Build.VERSION.SDK_INT;
    if(sdk < android.os.Build.VERSION_CODES.HONEYCOMB) 
    {
        android.text.ClipboardManager clipboard = (android.text.ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE);
        clipboard.setText(data);
        Toast.makeText(context,"Paste text", Toast.LENGTH_SHORT).show();
    }
    else 
    {
        android.content.ClipboardManager clipboard = (android.content.ClipboardManager) getActivity().getSystemService(Context.CLIPBOARD_SERVICE); 
        android.content.ClipData clip = android.content.ClipData.newPlainText(type,data);
        clipboard.setPrimaryClip(clip);
        Toast.makeText(context, "Paste text", Toast.LENGTH_SHORT).show();
    }

}