Pregunta

Yo sé cómo cargar un archivo PDF en Android. Pero si se instalan más de un visualizadores de PDF, muestra una lista de Android para elegir. Quiero cargar mi archivo PDF con un visor de PDF específico (digamos DroidReader). ¿Cómo hacer esto?

¿Fue útil?

Solución

A continuación, especifique el nombre completo de la actividad:

    Intent intent = new Intent();
    ComponentName comp = new ComponentName("com.package.name.of.droidreader", "com.package.name.of.droidreader.DroidReader");
    intent.setComponent(comp);
    startActivity(intent);

Para saber cuál es el nombre y la actividad de paquete son, usted podría echar un vistazo a la salida adb logcat: al abrir una actividad que se registra allí. Y, por supuesto, configure la intención correctamente, de modo que los conocimientos DroidReader qué archivo se abra.

Por último, pero importante, que debe rodear el método startActivity con un bloque try-catch agarrar la ActivityNotFoundException (estoy seguro de que la mayoría de los teléfonos móviles no tendrán esa aplicación específica).

Otros consejos

No te recomiendo no especifica un nombre de clase explícita en la intención como la respuesta aceptada recomienda, ya que es un detalle de implementación de la aplicación que puede cambiar en cualquier momento en usted.

En su lugar, construir su Intención de manera normal, pero el uso de Intent.setPackage () para especificar el sistema sólo debe buscar en el nombre del paquete de la aplicación deseada para las actividades de juego. Es decir:

Intent intent = new Intent(Intent.ACTION_VIEW, uriToView);
intent.setPackage("com.package.name.of.droidreader");
startActivity(intent)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top