我如何与锁屏布局进行交互以显示文本,就像这个应用程序一样:

我刚刚发现了这个应用程序: https : //market.android.com/details?id=de.j4velin.lockscreenCalendar

现在似乎可以在通常写入报警的地方在锁屏内写入一些文本。

我想在这个地方显示自定义文本,但完全不知道如何实现这一点。

这家伙成功地在这个地方写日历活动。

任何线索都会帮助我,谢谢。

在这里输入图像说明

Solutions Collecting From Web of "我如何与锁屏布局进行交互以显示文本,就像这个应用程序一样:"

这是惊人的容易实现和令人惊讶的logging不好。 您只需在系统设置中设置警报string,如下所示:

String message = "This is a test"; Settings.System.putString(context.getContentResolver(), Settings.System.NEXT_ALARM_FORMATTED, message); 

这不是你要求的确切的东西,但自定义锁屏的代码可以在这里find。它可以帮助你。

http://code.google.com/p/contactowner/

我从来没有在公共android API中使用任何合法的方式来影响锁屏。 我根本不知道该怎么玩这个应用程序,但是我的猜测是他创build了一个允许他展示他想要的任何文本的活动。 然后使用接收器来侦听SCREEN_OFF或SCREEN_ON事件,并在那个时候开始他的“locking”活动。

值得注意的是,如果您select这样做来实现您所追求的效果,则不会像locking屏幕那样运行。 这些差异可能会相当小,最终可能适合您的目的,但请注意它们在那里。 另外假设你走这条路线,如果用户有一个“模式”locking,那么KeyguardManager无法以编程方式禁用该屏幕

你也需要添加

  <uses-permission android:name="android.permission.WRITE_SETTINGS"/> 

在androidmanifest.xml中

投票答案只有在没有其他人使用相同的方式来显示他们的消息时才有效。 如果两个接收机注册了SCREEN_ON / OFF intent动作,则会显示最新的接收机信息。

使用marc1s的解决scheme有两个问题,1.它看起来不好,你不能改变它的外观和填充,例如文本字体或颜色等2.任何其他应用程序可以取代它

所以如果你使用窗口pipe理器来显示一个视图,那么它更好。 所以你可以显示任何你想要显示的视图。

例如我的服务onStartCommand下面的代码

 WindowManager mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE); View mView = mInflater.inflate(R.layout.score, null); WindowManager.LayoutParams mLayoutParams = new WindowManager.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT, 0, 0, WindowManager.LayoutParams.TYPE_SYSTEM_OVERLAY, 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); mWindowManager.addView(mView, mLayoutParams);