Как сохранить работоспособность приложения в режиме блокировки экрана? - PullRequest
2 голосов
/ 04 апреля 2011

Я пишу приложение 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;

1 Ответ

2 голосов
/ 04 апреля 2011

Эта запись блога может помочь: http://andreassaudemont.com/post/1068697622/useridledetectionmode-and-applicationidledetectionmode. Если вам нужно, чтобы приложение продолжало работать, пока пользователь не взаимодействует с ним (например, слушает музыку backgorund), то вам нужно отключить обнаружение простоя пользователя: 1003 * но из вашего описания звучит так, как будто у вас возникает проблема, когда пользователь блокирует экран, а именно обнаружение простоя приложения. Так что я могу думать только о том, что вы устанавливаете это слишком рано (звучит странно, я знаю!). В RunKeeper мы отключаем обнаружение простоя приложения (*) в методе InitializePhoneApplication в App.xaml.cs.

(*) ПРИМЕЧАНИЕ: Отключение любого режима бездействия - это любое действие, требующее разрешения пользователя, поэтому вам необходимо добавить это и в свое приложение.

...