2011-04-04 103 views
2

我正在編寫WP7應用程序,即使在屏幕鎖定被激活時也需要播放音樂。我也做了以下情況:如何讓應用程序在屏幕鎖定下工作?

PhoneApplicationService.Current.ApplicationIdleDetectionMode = 
               IdleDetectionMode.Disabled; 

而且我也實現事件如下:

void RootFrame_Obscured(Object sender, ObscuredEventArgs e) 
{ 
    _playunderLock = true; 
} 

void RootFrame_Unobscured(object sender, EventArgs e) 
{ 
    _playunderLock = false; 
} 

但是當明確按下鎖定按鈕我的音樂還是停止!

我錯過了什麼? 此外,當播放音樂時的默認鎖屏沒有得到現在被激活,儘管我還沒有叫

PhoneApplicationService.Current.UserIdleDetectionMode = 
            IdleDetectionMode.Disabled; 
+0

你在哪裏設置ApplicationIdleDetectionMode?一旦它被禁用,它就不能重新啓用,直到下一次應用程序啓動。 – 2011-04-04 14:18:46

+0

是的,我知道。我在我的App()類構造函數中設置它(只是爲了測試)....我的問題是即使當我禁用ApplicationIdleDetection,我的應用程序正在取消激活和音樂;我在玩;正在停止,當我明確地按下鎖定按鈕。 – VichitraVij 2011-04-05 04:43:21

+0

嗨Vichitra,你能寫出你在晦澀難懂的事件中編寫的代碼嗎? – 2011-05-24 05:33:03

回答

2

本博客文章可能有幫助:http://andreassaudemont.com/post/1068697622/useridledetectionmode-and-applicationidledetectionmode。如果您需要應用程序在用戶未與其交互時繼續運行(如收聽backgorund音樂),則需要禁用用戶空閒檢測:PhoneApplicationService.Current.UserIdleDetectionMode = IdleDetectionMode.Disabled;但從您的描述中可以看出,當用戶遇到問題時鎖定屏幕,這是應用程序空閒檢測。所以,我唯一能想到的就是你設置的太早(聽起來很奇怪,我知道!)。在RunKeeper中,我們在App.xaml.cs.的InitializePhoneApplication方法中禁用應用程序空閒檢測(*)。

(*)注意:禁用任何類型的空閒檢測是需要用戶許可的任何操作,因此您還需要將其添加到您的應用程序中。

+0

感謝您的時間。 但我已經閱讀了很多關於空閒檢測的Microsoft文檔。我的問題是,它沒有記錄在案。是否因爲Wp7的任何變化,或者我自己在事件編程中的錯誤.... 另外我想知道除 以外PhoneApplicationService.Current.ApplicationIdleDetectionMode = IdleDetectionMode.Disabled; 我應該做其他事情來阻止我的應用在屏幕鎖定時停用嗎? 有沒有什麼可以在模糊和不可見事件中完成? 感謝您的幫助! – VichitraVij 2011-04-05 04:40:54

+0

我已經擴展了我的答案。希望能幫助到你。 – 2011-04-05 07:08:29

+0

它確實感謝... 我現在已經改變了我的代碼 PhoneApplicationFrame rootframe = App.Current.RootVisual as PhoneApplicationFrame;如果(rootframe!= null) { rootframe.Obscured + = new EventHandler (RootFrame_Obscured); rootframe.Unobscured + = new EventHandler(RootFrame_Unobscured); } 它工作但不可靠。 也許我早點調用它...... jst在默認的InitializePhoneApplication()之後;在應用程序() 再次感謝。 – VichitraVij 2011-04-05 07:35:12

相關問題