2010-12-13 6 views
13

사용자의 휴대 전화에서 사용 가능한 응용 프로그램을 사용하여 일부 텍스트를 공유하기 위해 이와 같은 방법을 사용하고 있습니다.Android 공유 의도 선택기

public void share(String subject,String text) { 
    final Intent intent = new Intent(Intent.ACTION_SEND); 

    intent.setType("text/plain"); 
    intent.putExtra(Intent.EXTRA_SUBJECT, subject); 
    intent.putExtra(Intent.EXTRA_TEXT, text); 

    startActivity(Intent.createChooser(intent, getString(R.string.share))); 
} 

내 주요 문제는 사용자가 (짧은 URL을 VS 첨부 된 이미지와 전체 텍스트 짧은 버전) 트위터 대신 예를 들어 이메일을 선택한다면 나는 다른 텍스트를하고 싶은 것입니다.

사용자가 어떤 응용 프로그램을 사용하기로 결정했는지 어떻게 알 수 있습니까?

+0

gumbercules 여기에 환상적인 대답을 가지고 : 그래서 http://stackoverflow.com/questions/5734678/custom-filtering-of-intent-chooser-based-on-installed-android-package-name – hitch45

답변

8

createChooser를 사용하여 텍스트를 시스템 밖으로 가져온 후에는 텍스트를 바꿀 수 없습니다.

+0

내 자신의 선택기를 만들어야겠습니까? : -/Clumsy API 디자인은 그렇지 않습니까? 이 경우 예를 들어 트위터 나 페이스 북을위한 의도를 작성하는 방법에 대한 샘플 코드는 무엇입니까? –

+2

문제의 앱은 짹짹, 업데이트 상태 등을 보내기 위해 자체적 인 공개 API를 게시해야합니다. Twitdroid는 내가 아는 유일한 앱이며 그렇게하지 않은 다른 사람들은 그 대회를 따르지 않습니다. 나는 개인적으로이 디자인을 신경 쓰지 않는다. 편리함은 트레이드 오프의 가치가 있다고 생각한다. – schwiz

+0

실제로는 편리하지만, 예를 들어 메시지 길이에 대한 제약에 적응하는 것이 다소 어렵습니다. 사용자에게 짧은 텍스트 또는 긴 텍스트로 공유할지 묻는 대화 상자를 추가하기 만하면됩니다. 지금까지 생각할 수있는 방식으로 만 필요한 클릭 수를 달성하기위한 최적의 방법은 아닙니다. 의견을 보내 주셔서 감사합니다. –

1
Intent intent = new Intent(Intent.ACTION_SEND); 

intent.setType("text/plain"); 
intent.putExtra(Intent.EXTRA_SUBJECT, subject); 
intent.putExtra(Intent.EXTRA_TEXT, textWhichYouWantToShare); 

startActivity(Intent.createChooser(intent, getString(R.string.share)));