Inicio de la intención implícita personalizada

Se instalan dos actividades con los siguientes archivos de manifiesto en el dispositivo, respectivamente:

La actividad de la primera aplicación tiene en su manifiesto: – where, package="com.example.tictactoe"

 <intent-filter> <action android:name="com.example.tictactoe.YOYO" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="text/*" /> </intent-filter> 

La actividad de la segunda aplicación tiene en su manifiesto: – donde,
package="com.example.project"

  <intent-filter> <action android:name="com.example.project.YOYO" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="text/*" /> </intent-filter> 

Ahora, quiero iniciar una de estas actividades desde la tercera aplicación utilizando el código siguiente:

 i=new Intent(); i.setAction("YOYO"); i.putExtra("KEY","HII..i am from third app"); startActivity(i); 

Pero la ejecución muestra un error: –

 03-11 08:12:30.496: E/AndroidRuntime(1744): FATAL EXCEPTION: main 03-11 08:12:30.496: E/AndroidRuntime(1744): android.content.ActivityNotFoundException: No Activity found to handle Intent { act=ACTION_SEND (has extras) } 

Necesita proporcionar el nombre completo de la acción ; proporcione el mimeType que utilizó en el manifiesto llamando a setType () en su intento.

Manifiesto:

 <intent-filter> <action android:name="com.example.tictactoe.YOYO" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="text/plain" /> </intent-filter> 

Java:

 Intent i=new Intent(); i.setAction("com.example.tictactoe.YOYO"); i.setType("text/plain"); i.putExtra("KEY","HI..i am from third app"); startActivity(i); 

Necesita proporcionar la acción completa:

 i=new Intent(); i.setAction("com.example.tictactoe.YOYO"); i.putExtra("KEY","HII..i am from third app"); startActivity(i); 

O (según el proyecto que desea iniciar):

 i.setAction("com.example.project.YOYO"); 

Usted puede hacerlo también vía: (acción de la fuente directamente en constructor)

 i=new Intent("com.example.tictactoe.YOYO"); i.putExtra("KEY","HII..i am from third app"); startActivity(i); 

También pierde los datos mimeType o leer sobre cómo usarlo. Porque a través de putExtra no va a funcionar.

En primer lugar, debe asegurarse de que el nombre de la intención es el nombre completo con el nombre del paquete es el mismo en el filtro de intenciones y la actividad que dispara la intención. En este caso: "YOYO" debe ser "com.example.tictactoe.YOYO". También debe eliminar el tipo MIME ya que no está incluyendo datos en el setData (), en este caso está utilizando un lote. Así que usted debe tener para la actividad disparando la intención:

INICIO DE ENCENDIDO DE ACTIVIDAD

 i=new Intent(); i.setAction("com.example.tictactoe.YOYO"); i.putExtra("KEY","HII..i am from third app"); startActivity(i); 

y para la entrada de la actividad de recepción en el manifiesto: Debe asegurarse de que establece la categoría como DEFAULT y quita la etiqueta de tipo de datos.

ACTIVIDAD QUE RECIBE INTENCIÓN

 <intent-filter> <action android:name="com.example.tictactoe.YOYO" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.