从Android应用程序上传到picasa

时间:2011-12-02 09:12:06

标签: android api picasa

我正在开发一个应用程序,我需要能够将照片上传到picasa开放专辑。 我经历了很多线程,论坛......尝试了几种使用http post的方法,但似乎都没有。

以前有人做过吗?如果是这样,你可以分享一个示例代码。我只需要从picasa进行基本上传和下载图片。

2 个答案:

答案 0 :(得分:1)

以下问题涵盖了部分内容。 Picasa access in android: PicasaUploadActivity 这个帖子也有信息。 http://www.mail-archive.com/android-developers@googlegroups.com/msg43707.html

直接启动使用标准picasa上传器的意图。我今天晚些时候会尝试将它放在我的应用程序中,因为我想要这个功能。

看起来可以自己做,但显然更复杂的文档看起来是http://code.google.com/apis/picasaweb/docs/2.0/developers_guide_protocol.html

好的我已经在我的应用程序中使用了以下代码。这会打开picasa上传器。

Intent temp = new Intent(Intent.ACTION_SEND);
temp.setType("image/png");
temp.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
temp.putExtra(Intent.EXTRA_STREAM, fileUri);
temp.setComponent(new ComponentName(
    "com.google.android.apps.uploader",
    "com.google.android.apps.uploader.clients.picasa.PicasaSettingsActivity"));
try {
   startActivity(temp);
} catch (android.content.ActivityNotFoundException ex) {
    Log.v(TAG, "Picasa failed");
}

在实践中,我将取出set component bit out,让我们选择在哪里以及如何发送这是我想要的。

答案 1 :(得分:1)

上述答案适用于Picasa API v2,现已弃用。我无法成功使用Java API for Picasa API v3,但我找到了一种使用http post将图像上传到Picasa的方法。我已经写过这个方法here

File image = new File("/path/to/image.jpg");
byte[] imageContent = null;
try {
    imageContent = Files.toByteArray(image);
} catch (Exception e) {
    // do something
}

HttpClient httpClient = HttpClientBuilder.create().build();
HttpPost httpPost = new HttpPost("https://picasaweb.google.com/data/feed/api/user/default/albumid/default");
httpPost.addHeader("Authorization",  "Bearer " + mAccessToken);
httpPost.addHeader("Content-Type", "image/jpeg");
httpPost.setEntity(new ByteArrayEntity(imageContent));

try {
    HttpResponse httpResponse = httpClient.execute(httpPost);
    // log the response
    logd(EntityUtils.toString(httpResponse.getEntity()));
} catch (IOException e){
    // do something
}

此方法使用Apache的HttpClient。如果您的Android版本不支持它,您仍然可以在Gradle文件中包含此行以进行编译:

compile 'cz.msebera.android:httpclient:4.4.1.1'