2010-08-26 12 views
5

Ho scritto un'applicazione Android e il file .APK generato che ho caricato su Android Market. Quindi, un utente può scaricare quell'apk e installarlo nel suo dispositivo. Come posso limitare il mio apk all'avvio, se chiama da un'altra applicazione tramite Intent. Ciò significa che la mia applicazione non dovrebbe rispondere a nessun intento proveniente da altre applicazioni esterne.L'applicazione Android NON dovrebbe essere avviata alla ricezione di Intent

Esiste un modo per limitare il lancio della mia applicazione da intent di un'altra applicazione? Aspetterò una risposta. Grazie in anticipo,

risposta

3

Prova a impostare Android: esportato = "false" a tutte le attività definite a AndroidManifest.xml

Questo è dalla descrizione dell'elemento attività:

Android: esportati o meno l'attività può essere avviata da componenti di altre applicazioni - "true" se può essere, e "false" se non lo è. Se "falso", l'attività può essere avviata solo da componenti della stessa applicazione o applicazioni con lo stesso ID utente. Il valore predefinito dipende dal fatto che l'attività contenga filtri di intent. L'assenza di filtri significa che l'attività può essere invocata solo specificando il suo nome esatto della classe. Ciò implica che l'attività è intesa solo per uso interno all'applicazione (poiché altri non conoscono il nome della classe). Quindi in questo caso, il valore predefinito è "falso". D'altra parte, la presenza di almeno un filtro implica che l'attività è destinata all'uso esterno, quindi il valore predefinito è "true". Questo attributo non è l'unico modo per limitare l'esposizione di un'attività ad altre applicazioni. È inoltre possibile utilizzare un'autorizzazione per limitare le entità esterne che possono richiamare l'attività (consultare l'attributo di autorizzazione).

Anche qui ci sono buoni paragrafi sui permessi dell'applicazione https://developer.android.com/training/articles/security-tips.html Immagino che tu possa usarlo per limitare l'accesso alla tua app.

+2

Tranne che facendo ciò significa che la schermata iniziale non sarà in grado di avviare l'app. – CommonsWare

+0

Sì, se eseguo Android: esportato come vero, la schermata Home non è in grado di avviare l'app. Quindi come devo procedere per raggiungere il mio requisito? Grazie in anticipo –

+0

Leggi le autorizzazioni, che sembra essere il modo più corretto. –

Problemi correlati