2010-07-20 16 views
6

Mam kod, który poprosi użytkownika o wysłanie wiadomości, wybierając żądaną aplikację, w jaki sposób mogę wykryć, czy użytkownik faktycznie wybrał opcję lub zamiast tego nacisnął przycisk Wstecz?Jak wykryć, czy użytkownik został wybrany z opcji createChooser?

Próbowałem sprawdzić, czy zamiar zwrócił coś, ale działa asynchronicznie, więc nie można go śledzić.

Również próbowałem uruchomić intencję z startActivityForResult, co zauważyłem w onActivityResult, że resultCode jest zawsze 0 (RESULT_CANCELED), nawet jeśli użytkownik wybrał, lub nie z wybieracza.

Odpowiedz

3

Ze źródła Androida widać, że działanie, które wybiera wśród Intencji, wcale nie ustawia funkcji SetResult(). To powinno być wymagane jako funkcja.

+1

Czy mimo to wiedzieć, która aplikacja oni wybrał? – MinceMan

0

można teraz użyć nowego createChooser() z 3rd arg: pendingintent.getintentsender().

przykład:

 String aText = e.getText().toString(); 
     Intent sendIntent = new Intent(); 
     sendIntent.setAction(Intent.ACTION_SEND); 
     sendIntent.putExtra(Intent.EXTRA_TEXT, aText); 
     sendIntent.setType("text/plain"); 
     sendIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     sendIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET); 

     // 
     Intent receiver = new Intent(this, BroadcastTest.class); 
     receiver.putExtra("test", "test"); 
     PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, receiver, PendingIntent.FLAG_UPDATE_CURRENT); 
     Intent intent = Intent.createChooser(sendIntent, "Send email with:", pendingIntent.getIntentSender()); 
     intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     startActivity(intent); 
Powiązane problemy