2012-02-06 11 views
5

ho la sensazione che questo non è solo possibile, ma ho pensato di prendere un po 'la conferma ...definizioni Aggiunta statici intent-filtro dopo l'installazione

Mi piacerebbe avere un app che reagisce a certi HTTP URL, e so che posso predefinire alcune voci in qualcosa di manifestare in questo modo:

<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> 

Tuttavia, vorrei all'utente di aggiungere (o potenzialmente rimuovere) padroni di casa, ad esempio, aggiungi "http://example.net" o disattiva la voce "http://example.com/" predefinita.

Ovviamente, posso acquisire tali Intensità registrando un ricevitore di trasmissione dinamico in un'attività in primo piano.

Ma è possibile registrare i nuovi filtri di intent con il sistema dopo l'installazione, in modo che la mia app non debba essere in primo piano per acquisire intenti che corrispondono ai nomi di host appena aggiunti?

risposta

1

Buona domanda.

Non sono sicuro se è possibile, ma vorrei:

a) Prova che cosa succede quando si registra il ricevitore con il metodo registerReceiver() all'interno Context. Forse persiste in qualche modo.

b) Impostare il ricevitore di trasmissione dinamica all'interno di un numero infinito di Service. (Sì, è brutto, lo so)

+0

Il servizio è un'idea interessante; potrebbe essere praticabile Inoltre, dovrebbe essere eseguito solo se l'utente ha effettivamente personalizzato l'elenco di nomi host. –

+0

La soluzione del servizio ha funzionato? –

Problemi correlati