2012-08-05 5 views
6

Ich möchte eine Aktivität starten können, die nicht Teil meiner App ist, während das Gerät mit einem Kennwort gesperrt ist. Wie könnte ich das machen, wenn es überhaupt möglich ist?Starten Sie externe Aktivitäten, während das Telefon gesperrt ist

Hinweis: Ich bin mir bewusst, getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED); innerhalb der onCreate meiner Tätigkeit setzen. Dies wird jedoch nicht funktionieren, da ich nicht meine eigene Aktivität starte, sondern eine dritte, die außerhalb meiner App ist.

+0

Warum müssen Sie das tun? –

+0

Möchten Sie das Telefon entsperren und die Aktivität anzeigen oder einfach im Hintergrund starten und warten, bis der Benutzer das Telefon entsperrt? – Erol

+0

Das Telefon bleibt gesperrt, da es passwortgeschützt ist. Aber ich möchte die Aktivität im Vordergrund (vor dem Sperrbildschirm) starten – Jakar

Antwort

1

Es wird nicht funktionieren, wenn Sie zu starten versuchen, Drittanbieter-App über Sperrbildschirm. Wie Sie selbst festgestellt haben, müssen Sie die Fensterflagge setzen, um sicherzustellen, dass die Aktivität über den Sperrbildschirm gestartet wird. Es gibt keine Möglichkeit, sicherzustellen, dass die Aktivitäten anderer Apps von Drittanbietern das gleiche Flag setzen.

Wenn Sie ein Feature-Bundle erstellen, bei dem jedes Feature nur eine andere Anwendung ist, müssen Sie sicherstellen, dass alle Eingangspunkte dieses Features dieses Fenster-Flag setzen. Am besten wäre es, eine BaseActivity zu deklarieren, die bei der Erstellung das richtige Flag setzt und das Feature-Dev-Team diese als Basisklasse für Einstiegspunkte verwendet.

1

Übersteuerung die Funktion

public void onAttachedToWindow() { 

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

dies Ihre Aktivität sichtbar nach dem Entriegeln bringen wird.

+0

Wenn ich mich nicht irre, bringt dies meine Aktivität in den Vordergrund, die ich bereits gelöst habe. Sehen Sie die ** Anmerkung ** in meiner Frage. Ich mussActivity auf einer Drittanbieter-App starten und in den Vordergrund (vor dem Sperrbildschirm) bringen. – Jakar

1

Dies ist nur möglich, wenn der Entwickler Code geschrieben hat, indem er die Methode onAttachedToWindow() in der Aktivität überschrieben hat, die Sie in Ihrer App öffnen möchten.

Wenn nicht, dann, sorry zu sagen, aber Sie haben keine Möglichkeit zu tun, was Sie zu tun versuchen (soweit die bisherigen APIs geht)

+0

Gründe für das Downvoting? –