6

デバイスがパスワードでロックされている間、アプリの一部ではないアクティビティを開始できるようにしたいと考えています。可能であれば、どうすればこれを行うことができますか?

注:私は自分の活動getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);の中に入れることをよく知っています. onCreateただし、私は自分のアクティビティを開始しているのではなく、アプリの外部にあるサードパーティのアクティビティを開始しているため、これは機能しません。

4

3 に答える 3

1

関数をオーバーライドする

public void onAttachedToWindow() {

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

これにより、ロック解除後にアクティビティが表示されます。

于 2012-08-08T12:27:34.313 に答える
1

ロック画面でサードパーティのアプリを起動しようとしている場合は機能しません。あなた自身が観察したように、ウィンドウ フラグを設定して、アクティビティがロック画面上で起動されるようにする必要があります。他のサードパーティ アプリからのアクティビティも同じフラグを設定していることを確認する方法はありません。

各機能が別のアプリケーションにすぎない機能バンドルを構築している場合、それらの機能のすべてのエントリ ポイントでこのウィンドウ フラグが設定されていることを確認する必要があります。最善の方法は、作成時に適切なフラグを設定する BaseActivity を宣言し、すべての機能開発チームがこれをエントリ ポイントの基本クラスとして使用できるようにすることです。

于 2012-08-14T09:14:28.067 に答える
1

これは、実際の開発者がonAttachedToWindow()、アプリ内から開こうとしているアクティビティのメソッドをオーバーライドしてコードを記述した場合にのみ可能です。

そうでない場合は、申し訳ありませんが、やろうとしていることを実行するオプションはありません (最近の API に関する限り)。

于 2012-08-14T09:13:19.133 に答える