7

私のアプリは、ロック画面の前にユーザーにダイアログ ボックスを表示します。これは、DialogFragments を含む単純なアクティビティです (このアプリは 2.2 以降で実行されるため、サポート ライブラリから)。

これらのダイアログを表示する実際のアクティビティは、Android の標準ではフローティング ウィンドウではなかったため、

getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);

うまくいきました。

ただし、代わりにダイアログのようなアクティビティを使用することを考えていました。ただし、すべての Dialog テーマ (Holo など) には、次の項目があります。

<item name="android:windowIsFloating">true</item>

これにより、何らかの理由でウィンドウ フラグが完全に無視されます。興味深いことに、ユーザーが画面のロックを解除すると、Activity が表示されます。

なぜそうなるのか、回避方法はありますか?

4

1 に答える 1

4

同じ問題に苦しんでいます。この問題で機能しているように見える唯一のことは

KeyguardManager  myKeyGuard = (KeyguardManager)getSystemService(Context.KEYGUARD_SERVICE);
myLock = myKeyGuard.newKeyguardLock("tagName");
myLock.disableKeyguard(); 

マニフェストでキーガードのアクセス許可を使用することを忘れないでください。

<uses-permission android:name = "android.permission.DISABLE_KEYGUARD"/>
于 2012-12-02T06:31:29.950 に答える