2010-08-30 15 views
6

jestem rozpoczęcie działalności poczty przezGet mail wysłany Zawiadomienie w onActivityResult "Android"

// Wysyłanie poczty

final int SENT_MAIL = 1;

startActivityForResult (Intent.createChooser (i, "Wyślij pocztę"), SENT_MAIL);

aw

onActivityResult (int zamów, int res dane Intent)

próbuję znaleźć wynik wysyłanie e-maila, aby potwierdzić, czy mój mail to: wysłane lub zostało odrzucone przez użytkownika. ja już otrzymywać null dla danych intencyjne

czyli dane = null

parametr w onActivityResult (int, int req, res danych Intent), res jest zawsze 0.

tj . res = 0;

Proszę dać mi znać, co można zrobić w tym przypadku?

Z góry dziękuję!

Odpowiedz

3

Musisz skontaktować się z twórcami wszystkiego, co mogłoby kiedykolwiek reagować na Intent (które nie wykazują wyżej) oraz ich zapytać, czy obsługują one startActivityForResult() takiego Intent. Szanse są rzadkie, a mimo to będziesz miał trudności ze śledzeniem wszystkich możliwych klientów poczty e-mail z Androidem. Jeśli nie obsługują one startActivityForResult(), a wciąż możesz wywoływać tę metodę, nie uzyskasz istotnych wyników w onActivityResult().

Dlatego to, czego chcesz, jest niepraktyczne, IMHO.

+0

Dzięki za odpowiedź .. ale czy jest jakaś praca wokół .. ?? po prostu nie używam callbacku z natywnej aplikacji (w tym przypadku zakładam, że Gmail na telefonie z Androidem jest natywną aplikacją) – Abhinava

+0

@Abhinava: "ale czy jest jakaś praca wokół ... ??" Nie. Aplikacja AOSP Email nie używa 'setResult()', więc nie będzie działać z 'startActivityForResult()'. Aplikacja Gmail jest zamkniętym źródłem. Możesz dodać poprawki do aplikacji e-mail o otwartym kodzie źródłowym, aby dodać tę funkcję do tej konkretnej aplikacji. – CommonsWare

+0

Po prostu, aby było jasne, czy mówisz, że funkcja startActivityForResult nie może być używana z zamiarem używania Gmaila, na przykład: 'new Intent (Intent.ACTION_SEND) .setType (" message/rfc822 ")' ponieważ będzie zwracać RESULT_CANCELLED za każdym razem, niezależnie od sukcesu ? Mógłbym przysiąc, że zadziałało to wcześniej, ale teraz dostaję tylko RESULT_CANCELLED. –

Powiązane problemy