2014-07-08 71 views
1

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

由于我必须当我点击联系人显示名称联系人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

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

+0

谢谢您的建议。我正在调查你提出的建议,但我不确定'QuickContactBadge'默认有权在锁屏上显示联系信息。一旦我测试过,我会回来。 – Laurent

+0

我试图使用QuickContactBadge,但问题是相同的,当从锁屏活动创建QuickContactBadge时,屏幕必须解锁才能显示弹出式菜单:( – Laurent

0

为什么不启动键盘保护时启动FLAG_DISMISS_KEYGUARD活动?

+0

因为此标志只在键盘不是安全锁keyguard – Laurent

+0

然后,如果你希望安全的lockscreens可用,你将不得不使用'FLAG_SHOW_WHEN_LOCKED'。但是,如果它没有安全的锁屏,它会更好。我不喜欢人窥探我的联系人。意见 – EatHeat

+0

这就是问题所在,我无法控制ContactDetailActivity,这是一个以意图开始的内置Android活动,如果您知道如何为一个以意向开始的活动设置“FLAG_SHOW_WHEN_LOCKED”,请帮助。是显示所有者选择的联系人的信息。因此,隐私在这里不是问题! – Laurent