8

Estoy tratando de filtrar y manejar intentos con acciones android.intent.action.SEND en una de mis Service s. Escribí lo siguiente en mi AndroidManifest.xml:Especificar un filtro de intención SEND (compartir) para un servicio

<service 
    android:name=".app.ScreamerService" 
    android:label="@string/app_name" > 
    <intent-filter> 
     <action android:name="android.intent.action.SEND"/> 
     <category android:name="android.intent.category.DEFAULT"/> 
     <data android:mimeType="*/*"/> 
    </intent-filter>                  
</service> 

Ahora, el problema es que no veo mi solicitud en la lista de "compartir a través de" opciones cuando, por ejemplo, tratando de compartir una página web desde la navegador o un contacto de la lista de contactos. Sin embargo, si muevo los filtros de intención a la etiqueta principal <activity> (en lugar de <service>), mi nombre de aplicación e ícono aparecen en la lista de opciones "compartir vía".

¿Qué estoy haciendo mal aquí? ¿No se puede dirigir una acción SEND a un Servicio?

Respuesta

9

Estoy tratando de filtrar y manejar las intenciones con las acciones de android.intent.action.SEND en uno de mis servicios.

ACTION_SEND es una acción actividad y por lo tanto no pueden ser recogidos por los servicios o los receptores de radiodifusión.

Ahora, el problema es que no veo mi solicitud en la lista de "compartir a través de" opciones cuando, por ejemplo,

Esto se debe a que no es una actividad.

¿No se puede enviar una acción SEND a un Servicio?

Las cosas que aparecen en un selector (por ejemplo,. Para ACTION_SEND) deben ser actividades. Sin embargo, su actividad es bienvenida para comunicarse con un servicio.

1

Esto debería funcionar, pero:

Pruebe con un receptor de primera para obtener la intención y el lanzamiento de su servicio.

si eso no funciona:

Utilice una actividad ficticia sin diseño. (haga que el tema sea translúcido y llame al final justo después de manejar el intento).

También su tipo mime significa que está manejando cada tipo de archivo. ¿Es eso lo que necesita? Creo que deberías hacerlo más preciso en la selección. recibirá comentarios negativos si alguien intenta usarlo con un tipo que no es compatible. Mi sugerencia es probar tipos y agregarlos uno por uno, ya que está seguro de que puede manejarlos.

Cuestiones relacionadas