2010-02-03 11 views
5

Je suis nouveau à Android, et je me bats pour comprendre exactement quels outils sont disponibles pour moi. Je développe pour Android 2.0.1 pour l'instant, juste parce que c'est ce que mon appareil fonctionne.accéder à Picasa dans Android: PicasaUploadActivity

Plus précisément, je suis en train d'écrire une application que je voudrais télécharger des images à un album Picasa. Je suis presque sûr que cela est soutenu; par exemple, la visionneuse de photos intégrée (Google?) a un bouton «partager» avec une option Picasa, et même un petit échantillon de code, y compris l'extrait

[code emprunté! excuses si cela est contraire aux règles ..]

temp.setComponent(new ComponentName 
("com.google.android.apps.uploader", 
"com.google.android.apps.uploader.picasa.PicasaUploadActivity")); 
startActivityForResult(temp, PICASA_INTENT) 

qui ressemble exactement ce que je veux.

Mais je ne peux trouver aucune documentation partout. En fait, je ne comprends pas très bien comment utiliser ce type de ressource. A partir d'Eclipse, dois-je inclure un autre projet, com.google.android.apps.uploader? Si oui, comment l'obtenir? Comment l'inclure? Existe-t-il un exemple de code de travail fourni pour que je puisse y jeter un coup d'œil?

Répondre

0

voir android-developers: picasa:

Je nai trouvé des documents, mais u peut utiliser le intégré app picasa (si u r Workin en 1.5) pour télécharger ur photos vers Picasa Albums Web , mais une limitation est que vous n'avez pas le contrôle de la signature et la signature ... utilise le compte google actuellement enregistré avec le téléphone en cours ... si votre intéressé je peux donner des exemples de codes sm ...

Donc, il n'y a pas de document, vous venez Re-using an Activity de l'application existante.

2

vidéo Google I/O 2011 - Best practices for Accessing Google APIs on Android (. 40 min)

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

Cela renvoie une erreur 403: Non autorisé. Pour le faire fonctionner, vous devrez obtenir le jeton google auth, puis ajouter 'headers.setAuthorization (" OAuth "+ authToken);' Ce code peut vous aider à implémenter la partie d'autorisation 'http://code.google.com/p/google-plus-java-démarreur/source/browse/android/src/com/exemple/android/auth/AuthUtils.java' et au lieu de 'PLUS_ME_SCOPE', utilisez' String AUTH_TOKEN_TYPE = "oauth2: https: // picasaweb. google.com/data/ "' –

+0

pouvez-vous dire quelle bibliothèque vous avez utilisée pour GoogleHeaders ??? – Richa