2009-11-20 17 views
12

Ben burada bulduğu bu kodu çalıştı:E-posta uygulamasını "-" alanı önceden doldurulmuş şekilde nasıl başlatırım?

Intent intent = new Intent(Intent.ACTION_SENDTO, Uri.fromParts("mailto", "[email protected]", null)); startActivity(intent); 

Ama "Desteklenmeyen Eylem" okur ekranda bir mesaj alıyorum. Bunun nasıl çalıştığına dair herhangi bir fikir var mı?

Teşekkürler!

/* Create the Intent */ 
final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND); 

/* Fill it with Data */ 
emailIntent.setType("plain/text"); 
emailIntent.putExtra(android.content.Intent.EXTRA_EMAIL, new String[]{"[email protected]"}); 
emailIntent.putExtra(android.content.Intent.EXTRA_SUBJECT, "Subject"); 
emailIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Text"); 

/* Send it off to the Activity-Chooser */ 
context.startActivity(Intent.createChooser(emailIntent, "Send mail...")); 

Anahtar parçalar: senin adresler için EXTRA_EMAIL kullanarak ve kullanıcı yapılandırılmış birden fazla e-posta istemcisi vardır durumunda createChooser() kullanılarak

cevap

27

bu snippet deneyin deneyin yaptı.

+3

Teşekkürler, işe yaradı :) Başlangıçta böyle bir şey denedim ama sadece bazı mesajlaşma ekranını çektim ve e-posta uygulamasını değil. Öyleyse, o zaman, emülatörde bir e-posta hesabım olmadı mı? – scuba

+0

Son anahtar kelimeyi ne kullandınız? Bu bir çeşit optimizasyonla sonuçlanmıyor mu, farkında değil miyim? – Scott

+0

Snippet'i ben yazmadım. Şahsen, muhtemelen oradaki son anahtar kelimeyi kullanmamıştım. – CommonsWare

3

Eğer

Intent intent = new Intent(
    Intent.ACTION_SENDTO, 
    Uri.parse("mailto:[email protected]") 
); 
startActivity(intent); 
+0

Bir vuruş verdi, hala iletiyi alın: Desteklenmeyen Eylem Bu eylem şu anda desteklenmiyor. Tost benzeri bir baloncuk içinde. Uygulamamın bunu kullanmasına izin vermek için bildirimde bir şey ayarlamam gerekiyor mu? – scuba

1

Buradaki asıl sorunların, resmi emülatörde çalıştığınız ve amacınızın hiçbir şeyle eşleşmediğidir.

Testlerimden bu, niyetin URI'sinin (setData()'dan) hiçbir şeyle eşleşmediği ve resmi Android emülatörlerinden birinde koştuğunuzda gerçekleşen bir sorundur. Bu gerçek cihazlarda meydana gelmiyor, bu yüzden gerçek bir dünya sorunu olmamalı.

Bu kastı da başlatmadan önce ne olacak algılamak için bu kodu kullanabilirsiniz

:

ComponentName emailApp = intent.resolveActivity(getPackageManager()); 
ComponentName unsupportedAction = ComponentName.unflattenFromString("com.android.fallback/.Fallback"); 
boolean hasEmailApp = emailApp != null && !emailApp.equals(unsupportedAction); 

(. "Desteklenmeyen eylem" eylem yöntemi com.android.fallback.FallbackActivity olduğunu gösterir aktivitenin adı)

İlgili konular