2014-07-08 125 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