2013-02-05 4 views
0

내 앱에서 여러 장의 사진을 공유하고 싶습니다. 페이스 북 그래프 API를 사용하여 하나의 사진을 업로드 할 수 있지만 여러 사진을 공유하려면 어떻게해야합니까?facebook에서 여러 사진 공유

고맙습니다.

+0

가능한 중복 [의도 + 공유 작동하지 + 액션 \ _send \ _Multiple + 페이스 북 (http://stackoverflow.com/questions/25846496/intent-share-action-send- 다중 페이스 북 작동하지 않음) – bummi

답변

1

안드로이드는 제공하지 않는 아웃 - 오브 - 박스 여러 이미지/사진, 또는 다른 미디어 유형을 선택의도. 출처 : https://stackoverflow.com/a/12919585/450534 (누군가가 도전 할 수 없다면 마크 머피의 말을 복음으로 받아 들일 것입니다.)

가장 가까운 의도는 ACTION_SEND_MULTIPLE.입니다. 그러나, 당신을위한 옵션이 아닙니다.

맞춤 선택기은 Facebook이 자체 모바일 앱에서 수행하는 것과 유사해야합니다.

당신은 여기에 자신의 여러 이미지 선택을 구현하기위한 전체 기능을 예를 얻을 것이다 : http://vikaskanani.wordpress.com/2011/07/20/android-custom-image-gallery-with-checkbox-in-grid-to-select-multiple/

을 마지막으로 한 번에 페이스 북에 여러 이미지를 업로드, 당신은 Batch Requests를 보내야합니다.

하지만 당신이 찾고있는 것을위한 준비가 된 해결책은 없습니다. 위의 모든 것을 결합하면됩니다. 그러나 나는 두려워하지 않습니다.

0

인 텐트를 사용하여 Facebook에서 여러 사진을 공유 할 수있었습니다. "caminhos"변수는 공유하려는 이미지의 경로가있는 ArrayList < String>입니다.

protected void share(String nameApp, String imagePath, String text) { 
// TODO Auto-generated method stub 

try { 
    List<Intent> targetedShareIntents = new ArrayList<Intent>(); 
    Intent share = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE); 
    share.setType("image/jpeg"); 
    List<ResolveInfo> resInfo = getActivity().getPackageManager() 
      .queryIntentActivities(share, 0); 
    if (!resInfo.isEmpty()) { 
     for (ResolveInfo info : resInfo) { 
      Intent targetedShare = new Intent(
        android.content.Intent.ACTION_SEND_MULTIPLE); 
      targetedShare.setType("image/png"); // put here your mime 
      // type 
      if (info.activityInfo.packageName.toLowerCase().contains(
        nameApp) 
        || info.activityInfo.name.toLowerCase().contains(
          nameApp)) { 
       targetedShare.putExtra(Intent.EXTRA_SUBJECT, text); 
       targetedShare.putExtra(Intent.EXTRA_TEXT, text); 
       ArrayList<Uri> files = new ArrayList<Uri>(); 
       for(int j= 0;j<caminhos.size();j++){ 
        if(!caminhos.get(j).isEmpty()){ 
         File file = new File(caminhos.get(j)); 
         Uri uri = Uri.fromFile(file); 
         files.add(uri); 
        } 
       } 

       targetedShare.putParcelableArrayListExtra(Intent.EXTRA_STREAM, 
         files); 
       targetedShare.setPackage(info.activityInfo.packageName); 
       targetedShareIntents.add(targetedShare); 
      } 
     } 
     Intent chooserIntent = Intent.createChooser(
       targetedShareIntents.remove(0), "Select app to share"); 
     chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, 
       targetedShareIntents.toArray(new Parcelable[] {})); 
     startActivity(chooserIntent); 
    } 
} catch (Exception e) { 
} 

}의