¿Cómo controlar la lista de aplicaciones que se muestran al iniciar Intent?

Quiero iniciar un intento de abrir / ver un PDF que acabo de crear.

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(path, "application/pdf");
intent.setData(path);
this.startActivity(intent);

Aparecerá un cuadro de diálogo "Seleccionar una acción" con dos opciones:

  • Sistema Android
  • navegador

Si elijo Sistema Android, ENTONCES me dará otro cuadro de diálogo que muestra la lista de aplicaciones capaces de mostrar un PDF.

¿Cómo me salto ese primer cuadro de diálogo y salto directamente al cuadro de diálogo con la lista de aplicaciones?

preguntado el 27 de agosto de 11 a las 23:08

Has mirado ACTION_CHOOSER developer.android.com/reference/android/content/… y / o el asociado Intent.createChooser(...) método de conveniencia? -

Todo lo que hace que aparezca el selector de navegador / sistema Android mencionado anteriormente. -

Me pregunté si ese podría ser el caso, por eso publiqué como comentario en lugar de como respuesta. Por cierto, te noto setDataAndType(...) luego llame setData(...). De los documentos para setData - "Establezca los datos en los que está operando esta intención. Este método borra automáticamente cualquier tipo que haya sido establecido previamente por setType (String).". No sé si la eliminación de 'tipo' también está ocurriendo en su código y quizás confunde el problema. -

1 Respuestas

Intenta deshacerte del setData() llama. Es redundante, ya que está configurando el Uri in setDataAndType(), y estás borrando tu tipo MIME llamando setData() Si lo envía después setDataAndType().

Respondido 28 ago 11, 12:08

Gracias, eso fue todo. No me di cuenta de que todavía me sobraba desde la primera pasada del código. - Kenny Wyland

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.