2011-12-21 14 views
5

Estoy tratando de iniciar una actividad definida en otra aplicación, en su AndroidManifest.xml, define una actividad y con una acción, pero no hay una categoría definida.Actividad de inicio con acción, pero sin categoría

El formato es como

<activity name="..."> 
    <intent-filter> 
     <action android:name="action name"> 
    <intent-filter> 
</activity> 

Mi código está siguiendo

Intent i = new Intent("action name"); 
startActivity(i); 

Sin embargo, mi apk chocó con excepción ActivityNotFound no detectada, los registros de leer no hemos encontrado actividad de manejar intención ... "

¿Alguna idea?

Gracias mucho.

Respuesta

16

Mirando el Intent documentation, que dice Tenga en cuenta también la categoría por defecto suministra aquí: esto es necesario para el método Context.startActivity para resolver su actividad cuando no se especifica explícitamente su nombre del componente. Si la definición de IntentFilter de la actividad no incluye esa categoría, entonces no puede iniciarla con startActivity. Intente utilizar el método setClassName y pase la clase de paquete y la clase de actividad que está intentando iniciar.

0

Debe definir la actividad que está iniciando en su Manifiesto. Asegúrese de haber proporcionado el mismo <intent-action (y el nombre de la actividad) que tiene la actividad en la otra aplicación que desea iniciar.

android: how do i open another app from my app?

+0

¿Puede dar más detalles sobre la definición de la intención manifiesta? ¿Cómo incluyo actividad en la otra aplicación en mi manifiesto? – Jimmy

11

no puede tener categoría vacía cuando usa startActivity (...).

añadir una categoría predeterminada y esto hará el trabajo:

<intent-filter> 
    <action android:name="action name" /> 
    <category android:name="android.intent.category.DEFAULT" /> 
</intent-filter> 
Cuestiones relacionadas