我想在锁定屏幕中显示不同的通知布局。我正在使用远程视图,我想知道我是否可以从通知创建者类创建两个不同的通知,具体取决于它是否锁定屏幕。
是否存在此标志?
谢谢。
答案 0 :(得分:0)
编辑:也许本教程可以帮助您
http://karanbalkar.com/2014/11/tutorial-90-implement-media-style-notifications-in-android/
旧: 您可以创建具有不同优先级的2个通知,如
中所述http://developer.android.com/design/patterns/notifications.html
并使用锁定屏幕上显示的通知的HIGH优先级。
问题是您要创建仅在锁屏上可见的通知。此功能本身不存在。使用上述解决方案,您将在解锁屏幕中显示两个通知。
你可以听这个答案所示的屏幕锁定:
Android - detect phone unlock event, not screen on
然后你可以解除具有高优先级的通知,只使用带有default-prio的通知,并在必要时更新此通知。
如果您想更好地描述您想要完成的任务,我可以为您提供代码示例
答案 1 :(得分:0)
如果屏幕锁定,您可以使用Settings.System.putString(context.getContentResolver(), Settings.System.NEXT_ALARM_FORMATTED, yourMessage);
来显示通知。
如果屏幕未锁定,则使用
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(this)
.setSmallIcon(R.drawable.ic_launcher) // notification icon
.setContentTitle("Notification!") // title for notification
.setContentText("Hello word") // message for notification
.setAutoCancel(true); // clear notification after click
Intent intent = new Intent(this, MainActivity.class);
PendingIntent pi = PendingIntent.getActivity(this,0,intent,Intent.FLAG_ACTIVITY_NEW_TASK);
mBuilder.setContentIntent(pi);
NotificationManager mNotificationManager =
(NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mNotificationManager.notify(0, mBuilder.build());
现在您可以显示通知。并且您检测到您的屏幕已被锁定,那么您可以使用此代码
KeyguardManager km = (KeyguardManager) getSystemService(Context.KEYGUARD_SERVICE);
boolean locked = km.inKeyguardRestrictedInputMode();
享受您的代码:)