0

我正在制作一个照片库应用程序,我尝试在其中从资产文件夹加载图像。我成功地做到了这一点。

现在我想通过电子邮件、脸书和推特分享图像(单个而不是多个)。这就是我的问题开始的地方。我可以通过我的应用程序发布一条普通的消息,但我无法发布我的图片或附上我的图片。我不知道该怎么做。我尝试了很多教程,但没有帮助。

4

3 回答 3

0

您必须先将图像上传到互联网上的某个地方,以便 Facebook 可以下载它。

于 2012-08-17T12:09:28.897 回答
0

对于 facebook,请使用您可以从 Internet 获得的 Facebook APi,

在 android 的 twitter 和 facebook 上分享文本/图像

于 2012-08-17T12:11:02.013 回答
0

给你它对我有用:

final Session session = Session.getActiveSession();
if (session != null){
// check publish permissions here
// if there is no permission request it and return;
//else if there is permission
logMessage("Has permission go on");
        final Bundle postParams = new Bundle();
        if(File("yourImagePath").exists())
        {
            byte[] data = null;
                    File screenShotFile = new File("yourImagePath");
            logMessage("getting screenShot here");
            FileInputStream fis = new FileInputStream(screenShotFile);
            Bitmap bitmap = BitmapFactory.decodeStream(fis);
            ByteArrayOutputStream baos = new ByteArrayOutputStream();
            bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);
            data = baos.toByteArray();  
            postParams.putByteArray("picture", data);

           logMessage("added pic as byte array to params");
        }
        postParams.putString("name", "Post name");
        postParams.putString("caption", "caption");
        postParams.putString("description", "desc");
        postParams.putString("link", "http://www....");
            final Request.Callback callback= new Request.Callback() {
            public void onCompleted(Response response) 
            {
                FacebookRequestError error;
                try {
                    error = response.getError();
                    if (error != null) 
                    {
                        makeToast(error.getErrorMessage());
                        logMessage(error.getErrorMessage());
                    } 
                    else 
                    {
                        // no errors so delete image here
                        if(screenShotFile != null)
                        {
                            screenShotFile.delete();
                            logMessage("deleted");
                            screenShotFile = null;
                        }
                    }
                } catch (Exception e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                logMessage(response.toString());
            }
        };
Request request = new Request(session, "me/photos", postParams, 
                              HttpMethod.POST, callback);
                    RequestAsyncTask task = new RequestAsyncTask(request);
                    task.execute();
logMessage("made feed request check");
         }
于 2014-01-24T15:17:55.933 回答