android 中的 Picasa 访问:PicasaUploadActivity

Posted

技术标签:

【中文标题】android 中的 Picasa 访问:PicasaUploadActivity【英文标题】:Picasa access in android: PicasaUploadActivity 【发布时间】:2011-01-12 17:11:18 【问题描述】:

我是 android 新手,我正在努力弄清楚我可以使用哪些工具。 我现在正在为 Android 2.0.1 进行开发,只是因为我的设备就是这样运行的。

具体来说,我正在编写一个应用程序,我想将图像上传到Picasa 相册。我几乎可以肯定这是支持的;例如,内置(谷歌?)照片查看器有一个带有 Picasa 选项的“分享”按钮,甚至还有一小部分示例代码,包括 sn-p

[借来的代码!如果这违反了规则,我们深表歉意。]

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?如果是这样,我该如何得到它?我如何包含它?是否有任何工作示例代码供我查看?

【问题讨论】:

【参考方案1】:

视频Google I/O 2011 - Best practices for Accessing Google APIs on Android(第 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();
    



【讨论】:

这将返回错误 403:未授权。要使其工作,您必须获取 google auth token 然后添加 headers.setAuthorization("OAuth " + authToken); 此代码可以帮助您实现授权部分 http://code.google.com/p/google-plus-java-starter/source/browse/android/src/com/example/android/auth/AuthUtils.java 而不是 PLUS_ME_SCOPE,使用 String AUTH_TOKEN_TYPE = "oauth2:https://picasaweb.google.com/data/"【参考方案2】:

见android-developers: picasa:

我没有找到任何文档,但您可以使用 内置 picasa 应用程序(如果您 r 在 1.5 中工作)将您的照片上传到 picasa 网络相册,但是一个 限制是你没有控制登录和退出......它 使用当前在手机上注册的谷歌帐户...如果你 有兴趣可以给你sm示例代码...

所以没有文档,您只是现有应用的Re-using an Activity。

【讨论】:

以上是关于android 中的 Picasa 访问:PicasaUploadActivity的主要内容,如果未能解决你的问题,请参考以下文章

picasa支持EXFAT的处理方法

Planar Inverted Cone Antenna (PICA)

为啥 Google 的“人脸识别”功能只能在 Picasa WEB 中使用,而 Picasa for PC 没有?

如何处理 PHP 请求中的长标头声明?

哪位知道google谷歌的Picasa的快捷键?请快快告诉我吧。

使用 Picasa API 自动进行人脸检测以提取单个图像