Android 在锁屏上显示UI(活动/窗口管理器)&;奥利奥的支持
我的主要目标是在锁屏上显示UI(带有EditText,所以IME支持)(无论是PIN/代码还是简单的锁屏) 我知道WhatsApp应用程序正在这样做(设置>通知>总是显示弹出窗口),所以有一个解决方案 必须从服务初始化UI 该视图是一个简单的文本视图:Android 在锁屏上显示UI(活动/窗口管理器)&;奥利奥的支持,android,android-layout,android-windowmanager,Android,Android Layout,Android Windowmanager,我的主要目标是在锁屏上显示UI(带有EditText,所以IME支持)(无论是PIN/代码还是简单的锁屏) 我知道WhatsApp应用程序正在这样做(设置>通知>总是显示弹出窗口),所以有一个解决方案 必须从服务初始化UI 该视图是一个简单的文本视图: textview = new TextView(this); textview.setText("Hello There!"); textview.setTextColor(ContextCompat.getColor(t
textview = new TextView(this);
textview.setText("Hello There!");
textview.setTextColor(ContextCompat.getColor(this,
android.R.color.white));
textview.setTextSize(32f);
到目前为止,我已经尝试了几种方法:
(为了复制像什么样的应用程序,当屏幕关闭接收器调用时,我正在做所有事情)
- 使用WindowManager
WindowManager参数:
params=新建WindowManager.LayoutParams(
WindowManager.LayoutParams.WRAP_内容,
WindowManager.LayoutParams.WRAP_内容,
WindowManager.LayoutParams.TYPE\u应用程序\u覆盖,
WindowManager.LayoutParams.FLAG\u不可聚焦
|WindowManager.LayoutParams.FLAG_NOT_TOUCH_model
|WindowManager.LayoutParams.FLAG_锁定时显示
|WindowManager.LayoutParams.FLAG\u保持屏幕\u打开
|WindowManager.LayoutParams.FLAG\u打开屏幕
|WindowManager.LayoutParams.FLAG\u WATCH\u Out\u TOUCH,
像素格式(半透明);
params.gravity=gravity.BOTTOM;
参数屏幕亮度=0
Result: TextView is shown only after we unlock the device
- 使用透明活动
活动方式:
符合事实的
@android:彩色/透明
@空的
符合事实的
符合事实的
错误的
此外,还有android:showOnLockScreen=“true”属性
Result: TextView is shown only after we unlock the device
onCreate()
:
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
}
将此添加到活动的onCreate()
:
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
}
不推荐使用锁定时标记“显示”。还有其他选择吗?检查这个@Sagarnayakt链接可以用于活动,但我在一个窗口管理器的内部服务部门工作。所以我不认为我可以在不推荐使用锁定时使用此.FLAG\u SHOW\u。还有其他选择吗?检查这个@Sagarnayakt链接可以用于活动,但我在一个窗口管理器的内部服务部门工作。所以我想我不能用这个。