2012-02-06 11 views
5

que tienen una sensación de que esto no es posible, pero pensé que tendría alguna confirmación ...definiciones intención de filtros estáticos Añadiendo después de la instalación

Me gustaría tener una aplicación que reacciona a ciertos HTTP URLs, y sé que puedo predefinir algunas entradas en el manifiesto algo como esto:

<intent-filter> 
    <action android:name="android.intent.action.VIEW" /> 
    <category android:name="android.intent.category.BROWSABLE" /> 
    <data android:scheme="http" android:host="example.com" /> 
</intent-filter> 

Sin embargo, me gustaría al usuario añadir (o potencialmente eliminar) anfitriones, por ejemplo, agregue "http://example.net" o desactive la entrada predefinida "http://example.com/".

Por supuesto, puedo capturar tales Intenciones registrando un receptor de difusión dinámico en una actividad en primer plano.

Pero, ¿es posible registrar nuevos filtros de intención con el sistema después de la instalación, para que mi aplicación no tenga que estar en primer plano para capturar intenciones que coincidan con los nombres de host recién agregados?

Respuesta

1

Buena pregunta.

No estoy seguro si es posible, pero lo haría:

a) Prueba de lo que ocurre cuando se registra el receptor con el método registerReceiver() dentro Context. Quizás persiste de alguna manera.

b) Configure el receptor de difusión dinámica dentro de un interminable Service. (Sí, es feo, lo sé)

+0

El servicio es una idea interesante; podría ser viable. Además, solo debería ejecutarse si el usuario realmente hubiera personalizado la lista de nombres de host. –

+0

¿Funcionó la solución de servicio? –

Cuestiones relacionadas