1

ユーザーからの入力のためにアプリケーションをロック画面に表示しようとしていますが、できません

onCreateおよびonAttachToWindowコールバックで次の行を試しましたが、何も問題がないようです。

Window window = getWindow();
window.addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);

私はstackoverflowに関するほとんどの質問をチェックしましたが、それらはすべて上記の解決策を示しています。

許可を使用する必要がありますか、それとも何かが足りませんか。私は根付いた銀河Sに取り組んでいます

4

5 に答える 5

2

アクティビティはダイアログであってはならないことに注意してください。私はマニフェストで定義しました:

<activity
    android:name="TestDialog"
    android:theme="@android:style/Theme.Dialog" >
</activity>

テーマを削除した後、それは機能し、アクティビティは任意のロック画面に表示されました。たぶん、あなたはスタイルの助けを借りてダイアログをシミュレートすることができます@android:style/Theme.Translucent

于 2013-01-06T11:29:01.003 に答える
0

以下に提案された答えも機能していません...私に残された唯一のオプションは、マニフェストでkeygaurdを無効にする権限を追加して使用することです

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

新しい権限を追加したくないのは、アプリケーションが自動更新ではなく手動更新で提供されるためです。:(

于 2012-12-02T05:46:13.987 に答える
0

この問題への答えは

FLAG_SHOW_WHEN_LOCKEDと組み合わせたAndroidのフローティングウィンドウが失敗する

FLAG_SHOW_WHEN_LOCKEDと一緒にフローティングウィンドウを使用することはできません

于 2012-12-02T06:34:10.667 に答える
0

同じ問題が発生しましたが、問題はダイアログのテーマであることが確認できます。属性android:windowIsFloatingは、ロック画面の上部にダイアログが表示されない原因であるようです。その属性はtrue、Holoダイアログテーマで設定されます。

ただし、Holoダイアログテーマを次のような独自のスタイルに派生させる場合:

<style name="ReminderAlarmDialog" parent="@android:style/Theme.Holo.Dialog">
    <item name="android:windowIsFloating">false</item>
</style>

ダイアログアクティビティは、ロック画面の上部に表示されます。唯一の問題:ダイアログが画面全体に表示されるため、見栄えがよくありません。したがって、これは実際の解決策ではなく、ダイアログテーマが機能しない理由の説明にすぎません。

于 2014-11-12T19:26:10.593 に答える
0

setType私は同じ問題に遭遇します、解決策はあなたの活動の線を取り除くことです。(すでに追加している場合)

@Override
public void onAttachedToWindow() {
    super.onAttachedToWindow();
    //getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
}
于 2015-03-13T09:43:26.800 に答える