Désactiver le lock screen sous Windows Phone 7

Posted by & filed under Dev'.

Lockscreen Windows Phone 7
Windows Phone 7 n’est pas multi-tâche (du moins pour les développeurs tiers), ça vous le saviez déjà. Mais disons que vous souhaitez développer une application qui occupe le téléphone un long moment sans interaction de l’utilisateur avec l’écran (ce qui aurait pu être une tâche de fond sous WM6.5 ou Android mais je vais m’éloigner de mon sujet…) : vous allez rencontrer un problème, c’est que le téléphone va se mettre en veille et tombstonner votre application.

Cela peut être fort gênant si vous développez une application de musique (radio), ou vidéo (bien que si vous utilisez MediaElement, les choses ont été bien faites et la lecture d’un média inhibe le lockscreen), ou encore une application de tracking GPS (#ridetracker, projet WP7 à venir sur ce blog).

Sachez que vous pouvez inhiber la veille du téléphone de deux façons :

  • Microsoft.Phone.Shell.PhoneApplicationService.Current.ApplicationIdleDetectionMode = Microsoft.Phone.Shell.IdleDetectionMode.Disabled
    Permet à votre application de ne pas se faire tombstonner quand le téléphone se met en veille, en clair votre application tourne derrière le lockscreen. C’est le comportement le plus proche d’un thread d’arrière plan.
  • Microsoft.Phone.Shell.PhoneApplicationService.Current.UserIdleDetectionMode = Microsoft.Phone.Shell.IdleDetectionMode.Disabled
    Permet de désactiver purement et simplement le lockscreen !

Tant que j’y suis, PhoneApplicationService contient une autre propriété intéressante : Microsoft.Phone.Shell.PhoneApplicationService.Current.StartupMode, qui permet de savoir si vous êtes dans une nouvelle instance de l’application ou bien si vous êtes réssucité d’un état tombstonné.

[English version below]

Read more »

[SL/WP7] Snippet nprop

Posted by & filed under Dev'.


Avouez-le, vous en avez plein vos DataContext, des propriétés bêtes et méchantes qui font appel à une fonction NotifyPropertyChanged. [ Pour ceux du fond près du radiateur, dans une UI Silverlight, l’objet contexte de la page, s’il implémente INotifyPropertyChanged, possède un event PropertyChanged qui permet de signifier à Silverlight que de la valeur d’une propriété à changé et qu’il est temps de mettre à jour les éléments de l’UI attachés à cette propriété. ]

Nativement, dans Visual Studio nous avons à notre disposition prop et propdp, bien utiles dans la vie de tous les jours du développeur Silverlight pour créer propriétés et DependencyProperties sans trop avoir à taper du code purement répétitif. Par contre rien pour les propriétés déclenchant l’évènement PropertyChanged – sans doute car l’implémentation concrète d’INotifyPropertyChanged est laissée au développeur… bien que l’on fasse quasiement tous pareil.

Pour palier à ce manque je vous propose nprop, un snippet venant s’ajouter à votre IDE et qui vous permettra du temps dans vos développements 🙂

Elle s’utilise comme n’importe quel autre snippet, tapez juste nprop puis TAB et le code apparaitra en vous invitant à remplir les trous.

UPDATE : Toujours pas fan du snippet fourni avec MVVM Light, j’ai un petit peu retouché nprop depuis le temps, dont voici la dernière version