我创建了一个锁屏小部件,可以在对其执行单击时启动自定义活动。此活动显示一些预定义的用户选择的联系人姓名。当用户点击其中一个名称时,我想显示联系人的信息。
由于我在点击联系人显示名称时有联系人ID,因此我使用以下代码使用意图重定向到内置ContactDetailActivity:
Intent intent = new Intent(Intent.ACTION_VIEW);
Uri uri =
Uri.withAppendedPath(
ContactsContract.Contacts.CONTENT_URI, String.valueOf(contactId));
intent.setData(uri);
intent.setFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
问题是我必须解锁屏幕才能看到显示信息的联系活动。我认为这个问题是因为我没有为ContactDetailActivity
指定标记WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED,但是我无法弄清楚该怎么做,也不知道是否可能?
是否有一个简单的手段来达到我的目的。否则,我看到的最后一个解决方案是创建一个行为类似ContactDetailActivity
的自定义活动,以便我可以放置WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
标志。但是,这似乎有点矫枉过正。
答案 0 :(得分:0)
为什么不使用QuickContactBadge
?这里的android有很好的教程如何使用它Android Displaying the Quick Contact Badge
答案 1 :(得分:0)
使用FLAG_DISMISS_KEYGUARD
启动活动时,为什么不关闭键盘锁?