2012-02-27 22 views
24

Mam tu dziwną sytuację.Android Email Problem z wielokrotnym załączeniem na HTC Thunderbolt

Próbuję wysyłać wiadomości e-mail z wieloma załącznikami, korzystając z poniższego fragmentu kodu.

Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE); 
// emailIntent.setType("plain/text"); 
emailIntent.setType("application/octet-stream"); 
... 
.... 
emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris); 

To działa prawidłowo i niejawny mechanizm zamiar pokazuje się wiele opcji, takich jak Gmail, Skype, wiadomości itp

Problemem jest to, że domyślnym klientem poczty nie pojawi się na HTC Thunderbolt (ale działa na innych urządzeniach, w tym HTC Incredible S).

Gdy próbuję wysłać pojedynczy załącznik korzystając Intent.ACTION_SEND domyślny klient poczty wyświetla się. Próbowałem ustawić typ zawartości na text/plain, appliation/octet-stream, message/rfc282 etcetera, ale żaden nie działa.

Czego mi tu brakuje?

+0

Na koniec dołączyłem wszystkie załączniki do pliku zip i załadowałem ten plik zip. –

+0

Czy próbowałeś tego? http://stackoverflow.com/questions/4552831/how-to-attach-multiple-files-to-email-client-in-android – juanlugm

Odpowiedz

0

Brzmi jak błąd w wersji Sense'a Thunderbolta. Niestandardowe interfejsy użytkownika do wygrania, czy mam rację?

W każdym razie, sprawdziłbym, jaka aplikacja faktycznie obsługuje wiadomości e-mail na piorunach i umieszcza instrukcję if, aby wykryć, czy urządzenie jest piorunem. Jeśli tak, ustaw klasę docelową celu na taką, jaka jest. Jeśli nie, rób to, co już robisz.

0

To działa doskonale dla mnie, pamiętaj, aby określić typ wiadomości, w ten sposób Android os wie, którego nadawania użyć.

 String email = "[email protected]"; 
    Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE); 
    intent.setType("message/rfc822"); 
    intent.putExtra(Intent.EXTRA_EMAIL, new String[] {email}); // could have multiple address 
    intent.putExtra(Intent.EXTRA_SUBJECT, "Enter your subject here"); 
    intent.putExtra(Intent.EXTRA_TEXT, "message text as needed"); 
    ArrayList<Uri> arrayUri = new ArrayList<Uri>(); 
    arrayUri.add(Uri.parse("file://" + paths[0])); 
    arrayUri.add(Uri.parse("file://" + paths[1])); 
    intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, arrayUri); 
    startActivity(Intent.createChooser(intent, "Any title to show on chooser")); 
0

Spróbuj tego. Myślę, że to zadziała.

final Intent emailIntent = new Intent(android.content.Intent.ACTION_SEND_MULTIPLE); 
emailIntent.setType("plain/text"); 

ArrayList<Uri> uris = new ArrayList<Uri>(); 

String[] filePaths = new String[] {image1 Path,image2 path}; 
for (String file : filePaths) { 
    File fileIn = new File(file); 
    Uri u = Uri.fromFile(fileIn); 
    uris.add(u); 
} 

if (!(app_preferences.getString("email", "") == null || app_preferences.getString("email", "").equals(""))) { 
    emailIntent.putExtra(Intent.EXTRA_EMAIL, new String[] {app_preferences.getString("email", "")});  
} 

emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Subject name"); 
emailIntent.putExtra(Intent.EXTRA_TEXT, "Please find the attachment."); 
emailIntent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris); 

startActivity(Intent.createChooser(emailIntent, "Email:")); 
Powiązane problemy