2012-11-22 5 views
5

WhatsApp, twitter, Facebook 및 Gmail과 같은 소셜 네트워크에서 내 맞춤 메시지를 공유하기 위해 인 텐트와 Action.SEND를 사용합니다. 페이스 북을 제외한 Gmail 및 기타 애플리케이션에서 모든 것이 정상입니다! Facebook에서 어떤 것을 공유하도록 내 코드를 사용자 정의 할 수 있습니까? 나는 페이스 북 SDK를 아무런 문제없이 페이스 북에서 공유하지만, 의도를 사용하여 그것을하고 싶다.FaceBook Android에서 콘텐츠 공유

안드로이드의 의도를 사용
Intent sendIntent = new Intent(); 
sendIntent.setAction(Intent.ACTION_SEND); 
sendIntent.putExtra(Intent.EXTRA_TEXT, knowTitle+"Read the full article via MomsApp by EnfaMama A+ at http://meadjohnsonasia.com.my/mobileapp"); 

sendIntent.putExtra(Intent.EXTRA_SUBJECT, "I just read "+knowTitle); 
sendIntent.setType("*/*"); 
startActivity(Intent.createChooser(sendIntent, "Share Your Favorite Article")); 

답변

5

내가 한 것은 실제로 intentandlers의 선택한 대상을 가로채는 것이 었습니다. 당신은 당신의 actionprovider를 사용하여 그렇게 할 수 있습니다. onclick이 의도를 시작하는 항목을 만들었다 고 가정 해 봅시다. 그렇게하기 위해 액션 공급자를 인스턴스화하여 그렇게 할 수 있습니다. 이 액션 공급자는 setOnShareTargetSelectedListener를 사용하여 다르게 처리하려는 (또는 전혀 ^^) 처리 할 인 텐트를 가로 챌 수 있습니다. actionprovider 구성 방법은 아래 코드를 참조하십시오. 페이스 북이 선택 될 때마다

actionProvider.setShareIntent(createShareIntent()); 
    actionProvider.setOnShareTargetSelectedListener(new OnShareTargetSelectedListener(){ 

     @Override 
     public boolean onShareTargetSelected(ShareActionProvider source, 
       Intent intent) { 
      if ("com.facebook.katana".equals(intent.getComponent().getPackageName()) && mfacebooksharer != null) { 
       mfacebooksharer.shareStatus(subject, text); 
        return true; 
       } 
       return false; 
     } 

    }); 

, 나는 텐트를 처리하고, 페이스 북의 API를 따라 내 mfacebooksharer를 사용합니다. Ofcourse, 그 actionrpovider는 의도가 있어야합니다. (의도와 함께 작업하기를 원하는 것처럼). 나는 아래의 방법을 사용하여 의도를 만듭니다.

private Intent createShareIntent() { 
     intentsetter.setIntentleave(true); 
     Intent shareIntent = new Intent(Intent.ACTION_SEND); 
     shareIntent.setType("text/plain"); 
     shareIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, subject); 
     shareIntent.putExtra(android.content.Intent.EXTRA_TEXT, text);   
     return shareIntent; 
    } 
+0

이것은 android 4.0에서만 작동합니다. – Giorgi

1

, 텍스트없이 링크 만 공유 할 수 있습니다 :

Intent intent = new Intent(Intent.ACTION_SEND); 
intent.setType("text/plain"); 
intent.putExtra(Intent.EXTRA_TEXT, "http://www.google.ca"); 
startActivity(Intent.createChooser(intent, "Share with")); 

그것은 일 것이다

이 내가 사용하는 것입니다. 텍스트와 링크를 공유하려는 경우, 당신은 안드로이드에 대한 페이스 북 SDK 사용할 수 있습니다 페이스 북의 플랫폼 정책에 따라 경찰 https://github.com/facebook/facebook-android-sdk

4

을, 당신은 Intent.EXTRA_TEXT를 사용하여 공유 대화 상자를 미리 채울 수 없습니다. 일반적으로 버그로 생각되지만, 버그 리포트에 따르면 herehere을 비롯하여 페이스 북은 분명히 그렇지 않은 것으로 언급합니다 (버그는 아닙니다).

당신은 플랫폼 정책 IV.2에서 자신의 Platform Policies 특히, 플랫폼 정책 IV.2

견적에 대한 자세한 내용을보실 수 있습니다 :

당신은 모든 필드를 미리 채워지지한다 사용자가 수동으로 워크 플로에서 콘텐츠를 수동으로 생성하지 않는 한 다음 제품과 연결된 스트림 스토리 (user_message 매개 변수 Facebook.streamPublish 및 FB.Connect.st reamPublish 및 메시지 ), 사진 (캡션), 비디오 (설명), 참고 (제목 및 내용), 링크 (주석) 및 Jabber/XMPP.

이 필드는 사용자가 직접 표현하기위한 것입니다. 사전 입력 이 필드는 사용자 음성의 진위를 침식합니다.

유일한 방법은 당신이 공유 할 수 있습니다 응용 프로그램에서 귀하의 게시물에 따라, 당신은 성공적으로 이미 할 수있는 페이스 북 SDK를 통합하는 것입니다 이야기. 그게 유일한 옵션입니다 (불행히도).

+0

좋아하지만 난 내가 어떻게 사용자가 페이스 북에서 클릭 예 용 Gmail를 감지 할 수 있습니다, 사용자가 페이스 북 SDK를 사용하여 내 사용자 정의 페이스 북의 공유에 직접 싶어! 그렇다면 페이스 북에서 내가 원하는 것을 쉽게 할 수 있다면 –

+0

@MahdiGiveie : 사용자가 공유 할 수있는 애플리케이션 목록에서 앱을 선택하기를 원하십니까? –

+0

내 앱이 아님 !! 나는 응용 프로그램 사용자 목록에서 Facebook을 클릭하면 내 맞춤 Facebook 공유에 직접 공유 할 수있는 사용자를 원합니다! 내 문제는 어떻게 그 사용자가 목록에서 페이스 북을 클릭 감지 할 수 있습니까? –