无法通过Android Intent与facebook分享文字和图片

时间:2012-03-07 09:34:25

标签: android facebook

此错误已报告一年,尚未修复

http://forum.developers.facebook.net/viewtopic.php?id=93900

http://bugs.developers.facebook.net/show_bug.cgi?id=16728

我尝试了这里提到的解决方法,它也不起作用。我使用的是facebook版本1.8.3

How to share photo with CAPTION via Android share intent on Facebook?

那么真正的解决方法是什么?

1 个答案:

答案 0 :(得分:0)

如果您想首先从Android应用程序在Facebook或Twitter上分享内容,您必须将您的应用程序与Android SDK和Twitter SDK集成。如果你想分享这些积累的这些,那么你可以通过简单地发送如下给出的意图来做到这一点......

public class MainActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    // listeners of our two buttons
    View.OnClickListener handler = new View.OnClickListener() {
        public void onClick(View v) {
            switch (v.getId()) {

            case R.id.buttonShareTextUrl:
                shareTextUrl();  
                break;

            case R.id.buttonShareImage:
                shareImage();
                break;
            }
        }
    };

    // our buttons
    findViewById(R.id.buttonShareTextUrl).setOnClickListener(handler);
    findViewById(R.id.buttonShareImage).setOnClickListener(handler);

}

/*
 * Method to share either text or URL.
 */ 
private void shareTextUrl() { 
    Intent share = new Intent(android.content.Intent.ACTION_SEND);
    share.setType("text/plain");
    share.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); 

    // Add data to the intent, the receiving app will decide
    // what to do with it.
    share.putExtra(Intent.EXTRA_SUBJECT, "Title Of The Post");
    share.putExtra(Intent.EXTRA_TEXT, "http://two55am.com");

    startActivity(Intent.createChooser(share, "Share link!"));
}    

/*
 * Method to share any image.
 */
private void shareImage() {
    Intent share = new Intent(Intent.ACTION_SEND);

    // If you want to share a png image only, you can do:
    // setType("image/png"); OR for jpeg: setType("image/jpeg");
    share.setType("image/*");

    // Make sure you put example png image named myImage.png in your
    // directory
    String imagePath = Environment.getExternalStorageDirectory()
            + "/twitter.png";

    File imageFileToShare = new File(imagePath);

    Uri uri = Uri.fromFile(imageFileToShare);
    share.putExtra(Intent.EXTRA_STREAM, uri);

    startActivity(Intent.createChooser(share, "Share Image!"));
}

}

请注意,您应该在设备/模拟器中安装Facebook和twitter apk,以便在代码之上工作。