在Android中访问Picasa:PicasaUploadActivity

5
我是新手Android开发者,正在努力弄清楚可用的工具。目前我正在为Android 2.0.1开发应用程序,因为这是我的设备所运行的版本。
具体来说,我正在编写一个应用程序,希望能够上传图片到Picasa相册。我几乎可以确定这是支持的;例如,内置的(Google?)照片查看器有一个“共享”按钮,其中包括Picasa选项,甚至还有一小段示例代码,包括片段。 【借用的代码!如果违反规定,请谅解..】
temp.setComponent(new ComponentName 
("com.google.android.apps.uploader", 
"com.google.android.apps.uploader.picasa.PicasaUploadActivity")); 
startActivityForResult(temp, PICASA_INTENT) 

这看起来正是我想要的。

但我找不到任何文档。实际上,我不太清楚如何使用这种资源。在Eclipse中,我是否需要包含另一个项目com.google.android.apps.uploader?如果是这样,我该如何获取它?如何包含它?是否有提供工作示例代码供我查看?

2个回答

2

视频Google I/O 2011 - Android上访问Google API的最佳实践(第40分钟)

public class PostPhotoActivity extends Activity
{

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);

    try
    {
        HttpRequestFactory requestFactory = new NetHttpTransport().createRequestFactory();
        Intent intent = getIntent();
        Bundle extras = intent.getExtras();
        InputStreamContent content = new InputStreamContent();
        ContentResolver contentResolver = getContentResolver();
        Uri uri = (Uri) extras.getParcelable(Intent.EXTRA_STREAM);
        content.inputStream = contentResolver.openInputStream(uri);
        Cursor cursor = contentResolver.query(uri, null, null, null, null);
        cursor.moveToFirst();
        content.type = intent.getType();
        content.length = cursor.getLong(cursor.getColumnIndexOrThrow(Images.Media.SIZE));
        HttpRequest request = requestFactory.buildPostRequest(new GenericUrl(
            "https://picasaweb.google.com/data/feed/api/user/default/albumid/default"), content);
        GoogleHeaders headers = new GoogleHeaders();
        request.headers = headers;
        String fileName = cursor.getString(cursor.getColumnIndexOrThrow(Images.Media.DISPLAY_NAME));
        headers.setSlugFromFileName(fileName);
        request.execute().ignore();
    }
    catch (IOException e)
    {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

}

1
这将返回错误403:未经授权。为使其正常工作,您需要获取Google身份验证令牌,然后添加headers.setAuthorization(“OAuth”+ authToken);。此代码可以帮助您实现授权部分http://code.google.com/p/google-plus-java-starter/source/browse/android/src/com/example/android/auth/AuthUtils.java,并使用String AUTH_TOKEN_TYPE =“oauth2:https://picasaweb.google.com/data/”而不是PLUS_ME_SCOPE - Bojan Radivojevic

0

查看android-developers:picasa

我没有找到任何文档,但如果您使用的是1.5版本,则可以利用内置的picasa应用程序将照片上传到picasa网络相册,但一个限制是您无法控制登录和退出...它使用当前与手机注册的Google帐户...如果您有兴趣,我可以给您一些示例代码...

因此,没有文档,您只需重复使用现有应用程序的Activity


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接