2010-02-03 12 views
5

Sono nuovo di Android e sto cercando di capire esattamente quali strumenti sono disponibili per me. Sto sviluppando per Android 2.0.1 per ora, solo perché è ciò che il mio dispositivo esegue.Accesso Picasa in Android: PicasaUploadActivity

In particolare, sto scrivendo un'app che mi piacerebbe caricare le immagini su un album Picasa. Sono quasi certo che questo è supportato; ad esempio, il visualizzatore di foto integrato (Google?) ha un pulsante 'condividi' con l'opzione Picasa e anche un piccolo frammento di codice di esempio, incluso lo snippet

[codice preso in prestito! scuse se questo è contro le regole ..]

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

che sembra esattamente quello che voglio.

Ma non riesco a trovare alcuna documentazione da nessuna parte. In effetti, non sono del tutto chiaro come utilizzare questo tipo di risorsa. Da dentro Eclipse, devo includere un altro progetto, com.google.android.apps.uploader? Se è così, come ottenerlo? Come posso includerlo? C'è qualche codice campione funzionante che mi è stato dato di dare un'occhiata?

risposta

0

vedere android-developers: picasa:

I havent trovato alcuna documentazione, ma u può fare uso del built-in picasa app (se u r workin in 1.5) per caricare ur foto di Picasa Web Album , ma una limitazione di è che non hai il controllo di accedere e di uscire ... è usa l'account google registrato con il telefono in modo ... se il tuo interessato posso darti codici di esempio sm ...

Quindi non ci sono documenti, è solo Re-using an Activity di app esistente.

2

il video 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

Ciò restituirà l'errore 403: non autorizzato. Per farlo funzionare, devi ottenere il token di autenticazione google e quindi aggiungere 'headers.setAuthorization (" OAuth "+ authToken);' Questo codice può aiutarti a implementare la parte di autorizzazione 'http://code.google.com/pp/google-plus-java-starter/source/browse/android/src/com/example/android/auth/AuthUtils.java' e invece di 'PLUS_ME_SCOPE', usa' String AUTH_TOKEN_TYPE = "oauth2: https: // picasaweb. google.com/data/ "' –

+0

puoi sapere quale libreria hai usato per GoogleHeaders ??? – Richa

Problemi correlati