ロック画面の前にアクティビティを表示したい。onCreateメソッドでこのコードを試しました:
super.onCreate(savedInstanceState);
Window window = getWindow();
window.addFlags(LayoutParams.FLAG_SHOW_WHEN_LOCKED);
setContentView(R.layout.test);
これは、画面全体に表示されるアクティビティには最適ですが、高さが 200px しかないアクティビティを作成したいと考えています。私はそれをこのコードと一致させることができると思いました:
super.onCreate(savedInstanceState);
Window window = getWindow();
LayoutParams layout = new WindowManager.LayoutParams();
layout.copyFrom(window.getAttributes());
layout.height = 200;
window.setAttributes(layout);
window.addFlags(LayoutParams.FLAG_SHOW_WHEN_LOCKED);
setContentView(R.layout.test);
ただし、アクティビティはロック画面の前に表示されません。電話のロックを解除すると、アクティビティが直接表示されます。これを修正する理由と方法はありますか?
編集:ウィンドウのフローティング FLAG と関係があると思います。このフラグが設定されている場合 (サイズを変更すると設定されると思います)、アクティビティはロック画面に表示されません。しかし、これはあくまでも推測です。これを修正するためのアイデアや回避策はありますか?