drk*_*drk 4 keyboard android lockscreen android-6.0-marshmallow
我遇到了 Android 6.0 的问题。Marshmallow 从官方 Nexus 工厂固件映像站点 ( https://developers.google.com/android/nexus/images )加载到 Nexus 6 。
我有一个应用程序,我使用 AlarmManager 启动一个禁用键盘保护的活动,因此即使手机被锁定(就像闹钟应用程序那样),该活动也可以看到。在此活动中,如果用户单击按钮,则会打开一个对话框,用户应在其中键入 EditText 视图。当对话框显示或用户单击 EditText 时,它应该打开键盘。这一直工作到现在,似乎在我的 Nexus 6 上除 6.0 之外的每个操作系统版本上都有效。
我怀疑原因是 Activity 启动时手机被锁定,就好像我在手机解锁时启动 Activity 然后键盘显示完美一样。这似乎只发生在 6.0 上。
任何人都可以确认这一点,或者让我知道 6.0 中是否发生了我不知道的变化?
谢谢。
最后我找到了一个可行的解决方案。对话框窗口似乎在棉花糖中有自己的标志,必须下注。我在 AlertDialog 中这样做:
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("My Title");
// Add other stuff for AlertDialog here
AlertDialog alertDialog = builder.create();
alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
alertDialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
alertDialog.show();
Run Code Online (Sandbox Code Playgroud)
对于我,PreferenceActivity我必须扩展EditTextPreference以解决问题,然后使用myappname.TextPref而不是EditTextPreference在 XML 配置文件中。
class TextPref extends EditTextPreference {
public TextPref(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void showDialog(Bundle state) {
super.showDialog(state);
Dialog dialog = getDialog();
dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
dialog.getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1829 次 |
| 最近记录: |