Windows Phone : comment rediriger vers les paramètres du téléphone depuis votre app

La philosophie de Windows Phone permet d’interagir avec l’OS sous de nombreuses formes. Parmi celles-ci, le SDK nous donne la possibilité de renvoyer vers les pages des paramètres du téléphone via plusieurs moyens, que l’on développe sous Windows Phone 7 ou 8.

 

Windows Phone 7 et les Launchers

Sous Windows Phone 7, on nous met un Launcher à disposition : ConnectionSettingsTask.
Il s’agit du seul moyen pour rediriger vers les écrans de paramètre suivants : Wifi, Bluetooth, réseau cellulaire et mode avion.

L’utilisation est très simple :

ConnectionSettingsTask connectionSettingsTask = new ConnectionSettingsTask();
connectionSettingsTask.ConnectionSettingsType = ConnectionSettingsType.WiFi;
connectionSettingsTask.Show();

Vous l’aurez compris, il suffit de jouer sur le paramètre ConnectionSettingsType pour rediriger vers l’écran souhaité :

public enum ConnectionSettingsType
{
    WiFi = 0,
    Bluetooth = 1,
    Cellular = 2,
    AirplaneMode = 3,
}
Petite note à part : pour éviter la perpétuelle exception du « Navigation is not allowed when the task is not in the foreground » lorsqu’on lance plusieurs tâches d’affilé, n’oubliez pas d’encadrer d’un try … catch comme suit :
try
{
    connectionSettingsTask.Show();
}
catch { /* Je sais, c'est sale */ }
Plusieurs solutions existent pour pallier à ce soucis, comme par exemple empêcher de cliquer plusieurs fois d’affilé sur le bouton ou bloquer le launcher lorsque vous êtes en train de naviguer (via Page.NavigatingFrom).
Cette solution peut paraître sale, mais elle a le mérite d’être simple et efficace. Voilà qui vous évitera quelques surprises :)

 

Windows Phone 8 et les URI

Sous Windows Phone 8, on a plus de choix puisqu’on peut passer par le nouveau LaunchUriAsync:

Windows.System.Launcher.LaunchUriAsync(new Uri(URI_Scheme));

De nombreuses URI sont à votre disposition, la liste complète se trouvant sur msdn. Pour celles qui nous intéressent (i.e. en rapport avec les paramètres) :

URI Scheme Description
ms-settings-airplanemode: Lance les paramètres du mode Avion
ms-settings-bluetooth: Lance les paramètres Bluetooth
ms-settings-cellular: Lance les paramètres du réseau cellulaire
ms-settings-emailandaccounts: Lance les paramètres email & comptes
ms-settings-location: Lance les paramètres de localisation
ms-settings-lock: Lance les paramètres de l’écran de verrouillage
ms-settings-wifi: Lance les paramètres Wifi
Voici un exemple redirigeant vers les paramètres de l’écran de verrouillage :
Windows.System.Launcher.LaunchUriAsync(new Uri("ms-settings-lock:"));
Les autres URI disponibles sont pour la plupart disponibles sous formes de Launchers. Ceci dit, n’hésitez pas à y jeter un coup d’oeil.

Conclusion

Finalement, souvenez-vous que ces raccourcis existent, ils peuvent grandement améliorer l’expérience utilisateur. Cela leur permettra d’activer/désactiver des paramètres sur lesquels on n’a pas la main depuis l’application.

Par exemple, pensez à proposer un lien direct vers les paramètres Bluetooth si votre app en a besoin et que l’utilisateur ne l’a pas activé.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>