¿Cómo hacer que startActivityForResult en una actividad externa funcione?

La búsqueda alta y baja no ha producido ningún resultado para mi problema. Por lo tanto, finalmente estoy publicando para abogar por alguna ayuda.

Tengo dos aplicaciones, ambas escritas por mí. La aplicación A lanza la aplicación B, pasando los parámetros a través de Intent.putExtra (). Esto funciona perfectamente bien cuando se lanza la aplicación B, los parámetros se pasan muy bien.

Sin embargo, no puedo encontrar una manera de devolver una respuesta a la aplicación A. El uso de startActivityForResult () siempre me dio un onActivityResult () inmediato con RESULT_CANCELED. Tras una inspección adicional, el logcat me dio una advertencia que decía "La actividad se inicia como una nueva tarea, por lo que se cancela el resultado de la actividad".

Intenté hacer la Actividad de la Aplicación B con diferentes modos de inicio, filtros de acción (android.intent.action.PICK), pero nada de lo que hice cambió nada.

¿Estoy tratando de hacer lo imposible? Por lo que entiendo, lo que estoy intentando hacer debería ser similar al uso de actividades de terceros para seleccionar imágenes de la galería de fotos del dispositivo.

EDITAR:

Ok, intenté quitar la categoría de LANZADOR de la Actividad B pero aún no funciona. Aquí está mi actividad:

<activity android:name=".${CLASSNAME}" android:label="@string/app_name" android:configChanges="mcc|mnc|locale|keyboardHidden|orientation" android:launchMode="standard">
    <intent-filter>
        <action android:name="android.intent.action.PICK" />
    </intent-filter>
</activity>

¿Alguien realmente tiene esto para trabajar? Estoy empezando a sospechar que iniciar una actividad que es de otra aplicación nunca puede dar resultados, ya que parece que siempre iniciará una nueva tarea sin importar lo que pongas en el "filtro de intención".

Respuestas a la pregunta(3)

Su respuesta a la pregunta