我正在制作一个照片库应用程序,我尝试在其中从资产文件夹加载图像。我成功地做到了这一点。
现在我想通过电子邮件、脸书和推特分享图像(单个而不是多个)。这就是我的问题开始的地方。我可以通过我的应用程序发布一条普通的消息,但我无法发布我的图片或附上我的图片。我不知道该怎么做。我尝试了很多教程,但没有帮助。
我正在制作一个照片库应用程序,我尝试在其中从资产文件夹加载图像。我成功地做到了这一点。
现在我想通过电子邮件、脸书和推特分享图像(单个而不是多个)。这就是我的问题开始的地方。我可以通过我的应用程序发布一条普通的消息,但我无法发布我的图片或附上我的图片。我不知道该怎么做。我尝试了很多教程,但没有帮助。
您必须先将图像上传到互联网上的某个地方,以便 Facebook 可以下载它。
对于 facebook,请使用您可以从 Internet 获得的 Facebook APi,
给你它对我有用:
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");
}