2010-07-20 17 views
6

Tengo un código que solicitará al usuario que envíe un mensaje seleccionando la aplicación deseada, ¿cómo puedo detectar si el usuario realmente eligió entre las opciones o en su lugar presioné Atrás?¿Cómo puedo detectar si el usuario ha sido seleccionado de las opciones de createChooser?

Traté de comprobar si el intento arrojó algo, pero se está ejecutando de manera asíncrona, por lo que no se puede rastrear.

También he intentado ejecutar la intención con startActivityForResult, lo que noté en el resultado de actividad es que resultCode siempre es 0 (RESULT_CANCELED) aunque el usuario haya seleccionado, o no, del selector.

Respuesta

3

Desde la fuente de Android, puede ver que la Actividad que elige entre Intentos no establece ningún resultado() en absoluto. Eso debe solicitarse como una característica.

+1

¿Hay alguna forma de saber qué aplicación se habían seleccionado? – MinceMan

0

ahora puede usar el nuevo createChooser() con 3rd arg: pendingintent.getintentsender().

ejemplo:

 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); 
Cuestiones relacionadas