来自Lockscreen Activity的ContactDetailActivity

时间:2014-07-08 12:00:18

标签: android android-intent lockscreen

我创建了一个锁屏小部件,可以在对其执行单击时启动自定义活动。此活动显示一些预定义的用户选择的联系人姓名。当用户点击其中一个名称时,我想显示联系人的信息。

由于我在点击联系人显示名称时有联系人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标志。但是,这似乎有点矫枉过正。

2 个答案:

答案 0 :(得分:0)

为什么不使用QuickContactBadge?这里的android有很好的教程如何使用它Android Displaying the Quick Contact Badge

答案 1 :(得分:0)

使用FLAG_DISMISS_KEYGUARD启动活动时,为什么不关闭键盘锁?