在最新版本的Android应用上,Facebook显示了锁屏通知功能,就像这张截图:
有没有人试图实现这一点?
我知道在锁定屏幕上显示活动是很简单的,但不幸的是,它不能与半透明的背景工作。基本上它是工作的,但在我们的活动下面,我们看到的是启动器屏幕,而不是锁定屏幕(就像锁定屏幕在这种情况下也是透明的)。
getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON);
@android:style/Theme.Translucent.NoTitleBar
<uses-permission android:name="android.permission.DISABLE_KEYGUARD" />
另外,我注意到锁屏通知获取触摸,所以我们不能通过手势显示来自statusbar的通知。
在Android L发布之前,有什么想法可以创建这样的通知。
实际上,ferdy182
是在做什么。
以下是我使用android.permission.system_alert_window
获得的信息:
因此,我不能使用activity
来完成此操作。就是不行。我必须实现一个服务
,该服务使用WindowManager
添加了一个视图
。
public class MyService extends Service {
View mView;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
// instance of WindowManager
WindowManager mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
LayoutInflater mInflater = (LayoutInflater)
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
// inflate required layout file
mView = mInflater.inflate(R.layout.abc, null);
// attach OnClickListener
mView.findViewById(R.id.some_id).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// you can fire an Intent accordingly - to deal with the click event
// stop the service - this also removes `mView` from the window
// because onDestroy() is called - that's where we remove `mView`
stopSelf();
}
});
// the LayoutParams for `mView`
// main attraction here is `TYPE_SYSTEM_ERROR`
// as you noted above, `TYPE_SYSTEM_ALERT` does not work on the lockscreen
// `TYPE_SYSTEM_OVERLAY` works very well but is focusable - no click events
// `TYPE_SYSTEM_ERROR` supports all these requirements
WindowManager.LayoutParams mLayoutParams = new WindowManager.LayoutParams(
ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT, 0, 0,
WindowManager.LayoutParams.TYPE_SYSTEM_ERROR,
WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
| WindowManager.LayoutParams.FLAG_DISMISS_KEYGUARD
| WindowManager.LayoutParams.FLAG_TURN_SCREEN_ON
| WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON,
PixelFormat.RGBA_8888);
// finally, add the view to window
mWindowManager.addView(mView, mLayoutParams);
}
@Override
public void onDestroy() {
super.onDestroy();
// remove `mView` from the window
removeViewFromWindow();
}
// Removes `mView` from the window
public void removeNow() {
if (mView != null) {
WindowManager wm = (WindowManager) getSystemService(WINDOW_SERVICE);
wm.removeView(mView);
}
}
}
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
我在开发一个应用程序,我不能收到通知时,电话锁定的FCM。 我使用了firebase和Awesome通知插件来显示通知。 有人能帮帮我吗,我困在这里谢谢
我正在编写一个应用程序来管理或自定义Android设备的解锁屏幕。它的工作原理如下: 用户使用电源按钮锁定屏幕。 用户尝试解锁屏幕,从而再次按下电源按钮 我的活动弹出--屏幕仍然锁定 用户回答问题,如果答案正确,屏幕解锁 我已经为第三步创建了一个活动,并将以下代码添加到其方法中: 这工作正常,完全符合我的期望。我的问题是第四步。我已经搜索并找到了许多解决方案,但没有一个适合我。 如何以编程方式锁定
我开发了一个自定义的锁屏应用程序。基本上,当屏幕关闭时,应用程序将启动并解锁股票锁定屏幕,然后当屏幕打开时,用户将看到我的自定义锁定屏幕。到目前为止工作得很好,直到最近我发现,有时当我按下主页按钮时,屏幕会快速闪烁一次,当这种情况发生时,它会使我的自定义锁屏失败。当屏幕打开时,股票锁定屏幕将出现,我的自定义锁定屏幕只有在用户解锁股票锁定屏幕后才会显示。有人知道这个问题吗?或者任何建议?提前感谢。
我正在UWP建立音乐播放器。当窗口解锁时,toasted通知上的操作按钮正常工作。当我锁定屏幕,点击动作按钮,然后什么都没有发生。应用程序将处于暂停状态,没有中断点被击中。 我如何使我的应用程序运行,即使windows被锁定从应用程序接收事件?
我试图使一个登录屏幕类似于锁定屏幕与4 TextField。我面临的问题是如何将焦点从一个文本字段切换到下一个文本字段。 当我说时,firstTextField的值被复制到secondTextField 我使用的是十进制键盘类型 } 我如何才能正确地做到这一点,任何帮助和建议请。
本文向大家介绍Android编程实现禁止系统锁屏与解锁亮屏的方法,包括了Android编程实现禁止系统锁屏与解锁亮屏的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android编程实现禁止系统锁屏与解锁亮屏的方法。分享给大家供大家参考,具体如下: 需求: 某个时刻任务执行完毕,关闭屏幕,某时刻再开启屏幕继续执行任务 通常情况下,不设置屏幕常亮,系统会自动锁屏,锁屏后不能从代码解锁(