2010-06-30 2 views
3

여기 전자 메일을 보내려는 의도를 만드는 데있어 여러 주제를 찾았습니다. 매우 간단합니다. 나는 사용자가 가질 수있는 전자 메일 클라이언트를 시작하기위한 의도를 찾고 있습니다.전자 메일 응용 프로그램을 시작하려는 의도는 어떻게 작성합니까?

Intent i = new Intent(Intent.ACTION_SEND); 
i.setType("text/plain"); 
i.putExtra(Intent.EXTRA_EMAIL , new String[]{"[email protected]"}); 
i.putExtra(Intent.EXTRA_SUBJECT, "Subject of the message"); 
i.putExtra(Intent.EXTRA_TEXT , "Body of the message"); 
: 여기

내가 이메일을 ( 내가 새 메시지를 보내려고하지 않는이 내 요구를 충족하지 않습니다, 단지 참조 용 게시) 전송하기 위해 본 적이 코드입니다

PackageManager pm = getPackageManager(); 
Intent intent = pm.getLaunchIntentForPackage("com.google.android.gm"); 
startActivity(intent); 
코드 작품 위의

하지만 사용자가 Gmail을하지만, 다른 내장을 사용하지 않을 수도 있다는 점에서 유연하지 : 여기

내가 특별히 패키지 이름으로 Gmail의 클라이언트를 실행 함께 넣어 코드입니다 전자 메일 응용 프로그램 또는 타사 전자 메일 응용 프로그램에서. 이 경우 사용자가 전자 메일을 읽으려면 시작할 응용 프로그램을 결정할 수 있도록 선택기를 표시하는 의도를 찾고 있습니다.

누구든지 이것을 수행하는 방법을 알고 있습니까?

답변

0

아무에게도 을 수행하는 방법을 알고 있습니까?

Intent은 없습니다. 이메일 응용 프로그램의 매니페스트를 검토하면 알 수 있습니다.

당신이 할 수있는 유일한 일은 연결하고자하는 이메일 클라이언트의 목록을 작성하고 위에 표시된 PackageManager 코드를 사용하는 것입니다.

+0

감사를 보인다. 플랫폼의 일부로 포함될 일반적인 유형의 의도라고 생각할 수 있습니다. – afonseca

+0

이메일 클라이언트 목록을 만들고 packmanager를 사용하는 방법을 알려주시겠습니까? – Bhargav

+0

@Bhargav : 당신은 확실히 이것에 대해 별도의 Stack Overflow 질문을 할 수 있습니다. – CommonsWare

1

또 다른 접근법은 Intent.createChooser(); 사용자에게 에 올바른 애플리케이션을 선택하게하십시오.

은 BTW 목록뿐만 아니라 전자 메일 응용 프로그램

+0

대체 접근 방식을 제공해 주셔서 감사합니다. 사용자가 매번 선택할 필요가 없기 때문에 내 상황에서는 작동하지 않습니다. – afonseca

5

해, mailto URL이 이러한 목표를 달성하기 위해 어떤 방식으로 사용할 수를 포함 할 수있다? --Edit-- 내가이 사용하는 다음 코드 샘플 달성 할 수 있었다 : 이것이 내가 가야 할 방법이있을 것 같은

mt = MailTo.parse("mailto:[email protected]"); 
sendIntent = new Intent(Intent.ACTION_SEND); 
sendIntent.putExtra(Intent.EXTRA_EMAIL, new String[]{mt.getTo()}); 
sendIntent.putExtra(Intent.EXTRA_TEXT, ""); 
sendIntent.putExtra(Intent.EXTRA_SUBJECT, "Enter a subject"); 
sendIntent.setType("message/rfc822"); 
startActivity(Intent.createChooser(sendIntent, "Send a Message:")); 
+0

영리한 생각 ... –

+0

이것은 이메일을 보낼 것입니다. 이것은 OP가 원하는 것이 아닙니다. OP는 굵은 글씨로 "나는 새 메시지를 보내고 싶지 않다"고 말했다. – CommonsWare

관련 문제