2012-08-05 7 views
6

Desidero poter avviare un'attività che non fa parte della mia app mentre il dispositivo è protetto da password. Come potrei farlo, se è anche possibile?Avvia attività esterna mentre il telefono è bloccato

Nota: Sono ben consapevole di mettere getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); all'interno del onCreate della mia attività. Ciò non funzionerà, tuttavia, poiché non sto iniziando la mia attività, ma una terza parte esterna alla mia app.

+0

Perché hai bisogno di farlo? –

+0

Vuoi sbloccare il telefono e mostrare l'attività o semplicemente avviarlo in background e attendere fino a quando l'utente sblocca il telefono? – Erol

+0

Il telefono rimarrà bloccato, in quanto protetto da password. Ma voglio lanciare l'attività in primo piano (davanti alla schermata di blocco) – Jakar

risposta

1

Non funzionerà se si sta cercando di lanciare qualsiasi app di terze parti su schermata di blocco. Come hai osservato tu stesso, devi impostare il flag della finestra per assicurarti che l'attività venga lanciata sulla schermata di blocco, non c'è modo di garantire che l'attività di altre app di terze parti stia impostando lo stesso flag.

Nel caso in cui si stia creando un pacchetto di funzionalità in cui ciascuna funzione non è altro che un'applicazione diversa, è necessario assicurarsi che tutti i punti di ingresso di tali funzioni impostino questo flag di finestra. La cosa migliore sarebbe dichiarare una BaseActivity che imposta il flag corretto sulla creazione e lasciare che tutto il team di sviluppo della feature lo usi come classe base per i punti di ingresso.

1

ignorare la funzione

public void onAttachedToWindow() { 

    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); 
    super.onAttachedToWindow(); 
} 

questo porterà la vostra attività visibile dopo lo sblocco.

+0

Se non sbaglio, questo porterà in primo piano la mia attività, che avevo già risolto. Vedi la ** Nota ** nella mia domanda. Devo avviareAttività su un'app di terze parti e portarla in primo piano (davanti alla schermata di blocco). – Jakar

1

Questo è possibile solo se lo sviluppatore effettivo ha scritto codice ignorando il metodo onAttachedToWindow() nell'attività che si sta tentando di aprire dall'interno dell'app.

Se no, allora, mi spiace dirlo, ma non si ha possibilità di fare ciò che si sta cercando di fare (per quanto riguarda le API recenti va)

+0

motivi di downvoting? –

Problemi correlati