2011-12-02 4 views
2

picasa 공개 앨범에 사진을 업로드 할 수 있어야하는 앱을 개발 중입니다. Ive는 많은 스레드, 포럼을 거쳤습니다 ... http 게시물을 사용하는 몇 가지 방법을 시도했지만 아무 것도 작동하지 않는 것 같습니다.android app에서 picasa로 업로드

이전에 그 사람이 있었습니까? 그렇다면 샘플 코드를 공유 할 수 있습니다. Picasa에서 기본 업로드 및 사진 업로드 만하면됩니다.

+0

ISN의이 같은 http://stackoverflow.com/questions/2193700/picasa-access- 등을 in-android-picasauploadactivity? – Ifor

+0

그 종류는 같지만 ... 작동하지 않습니다. – ash

답변

1

다음 질문 중 일부는이 문제를 다루고 있습니다. Picasa access in android: PicasaUploadActivity 이 스레드도 정보가 있습니다. http://www.mail-archive.com/[email protected]/msg43707.html

표준 picasa 업 로더를 사용하려는 의도가 계속해서 불투명 해 보인다. 나는이 기능을 원할 때 나중에 오늘 내 앱에 넣을 것이다.

그 일을 스스로 할 수 있지만, 문서 나는 그것이 내 응용 프로그램에서 다음 코드를 사용하여 작업을 가지고 http://code.google.com/apis/picasaweb/docs/2.0/developers_guide_protocol.html

OK 것으로 보인다 분명히 더 복잡한 것으로 보인다. 이것은 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"); 
} 

실지로는 내가 원하는 부분과 보낼 방법을 선택할 수 있도록 설정된 구성 요소 비트를 사용하려고합니다.

+0

Ive는 이미 위의 코드를 시도했지만 활동을 찾을 수 없다고 말합니다. – ash

+0

Im은 또한 picasa를 열어 휴대 전화와 동기화 된 계정 중 하나에 업로드 할 것이라고 추측하지만 공개 앨범에 업로드해야합니다 ... – ash

+0

oops ... 오류가 없습니다 .. Picasa 업로드 옵션을 열어도 공개 앨범에 업로드해야합니다 ... – ash

1

위의 대답은 현재 사용되지 않는 Picasa API v2에 대한 것입니다. Picasa API v3 용 Java API를 성공적으로 사용할 수 없었지만 http 게시글을 사용하여 이미지를 Picasa에 업로드하는 방법을 알았습니다.

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 
} 

이 방법은 아파치 HttpClient를 사용 :이 방법 here에 대해 서면으로 작성했습니다. 당신의 안드로이드 버전을 지원하지 않는 경우, 당신은 여전히 ​​컴파일하기 위해 Gradle을 파일에이 라인을 포함 할 수 있습니다

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

답변으로 대답은 답변에 가장 적합합니다. 위의 답변을 편집하여 주요 부분을 한 곳에서 추가하는 것이 좋습니다. 링크에는 많은 코드가 포함되어 있지 않습니다. – Syfer

+0

@Syfer 제 게으름에 사과드립니다. 팁 주셔서 감사합니다. 답변이 업데이트되었습니다. –

관련 문제