<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Nokia Developer Blog</title>
	<atom:link href="http://www.nokiadevblog.fr/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.nokiadevblog.fr</link>
	<description>Nokia Developer Blog</description>
	<lastBuildDate>Wed, 15 May 2013 14:30:05 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
		<item>
		<title>Nouveautés du SDK – Maps</title>
		<link>http://www.nokiadevblog.fr/2013/05/nouveautes-du-sdk-maps/</link>
		<comments>http://www.nokiadevblog.fr/2013/05/nouveautes-du-sdk-maps/#comments</comments>
		<pubDate>Wed, 15 May 2013 14:30:05 +0000</pubDate>
		<dc:creator>Victor</dc:creator>
				<category><![CDATA[Développer]]></category>
		<category><![CDATA[Windows Phone]]></category>

		<guid isPermaLink="false">http://www.nokiadevblog.fr/?p=2253</guid>
		<description><![CDATA[Suite&#160;au partenariat avec Microsoft, Nokia a donné lieu à un nouveau contrôle de leur&#160;carte dans Windows Phone 8. Dans WP7, les commandes de Bing Maps étaient disponibles dans un SDK tiers. Toutefois, le contrôle Bing Maps avait peu de données cartographiques, était lent, et avait quelques fonctionnalités manquantes. Le nouveau contrôle est une carte entièrement&#160;alimentée [...]]]></description>
				<content:encoded><![CDATA[<p><span style="text-align: justify;">Suite&nbsp;au partenariat avec Microsoft, Nokia a donné lieu à un nouveau contrôle de leur&nbsp;carte dans Windows Phone 8. Dans WP7, les commandes de Bing Maps étaient disponibles dans un SDK tiers. Toutefois, le contrôle Bing Maps avait peu de données cartographiques, était lent, et avait quelques fonctionnalités manquantes. Le nouveau contrôle est une carte entièrement&nbsp;alimentée par des données Nokia Maps et est incroyablement rapide car il fait partie intégrante de l&rsquo;OS. La différence la plus impressionnante avec le contrôle Bing Maps WP7 et c&rsquo;est que&nbsp;le contrôle Nokia Maps utilise le contenu vectoriel et non des tuiles en bitmap. Le zoom avant et arrière est maintenant lisse et n&rsquo;a plus ce visuel gênant de pixellisation ou de retard d&rsquo;affichage&nbsp;pendant le chargement des tuiles.</span></p>
<p><span id="more-2253"></span></p>
<p style="text-align: justify;">Voici un exemple d&rsquo;une commande de la carte de base et de l&rsquo;autorisation nécessaire pour l&rsquo;activer:</p>
<blockquote><p><!--DEVFMTCODE--><pre class="devcodeblock" title="XML"><div class="devcodeoverflow"><ol><li><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Capability</span> <span style="color: #000066;">Name</span>=<span style="color: #ff0000;">&quot;ID_CAP_MAP&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span></li><li><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;maps:Map</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span></li></ol></div></pre><!--END_DEVFMTCODE--></p></blockquote>
<p><img class="aligncenter" alt="" src="http://www.developer.nokia.com/Community/Wiki/images/7/7f/WhatsNewWP8_30_BasicMapControl.png?20121030191020" width="411" height="215" /></p>
<h2 style="text-align: justify;">Les nombreuses nouvelles fonctionnalités des Maps.</h2>
<p style="text-align: justify;">Les contrôles de Nokia Maps apportent de nombreuses nouvelles fonctionnalités, seuls certaines sont expliquées ici. L&rsquo;utilisation de&nbsp;la propriété Center vous définit la géolocalisation du contrôle de la carte. Grace à la fonction Zoom, il&nbsp;est possible de zoomer sur la carte à l&rsquo;intérieur et l&rsquo;extérieur de la vue. La propriété Heading permet de pivoter les dalles autour de son centre. La propriété Pitch&nbsp;change l&rsquo;élévation de la carte par rapport à l&rsquo;horizon. Il est possible de changer le type de carte affichée par la mise en CartographicMode (Road, Terrain, Aerial, ou Hybrid). La propriété ColorMode peut être réglée sur light (pour conduite de jour) ou noir (pour la conduite de nuit). Il est possible d&rsquo;ajouter des points de repère en 3D en utilisant LandmarksEnabled. Il est également possible d&rsquo;ajouter des fonctionnalités de terrain utiles pour les piétons (comme les escaliers) à l&rsquo;aide de PedestrianFeaturesEnabled. Ce code définit l&rsquo;ensemble de ces fonctionnalités pour un contrôle de la carte :</p>
<blockquote><p><!--DEVFMTCODE--><pre class="devcodeblock" title="XML"><div class="devcodeoverflow"><ol><li><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;maps:Map</span></span></li><li><span style="color: #009900;">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000066;">x:Name</span>=<span style="color: #ff0000;">&quot;myMap&quot;</span></span></li><li><span style="color: #009900;">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000066;">Center</span>=<span style="color: #ff0000;">&quot;37.792878,-122.39641&quot;</span></span></li><li><span style="color: #009900;">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000066;">ZoomLevel</span>=<span style="color: #ff0000;">&quot;17&quot;</span></span></li><li><span style="color: #009900;">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000066;">Heading</span>=<span style="color: #ff0000;">&quot;45&quot;</span></span></li><li><span style="color: #009900;">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000066;">Pitch</span>=<span style="color: #ff0000;">&quot;25&quot;</span></span></li><li><span style="color: #009900;">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000066;">CartographicMode</span>=<span style="color: #ff0000;">&quot;Road&quot;</span></span></li><li><span style="color: #009900;">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000066;">ColorMode</span>=<span style="color: #ff0000;">&quot;Dark&quot;</span></span></li><li><span style="color: #009900;">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000066;">PedestrianFeaturesEnabled</span>=<span style="color: #ff0000;">&quot;True&quot;</span></span></li><li><span style="color: #009900;">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000066;">LandmarksEnabled</span>=<span style="color: #ff0000;">&quot;True&quot;</span></span></li><li><span style="color: #009900;">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000000; font-weight: bold;">/&gt;</span></span></li></ol></div></pre><!--END_DEVFMTCODE--></p></blockquote>
<p style="text-align: justify;">Donnant l&rsquo;affichage de la carte ci-dessous :</p>
<p style="text-align: center;"><a href="http://www.nokiadevblog.fr/wp-content/uploads/2013/02/WhatsNewWP8_31_MapControl_with_many_features_enabled.png"><img class="size-large wp-image-2379 aligncenter" alt="WhatsNewWP8_31_MapControl_with_many_features_enabled" src="http://www.nokiadevblog.fr/wp-content/uploads/2013/02/WhatsNewWP8_31_MapControl_with_many_features_enabled-650x552.png" width="650" height="552" /></a></p>
<h2 style="text-align: justify;">Les couches des Maps</h2>
<p style="text-align: justify;">Il est possible d&rsquo;ajouter facilement des surcouches&nbsp;à vos cartes à l&rsquo;aide d&rsquo;un élément XAML avec GeoCoordinates et le contrôle Maps placera ces éléments à l&rsquo;emplacement approprié. Avec ce code, vous pouvez ajouter un point rouge devant le bâtiment de San Francisco Ferry:</p>
<div class="mw-geshi" dir="ltr" style="text-align: left;">
<div class="csharp source-csharp">
<blockquote><p><!--DEVFMTCODE--><pre class="devcodeblock" title="C#"><div class="devcodeoverflow"><ol><li>myMap<span style="color: #008000;">.</span><span style="color: #0000FF;">Layers</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Add</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">new</span> MapLayer<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span></li><li><span style="color: #008000;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000;">new</span> MapOverlay<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GeoCoordinate <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> GeoCoordinate<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">37.795032</span>,<span style="color: #008000;">-</span><span style="color: #FF0000;">122.394927</span><span style="color: #008000;">&#41;</span>,</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Content <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> Ellipse</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Fill <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> SolidColorBrush<span style="color: #008000;">&#40;</span>Colors<span style="color: #008000;">.</span><span style="color: #0000FF;">Red</span><span style="color: #008000;">&#41;</span>,</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Width <span style="color: #008000;">=</span> <span style="color: #FF0000;">40</span>,</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Height <span style="color: #008000;">=</span> <span style="color: #FF0000;">40</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000;">&#125;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000;">&#125;</span></li><li><span style="color: #008000;">&#125;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li></li></ol></div></pre><!--END_DEVFMTCODE--></p></blockquote>
<p style="text-align: justify;">Le point est alors affichée indépendamment de la rotation ou du centre de la carte.</p>
<p><img class="alignnone aligncenter" alt="" src="http://www.developer.nokia.com/Community/Wiki/images/6/6b/WhatsNewWP8_32_MapControl_DotOverlay1.png?20121030182814" width="215" height="409" /><img class="alignnone aligncenter" alt="" src="http://www.developer.nokia.com/Community/Wiki/images/d/db/WhatsNewWP8_33_MapControl_DotOverlay1.png?20121030182738" width="215" height="409" /></p>
<h2 style="text-align: justify;">Le guidage</h2>
<p style="text-align: justify;">Une autre grande caractéristique de la carte est la capacité d&rsquo;ajouter des routes pour le contrôle. Par exemple, vous pouvez ajouter un itinéraire à partir du bâtiment de San Francisco Ferry à la Transamerica Pyramid. Cela se fait en définissant un RouteQuery qui s&rsquo;exécute sur le serveur et une fois qu&rsquo;il est prêt, vous l&rsquo;ajoutez à la commande de la carte. Une chose à noter est que le TravelMode soutient la création d&rsquo;itinéraires en voiture ou à pied.</p>
<blockquote><p><!--DEVFMTCODE--><pre class="devcodeblock" title="C#"><div class="devcodeoverflow"><ol><li><span style="color: #0600FF; font-weight: bold;">public</span> Maps_Routing<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span></li><li><span style="color: #008000;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;InitializeComponent<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;RouteQuery query <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> RouteQuery<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TravelMode <span style="color: #008000;">=</span> TravelMode<span style="color: #008000;">.</span><span style="color: #0000FF;">Driving</span>,</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Waypoints <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> List<span style="color: #008000;">&lt;</span>GeoCoordinate<span style="color: #008000;">&gt;</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000;">new</span> GeoCoordinate<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">37.79547</span>,<span style="color: #008000;">-</span><span style="color: #FF0000;">122.393129</span><span style="color: #008000;">&#41;</span>, <span style="color: #008080; font-style: italic;">// ferry building</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000;">new</span> GeoCoordinate<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">37.794911</span>,<span style="color: #008000;">-</span><span style="color: #FF0000;">122.402871</span><span style="color: #008000;">&#41;</span> <span style="color: #008080; font-style: italic;">// Transamerica Pyramid</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000;">&#125;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000;">&#125;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;query<span style="color: #008000;">.</span><span style="color: #0000FF;">QueryCompleted</span> <span style="color: #008000;">+=</span> query_QueryCompleted<span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;query<span style="color: #008000;">.</span><span style="color: #0000FF;">QueryAsync</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li><span style="color: #008000;">&#125;</span></li><li>&nbsp;</li><li><span style="color: #6666cc; font-weight: bold;">void</span> query_QueryCompleted<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">object</span> sender, QueryCompletedEventArgs<span style="color: #008000;">&lt;</span>Route<span style="color: #008000;">&gt;</span> e<span style="color: #008000;">&#41;</span></li><li><span style="color: #008000;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;myMap<span style="color: #008000;">.</span><span style="color: #0000FF;">AddRoute</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">new</span> MapRoute<span style="color: #008000;">&#40;</span>e<span style="color: #008000;">.</span><span style="color: #0000FF;">Result</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li><span style="color: #008000;">&#125;</span></li></ol></div></pre><!--END_DEVFMTCODE--></p></blockquote>
<p style="text-align: justify;">Ce code entraîne l&rsquo;itinéraire suivant entre le Ferry Building et la Transamerica Pyramid représenté comme ci-dessous:</p>
<p style="text-align: center;"><img class="aligncenter" alt="" src="http://www.developer.nokia.com/Community/Wiki/images/9/93/WhatsNewWP8_34_MapControl_Route_between_Ferry_Building_and_Transamerica_Pyramid.png?20121030182501" width="214" height="409" /></p>
<p style="text-align: justify;">Vous pouvez même obtenir les instructions brutes pour cette voie et les afficher à l&rsquo;utilisateur indépendamment du contrôle de la carte.</p>
<blockquote><p><!--DEVFMTCODE--><pre class="devcodeblock" title="C#"><div class="devcodeoverflow"><ol><li><span style="color: #6666cc; font-weight: bold;">void</span> query_QueryCompleted<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">object</span> sender, QueryCompletedEventArgs<span style="color: #008000;">&lt;</span>Route<span style="color: #008000;">&gt;</span> e<span style="color: #008000;">&#41;</span></li><li><span style="color: #008000;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;myMap<span style="color: #008000;">.</span><span style="color: #0000FF;">AddRoute</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">new</span> MapRoute<span style="color: #008000;">&#40;</span>e<span style="color: #008000;">.</span><span style="color: #0000FF;">Result</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;StringBuilder sb <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> StringBuilder<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;sb<span style="color: #008000;">.</span><span style="color: #0000FF;">AppendLine</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Distance to destination: &quot;</span> <span style="color: #008000;">+</span> e<span style="color: #008000;">.</span><span style="color: #0000FF;">Result</span><span style="color: #008000;">.</span><span style="color: #0000FF;">LengthInMeters</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;sb<span style="color: #008000;">.</span><span style="color: #0000FF;">AppendLine</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Time to destination: &quot;</span> <span style="color: #008000;">+</span> e<span style="color: #008000;">.</span><span style="color: #0000FF;">Result</span><span style="color: #008000;">.</span><span style="color: #0000FF;">EstimatedDuration</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0600FF; font-weight: bold;">foreach</span> <span style="color: #008000;">&#40;</span>var maneuver <span style="color: #0600FF; font-weight: bold;">in</span> e<span style="color: #008000;">.</span><span style="color: #0000FF;">Result</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Legs</span><span style="color: #008000;">.</span><span style="color: #0000FF;">SelectMany</span><span style="color: #008000;">&#40;</span>l <span style="color: #008000;">=&gt;</span> l<span style="color: #008000;">.</span><span style="color: #0000FF;">Maneuvers</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb<span style="color: #008000;">.</span><span style="color: #0000FF;">AppendLine</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;At &quot;</span> <span style="color: #008000;">+</span> maneuver<span style="color: #008000;">.</span><span style="color: #0000FF;">StartGeoCoordinate</span> <span style="color: #008000;">+</span> <span style="color: #666666;">&quot; &quot;</span> <span style="color: #008000;">+</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maneuver<span style="color: #008000;">.</span><span style="color: #0000FF;">InstructionKind</span> <span style="color: #008000;">+</span> <span style="color: #666666;">&quot;: &quot;</span> <span style="color: #008000;">+</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maneuver<span style="color: #008000;">.</span><span style="color: #0000FF;">InstructionText</span> <span style="color: #008000;">+</span> <span style="color: #666666;">&quot; for &quot;</span> <span style="color: #008000;">+</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;maneuver<span style="color: #008000;">.</span><span style="color: #0000FF;">LengthInMeters</span> <span style="color: #008000;">+</span> <span style="color: #666666;">&quot; meters&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000;">&#125;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp; MessageBox<span style="color: #008000;">.</span><span style="color: #0000FF;">Show</span><span style="color: #008000;">&#40;</span>sb<span style="color: #008000;">.</span><span style="color: #0000FF;">ToString</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li><span style="color: #008000;">&#125;</span></li></ol></div></pre><!--END_DEVFMTCODE--></p></blockquote>
<p style="text-align: justify;">Vous pouvez voir, ci-dessous, que vous avez toutes les données nécessaires pour construire notre propre application de navigation.</p>
<p style="text-align: center;"><img class="aligncenter" alt="" src="http://www.developer.nokia.com/Community/Wiki/images/2/21/WhatsNewWP8_35_MapControl_InformationNeededToBuildNavigationApp.png?20121030182632" width="214" height="409" /></p>
<h2 style="text-align: justify;">Le géocodage</h2>
<p style="text-align: justify;">L&rsquo;exemple de guidage montre qu&rsquo;il est possible d&rsquo;utiliser les nouveaux services Maps sans l&rsquo;aide de la commande Maps. Il existe aussi le service de géocodage. Le géocodage est la capacité à transformer une chaîne en geocoordinates potentielles et les données de géolocalisation autres. Ce code montre l&rsquo;utilisation de la recherche pour le bâtiment de San Francisco Ferry :</p>
<blockquote><p><!--DEVFMTCODE--><pre class="devcodeblock" title="C#"><div class="devcodeoverflow"><ol><li><span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #6666cc; font-weight: bold;">void</span> Maps_GeoCoding<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">object</span> sender, RoutedEventArgs e<span style="color: #008000;">&#41;</span></li><li><span style="color: #008000;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;GeocodeQuery query <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> GeocodeQuery<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GeoCoordinate <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> GeoCoordinate<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">0</span>, <span style="color: #FF0000;">0</span><span style="color: #008000;">&#41;</span>,</li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SearchTerm <span style="color: #008000;">=</span> <span style="color: #666666;">&quot;Ferry Building, San-Francisco&quot;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000;">&#125;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;query<span style="color: #008000;">.</span><span style="color: #0000FF;">QueryCompleted</span> <span style="color: #008000;">+=</span> query_QueryCompleted<span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;query<span style="color: #008000;">.</span><span style="color: #0000FF;">QueryAsync</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li><span style="color: #008000;">&#125;</span></li><li>&nbsp;</li><li><span style="color: #6666cc; font-weight: bold;">void</span> query_QueryCompleted<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">object</span> sender, QueryCompletedEventArgs<span style="color: #008000;">&lt;</span>IList<span style="color: #008000;">&lt;</span>MapLocation<span style="color: #008000;">&gt;&gt;</span> e<span style="color: #008000;">&#41;</span></li><li><span style="color: #008000;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;StringBuilder sb <span style="color: #008000;">=</span> <span style="color: #008000;">new</span> StringBuilder<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;sb<span style="color: #008000;">.</span><span style="color: #0000FF;">AppendLine</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Ferry Building Geocoding results...&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0600FF; font-weight: bold;">foreach</span> <span style="color: #008000;">&#40;</span>var item <span style="color: #0600FF; font-weight: bold;">in</span> e<span style="color: #008000;">.</span><span style="color: #0000FF;">Result</span><span style="color: #008000;">&#41;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000;">&#123;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb<span style="color: #008000;">.</span><span style="color: #0000FF;">AppendLine</span><span style="color: #008000;">&#40;</span>item<span style="color: #008000;">.</span><span style="color: #0000FF;">GeoCoordinate</span><span style="color: #008000;">.</span><span style="color: #0000FF;">ToString</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb<span style="color: #008000;">.</span><span style="color: #0000FF;">AppendLine</span><span style="color: #008000;">&#40;</span>item<span style="color: #008000;">.</span><span style="color: #0000FF;">Information</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Name</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb<span style="color: #008000;">.</span><span style="color: #0000FF;">AppendLine</span><span style="color: #008000;">&#40;</span>item<span style="color: #008000;">.</span><span style="color: #0000FF;">Information</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Description</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb<span style="color: #008000;">.</span><span style="color: #0000FF;">AppendLine</span><span style="color: #008000;">&#40;</span>item<span style="color: #008000;">.</span><span style="color: #0000FF;">Information</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Address</span><span style="color: #008000;">.</span><span style="color: #0000FF;">BuildingFloor</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb<span style="color: #008000;">.</span><span style="color: #0000FF;">AppendLine</span><span style="color: #008000;">&#40;</span>item<span style="color: #008000;">.</span><span style="color: #0000FF;">Information</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Address</span><span style="color: #008000;">.</span><span style="color: #0000FF;">BuildingName</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb<span style="color: #008000;">.</span><span style="color: #0000FF;">AppendLine</span><span style="color: #008000;">&#40;</span>item<span style="color: #008000;">.</span><span style="color: #0000FF;">Information</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Address</span><span style="color: #008000;">.</span><span style="color: #0000FF;">BuildingRoom</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb<span style="color: #008000;">.</span><span style="color: #0000FF;">AppendLine</span><span style="color: #008000;">&#40;</span>item<span style="color: #008000;">.</span><span style="color: #0000FF;">Information</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Address</span><span style="color: #008000;">.</span><span style="color: #0000FF;">BuildingZone</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb<span style="color: #008000;">.</span><span style="color: #0000FF;">AppendLine</span><span style="color: #008000;">&#40;</span>item<span style="color: #008000;">.</span><span style="color: #0000FF;">Information</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Address</span><span style="color: #008000;">.</span><span style="color: #0000FF;">City</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb<span style="color: #008000;">.</span><span style="color: #0000FF;">AppendLine</span><span style="color: #008000;">&#40;</span>item<span style="color: #008000;">.</span><span style="color: #0000FF;">Information</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Address</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Continent</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb<span style="color: #008000;">.</span><span style="color: #0000FF;">AppendLine</span><span style="color: #008000;">&#40;</span>item<span style="color: #008000;">.</span><span style="color: #0000FF;">Information</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Address</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Country</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb<span style="color: #008000;">.</span><span style="color: #0000FF;">AppendLine</span><span style="color: #008000;">&#40;</span>item<span style="color: #008000;">.</span><span style="color: #0000FF;">Information</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Address</span><span style="color: #008000;">.</span><span style="color: #0000FF;">CountryCode</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb<span style="color: #008000;">.</span><span style="color: #0000FF;">AppendLine</span><span style="color: #008000;">&#40;</span>item<span style="color: #008000;">.</span><span style="color: #0000FF;">Information</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Address</span><span style="color: #008000;">.</span><span style="color: #0000FF;">County</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb<span style="color: #008000;">.</span><span style="color: #0000FF;">AppendLine</span><span style="color: #008000;">&#40;</span>item<span style="color: #008000;">.</span><span style="color: #0000FF;">Information</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Address</span><span style="color: #008000;">.</span><span style="color: #0000FF;">District</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb<span style="color: #008000;">.</span><span style="color: #0000FF;">AppendLine</span><span style="color: #008000;">&#40;</span>item<span style="color: #008000;">.</span><span style="color: #0000FF;">Information</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Address</span><span style="color: #008000;">.</span><span style="color: #0000FF;">HouseNumber</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb<span style="color: #008000;">.</span><span style="color: #0000FF;">AppendLine</span><span style="color: #008000;">&#40;</span>item<span style="color: #008000;">.</span><span style="color: #0000FF;">Information</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Address</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Neighborhood</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb<span style="color: #008000;">.</span><span style="color: #0000FF;">AppendLine</span><span style="color: #008000;">&#40;</span>item<span style="color: #008000;">.</span><span style="color: #0000FF;">Information</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Address</span><span style="color: #008000;">.</span><span style="color: #0000FF;">PostalCode</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb<span style="color: #008000;">.</span><span style="color: #0000FF;">AppendLine</span><span style="color: #008000;">&#40;</span>item<span style="color: #008000;">.</span><span style="color: #0000FF;">Information</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Address</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Province</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb<span style="color: #008000;">.</span><span style="color: #0000FF;">AppendLine</span><span style="color: #008000;">&#40;</span>item<span style="color: #008000;">.</span><span style="color: #0000FF;">Information</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Address</span><span style="color: #008000;">.</span><span style="color: #0000FF;">State</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb<span style="color: #008000;">.</span><span style="color: #0000FF;">AppendLine</span><span style="color: #008000;">&#40;</span>item<span style="color: #008000;">.</span><span style="color: #0000FF;">Information</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Address</span><span style="color: #008000;">.</span><span style="color: #0000FF;">StateCode</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb<span style="color: #008000;">.</span><span style="color: #0000FF;">AppendLine</span><span style="color: #008000;">&#40;</span>item<span style="color: #008000;">.</span><span style="color: #0000FF;">Information</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Address</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Street</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sb<span style="color: #008000;">.</span><span style="color: #0000FF;">AppendLine</span><span style="color: #008000;">&#40;</span>item<span style="color: #008000;">.</span><span style="color: #0000FF;">Information</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Address</span><span style="color: #008000;">.</span><span style="color: #0000FF;">Township</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000;">&#125;</span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;MessageBox<span style="color: #008000;">.</span><span style="color: #0000FF;">Show</span><span style="color: #008000;">&#40;</span>sb<span style="color: #008000;">.</span><span style="color: #0000FF;">ToString</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></li><li><span style="color: #008000;">&#125;</span></li><li></li></ol></div></pre><!--END_DEVFMTCODE--></p></blockquote>
<p style="text-align: justify;">Ce code renvoie une grande quantité de données qui peuvent être affichées à l&rsquo;utilisateur pour en vérifier le résultat, mais le plus important pour votre application sera alors la géolocalisation du lieu recherché.</p>
<p style="text-align: center;"><img class="aligncenter" alt="" src="http://www.developer.nokia.com/Community/Wiki/images/9/9c/WhatsNewWP8_36_MapControl_GeoLocation_data_for_searched_place.png?20121030182649" width="215" height="410" /></p>
<p>source: <a href="http://www.developer.nokia.com/">developer.nokia.com</a></p>
</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.nokiadevblog.fr/2013/05/nouveautes-du-sdk-maps/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Le &#171;&#160;Premium Developer Program&#160;&#187; pour la gamme Asha</title>
		<link>http://www.nokiadevblog.fr/2013/05/le-premium-developer-program-pour-la-gamme-asha/</link>
		<comments>http://www.nokiadevblog.fr/2013/05/le-premium-developer-program-pour-la-gamme-asha/#comments</comments>
		<pubDate>Fri, 03 May 2013 15:33:22 +0000</pubDate>
		<dc:creator>Victor</dc:creator>
				<category><![CDATA[Développer]]></category>
		<category><![CDATA[Distribuer]]></category>

		<guid isPermaLink="false">http://www.nokiadevblog.fr/?p=2427</guid>
		<description><![CDATA[Nokia a annoncé il y a quelques jours un nouveau programme pour les développeurs le «&#160;Premium Developer Program pour Asha&#160;». En effet, la gamme Nokia Asha est très répandue avec des millions de téléchargements d’applications par mois. Ces terminaux destinés aux petits&#160;porte-monnaie ou aux pays émergeant, se vendent très bien, et Nokia nous invite à [...]]]></description>
				<content:encoded><![CDATA[<p style="text-align: justify;"><a href="http://www.nokiadevblog.fr/wp-content/uploads/2013/04/App-developer-main-copy.jpg"><img class="aligncenter size-full wp-image-2428" alt="App-developer-main-copy" src="http://www.nokiadevblog.fr/wp-content/uploads/2013/04/App-developer-main-copy.jpg" width="465" height="300" /></a>Nokia a annoncé il y a quelques jours un nouveau programme pour les développeurs le «&nbsp;Premium Developer Program pour Asha&nbsp;».</p>
<p><span id="more-2427"></span></p>
<p style="text-align: justify;">En effet, la gamme Nokia Asha est très répandue avec des millions de téléchargements d’applications par mois. Ces terminaux destinés aux petits&nbsp;porte-monnaie ou aux pays émergeant, se vendent très bien, et Nokia nous invite à nous y intéresser.</p>
<p style="text-align: justify;">Avec le «&nbsp;Premium Developer Program&nbsp;», Nokia propose un service gratuit comprenant :</p>
<ul style="text-align: justify;">
<li>Un Nokia Asha 310 (double SIM / WiFi)</li>
<li>Un accès aux périphériques Asha à distance, afin que vous puissiez tester vos applications sur une grande variété de dispositifs réels.</li>
<li>Deux billets pour le support technique Nokia</li>
<li>Le choix entre la promotion de l&rsquo;app sur le Nokia Store ou un crédit de 500$ sur le NAX</li>
</ul>
<p style="text-align: justify;">Tous les renseignements sur cette page :&nbsp;<a href="http://www.developer.nokia.com/Developer_Programs/Asha_developer_program.xhtml" target="_blank">Nokia Premium Developer Program for Asha</a>.</p>
<p style="text-align: justify;">source: <a href="http://conversations.nokia.com/2013/03/26/nokia-unveils-premium-developer-program-for-asha/" target="_blank">Nokia Conversation</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nokiadevblog.fr/2013/05/le-premium-developer-program-pour-la-gamme-asha/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Edition 2013 du salon WIMA de Monaco,</title>
		<link>http://www.nokiadevblog.fr/2013/04/edition-2013-du-salon-wima-de-monaco/</link>
		<comments>http://www.nokiadevblog.fr/2013/04/edition-2013-du-salon-wima-de-monaco/#comments</comments>
		<pubDate>Mon, 22 Apr 2013 12:48:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Non classé]]></category>

		<guid isPermaLink="false">http://www.nokiadevblog.fr/?p=2468</guid>
		<description><![CDATA[Dans le cadre de l’édition 2013 du salon WIMA de Monaco, Nokia a donné une formation technique à destination des développeurs autour de la technologie NFC sur Windows Phone 8 (Near Field Communication : technologie de communication sans fil à courte portée). Cette session s’est articulée sur deux axes : une présentation approfondie de l’api [...]]]></description>
				<content:encoded><![CDATA[<p>Dans le cadre de l’édition 2013 du salon WIMA de Monaco, Nokia a donné une formation technique à destination des développeurs autour de la technologie NFC sur Windows Phone 8 (Near Field Communication : technologie de communication sans fil à courte portée). Cette session s’est articulée sur deux axes : une présentation approfondie de l’api « Proximity framework » ainsi que des exemples de code démonstratifs.</p>
<p>Tous les supports sont accessibles ici : http://sdrv.ms/17DldDK</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nokiadevblog.fr/2013/04/edition-2013-du-salon-wima-de-monaco/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Une journée au MWC 2013</title>
		<link>http://www.nokiadevblog.fr/2013/04/une-journee-au-mwc-2013/</link>
		<comments>http://www.nokiadevblog.fr/2013/04/une-journee-au-mwc-2013/#comments</comments>
		<pubDate>Fri, 19 Apr 2013 13:03:28 +0000</pubDate>
		<dc:creator>Victor</dc:creator>
				<category><![CDATA[Développer]]></category>
		<category><![CDATA[Distribuer]]></category>

		<guid isPermaLink="false">http://www.nokiadevblog.fr/?p=2402</guid>
		<description><![CDATA[Je vais tenter de vous faire expliquer une journée type au MWC, même si chaque jour est différent. Contrairement a ce que l&#8217;on pense, ce n&#8217;est pas de tout repos, loin de là ! Voici un petit récapitulatif de mon séjour. Tout d&#8217;abord, les journées commencent&#160;tôt&#160;.. Donc on se lève aux aurores si notre lieu [...]]]></description>
				<content:encoded><![CDATA[<p>Je vais tenter de vous faire expliquer une journée type au MWC, même si chaque jour est différent.</p>
<p style="text-align: justify;">Contrairement a ce que l&rsquo;on pense, ce n&rsquo;est pas de tout repos, loin de là !</p>
<p><span id="more-2402"></span></p>
<p><a href="http://www.nokiadevblog.fr/wp-content/uploads/2013/03/WP_20130225_001.jpg"><img class="size-medium wp-image-2403 aligncenter" alt="WP_20130225_001" src="http://www.nokiadevblog.fr/wp-content/uploads/2013/03/WP_20130225_001-300x168.jpg" width="300" height="168" /></a></p>
<p style="text-align: justify;">Voici un petit récapitulatif de mon séjour. Tout d&rsquo;abord, les journées commencent&nbsp;tôt&nbsp;.. Donc on se lève aux aurores si notre lieu de résidence temporaire est plus ou moins éloigné. Personnellement j&rsquo;étais seulement&nbsp;à 15 minutes de bus de&nbsp;l’événement&nbsp; Mais pourquoi se lever si&nbsp;tôt ?&nbsp;Tout simplement parce que les constructeurs font leurs annonces&nbsp;à toutes heures : &nbsp;Nokia a fait ses annonces&nbsp;à 8h30 le lundi, et en arrivant&nbsp;à 8h, il restait&nbsp;déjà&nbsp;presque plus de places assises malgré tout ce &nbsp;que Nokia avait prévu !</p>
<p><a href="http://www.nokiadevblog.fr/wp-content/uploads/2013/03/WP_20130225_017.jpg"><img class="size-medium wp-image-2404 aligncenter" alt="WP_20130225_017" src="http://www.nokiadevblog.fr/wp-content/uploads/2013/03/WP_20130225_017-300x168.jpg" width="300" height="168" /></a></p>
<p style="text-align: justify;">Ces annonces sont importantes,&nbsp;même&nbsp;pour les développeurs&nbsp;que nous sommes. Cela nous permet de nous rendre compte que Nokia soutient &nbsp;la plateforme Windows Phone tout comme Asha, et que les 2 gammes sont autant mise en avant l&rsquo;une que l&rsquo;autre ! Suite à cette conférence qui permet de voir les dirigeants de Nokia s&rsquo;exprimer face&nbsp;à nous et répondre&nbsp;aux questions que l&rsquo;assemblée souhaite poser, et sans&nbsp;tabou&nbsp;car plusieurs micros ont été amenés aux personnes qui le voulaient. Après&nbsp;toutes ces annonces de nouveaux produits et services, on regarde l&rsquo;heure : il est&nbsp;déjà&nbsp;10h&#8230; On visite un peu le hall 3 dans lequel Nokia était, puis direction l&rsquo;autre bout du salon dans le coin Nokia Developer. Il faut compter facilement 15min de marche avec les tapis roulants. Oui vous avez bien lu, c&rsquo;est vraiment immense !</p>
<p style="text-align: justify;">Le coté&nbsp;développeur&nbsp;est tout aussi sympa, on y trouve les gagnants du concours &laquo;&nbsp;Lumia Geek Challenge &nbsp;&raquo; et la France était représentée par notre cher <a href="http://www.rudyhuyn.com/" target="_blank">Rudy Huyn</a> grâce a son application &laquo;&nbsp;<a href="http://www.windowsphone.com/en-us/store/app/tvshow/b5bef1ca-d649-e011-854c-00237de2db9e" target="_blank">TV Show</a>&laquo;&nbsp;. Mais pas le temps de discuter car une autre keynote dédiée aux&nbsp;développeurs&nbsp;arrive à 11h.&nbsp;Ici nous avons eu le droit aux chiffres standards, les nombres d&rsquo;applications sur les stores. Nous avons aussi découvert les prochaines applications et partenariats exclusifs (GoPro, Burton&#8230;). Nokia Ad Exchange (NAX) nous à été (re)présenté, ainsi que le programme <a href="http://www.dvlup.com/" target="_blank">DVLUP</a>&nbsp;qui pour le moment est réservé aux USA et au Royaume-Uni pour accompagner les&nbsp;développeurs&nbsp;et les aider.</p>
<p><a href="http://www.nokiadevblog.fr/wp-content/uploads/2013/03/WP_20130225_029.jpg"><img class="size-medium wp-image-2406 aligncenter" alt="WP_20130225_029" src="http://www.nokiadevblog.fr/wp-content/uploads/2013/03/WP_20130225_029-300x168.jpg" width="300" height="168" /></a><a href="http://www.nokiadevblog.fr/wp-content/uploads/2013/03/72361_435687983175316_1973854497_n.jpg"><img class="size-medium wp-image-2408 aligncenter" alt="72361_435687983175316_1973854497_n" src="http://www.nokiadevblog.fr/wp-content/uploads/2013/03/72361_435687983175316_1973854497_n-300x199.jpg" width="300" height="199" /></a><a href="http://www.nokiadevblog.fr/wp-content/uploads/2013/03/535598_435688336508614_955311332_n.jpg"><img class="size-medium wp-image-2409 aligncenter" alt="535598_435688336508614_955311332_n" src="http://www.nokiadevblog.fr/wp-content/uploads/2013/03/535598_435688336508614_955311332_n-300x199.jpg" width="300" height="199" /></a><a href="http://www.nokiadevblog.fr/wp-content/uploads/2013/04/733851_435635086513939_912957882_n.jpg"><img class="aligncenter size-medium wp-image-2423" alt="Julie et Rudy" src="http://www.nokiadevblog.fr/wp-content/uploads/2013/04/733851_435635086513939_912957882_n-215x300.jpg" width="215" height="300" /></a></p>
<p>Apres cette&nbsp;demi-journée de keynotes en tous genres, on se met en&nbsp;quête&nbsp;de&nbsp;nourriture&nbsp;avec les personnes rencontrées tout au long de la&nbsp;mâtiné. Finalement, des petits four attendent à la sortie (généralement chaque stand déborde de nourriture aux bonnes heures). Le&nbsp;problème&nbsp;est que l&rsquo;on discute un peu avec tout le monde, que le temps passe et qu&rsquo;on se retrouve à ne rien manger ou presque. Mais les échanges entre professionnels (voir passionnés) sont vraiment enrichissants. Les sessions technique de&nbsp;l’après&nbsp;midi était les suivantes:</p>
<blockquote><p><em><strong>Breakout Sessions:</strong><strong>&nbsp;</strong><strong>Track 1: </strong><strong>Introduction to Building Apps &amp; Games for Windows Phone 8</strong></em></p>
<p><em>This single 60 minute session will be repeated several times throughout the day</em></p>
<p><em>&nbsp;<strong>Track 2: Technical Sessions: Windows Phone 8</strong></em></p>
<p><em>30 minute deep dives on topics including:</em></p>
<ul>
<li><em>Tiles &amp; Lock Screen</em></li>
<li><em>Location &amp; Mapping</em></li>
<li><em>Networking, NFC, Bluetooth</em></li>
<li><em>HTML5 in WP8 Apps</em></li>
<li><em>Game Development &amp; WP8 Middleware</em></li>
<li><em>Camera and Lenses</em></li>
</ul>
<p><em><strong>Track 3: Monetization and Business Enablers</strong></em></p>
<ul>
<li><em>Nokia Ad Exchange</em></li>
<li><em>Premium Developer Program</em></li>
<li><em>Asha Development Opportunities</em></li>
<li><em>And more to be announced</em></li>
</ul>
</blockquote>
<p>Personnellement, j&rsquo;ai été pris par les&nbsp;différentes&nbsp;personnes que j&rsquo;ai rencontré et j&rsquo;ai raté les conférences,&nbsp;mémé&nbsp;si les sujets ont déjà été abordés, c&rsquo;est toujours bon de voir d&rsquo;autres manières de faire les choses. A coté de&nbsp;ça,&nbsp; j&rsquo;ai rencontré le créateur de l&rsquo;application &laquo;&nbsp;Apps Highlights&nbsp;&raquo; ou en&nbsp;français&nbsp;&nbsp;&raquo;Meilleures apps&nbsp;&raquo; ainsi que des Nokia Ambassadors faisant partie du programme DVLUP.</p>
<p><a href="http://www.nokiadevblog.fr/wp-content/uploads/2013/03/Capture.png"><img class="size-medium wp-image-2414 aligncenter" alt="Capture" src="http://www.nokiadevblog.fr/wp-content/uploads/2013/03/Capture-300x237.png" width="300" height="237" /></a></p>
<p style="text-align: center;"><em>Ci dessus le plan du MWC pour que vous puissiez visualiser plus facilement.</em></p>
<p style="text-align: justify;">Une soirée consacrée au développeurs a été organisée le lendemain, ce fut une nouvelle occasion de faire de nouvelles connaissances, que&nbsp;ça&nbsp;soit des petits développeurs, des blogueurs ou des employés de Microsoft ou Nokia&nbsp;à travers le monde. Vous trouverez quelques photos de cette soirée dans cet <a title="Soirée Nokia Dev" href="https://www.facebook.com/media/set/?set=a.435996313144483.1073741827.274592552618194&amp;type=3" target="_blank">album</a>&nbsp;sur Facebook et d&rsquo;autres photos du <a title="Stand Nokia Dev" href="https://www.facebook.com/media/set/?set=a.435687193175395.1073741825.274592552618194&amp;type=3" target="_blank">stand Nokia Dev</a>&nbsp;et de la <a title="Keynote developer" href="https://www.facebook.com/media/set/?set=a.432988120111969.98625.274592552618194&amp;type=3" target="_blank">keynote developper </a>du matin.</p>
<p style="text-align: justify;">Et cette vidéo vous montrera un peu l&rsquo;ambiance générale :</p>
<p><center><iframe src="http://www.youtube.com/embed/lWAWV2GSaTI" height="315" width="560" allowfullscreen="" frameborder="0"></iframe></center></p>
<p style="text-align: justify;">Bien sûr, ce n&rsquo;est qu&rsquo;un résumé d&rsquo;une journée très enrichissante et très remplie, en sachant aussi que divers concours ont lieu certains jours (hackathon&#8230;). Mais n&rsquo;étant plus sur place, je n&rsquo;y ai pas participé et je ne peux donc pas vous expliquer comment cela s&rsquo;organise.</p>
<p style="text-align: justify;">Bref, si vous avez l&rsquo;opportunité de participer au MWC, cela vaut le détour ! Prévoyez de vous y prendre le plus à l&rsquo;avance possible pour les diverses réservations, mais cela n&rsquo;est pas très excessif.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nokiadevblog.fr/2013/04/une-journee-au-mwc-2013/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Les nouveaux middlewares facilitent le portage des jeux sous Windows Phone</title>
		<link>http://www.nokiadevblog.fr/2013/04/les-nouveaux-middlewares-facilitent-le-portage-des-jeux-sous-windows-phone/</link>
		<comments>http://www.nokiadevblog.fr/2013/04/les-nouveaux-middlewares-facilitent-le-portage-des-jeux-sous-windows-phone/#comments</comments>
		<pubDate>Wed, 10 Apr 2013 12:01:17 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[Développer]]></category>
		<category><![CDATA[Distribuer]]></category>

		<guid isPermaLink="false">http://www.nokiadevblog.fr/?p=2417</guid>
		<description><![CDATA[Vous n&#8217;êtes sûrement pas sans le savoir, la Game Developers Conference se déroulait il y a quelques jours à San Francisco. C&#8217;est l&#8217;occasion pour Windows Phone de montrer aux développeurs &#160;à quel point il est facile de porter leurs jeux sur Windows Phone. Une bonne opportunité pour gagner de l&#8217;argent Windows 8 Phone dévoile une [...]]]></description>
				<content:encoded><![CDATA[<p>Vous n&rsquo;êtes sûrement pas sans le savoir, la Game Developers Conference se déroulait il y a quelques jours à San Francisco. C&rsquo;est l&rsquo;occasion pour Windows Phone de montrer aux développeurs &nbsp;à quel point il est facile de porter leurs jeux sur Windows Phone.</p>
<p><span id="more-2417"></span></p>
<h2>Une bonne opportunité pour gagner de l&rsquo;argent</h2>
<p style="text-align: left;">Windows 8 Phone dévoile une plateforme pour les développeurs de jeu sans égal&nbsp;qui supporte le code natif et permet de porter très rapidement des jeux existants (des jeux sous Android ou iOs peuvent même parfois être portés en quelques jours). &nbsp;Et avec la convergence des plateformes de jeu Windows et Windows Phone rendue possible par le noyau commun partagé par les deux OS, les développeurs disent pouvoir réutiliser 90% de leur code pour amener leur jeux sur le plus d&rsquo;appareils possible.</p>
<p style="text-align: left;">Jetez un&nbsp;œil&nbsp;sur Windows Phone 8 et vous verrez que de nombreuses possibilités très utiles aux développeurs de jeux ont été ajoutées, comme le paiement in-app qui offre de nouvelles possibilités pour monétiser un jeu. Cela s&rsquo;ajoute bien sûr aux modèles existants : la publicité, le &laquo;&nbsp;freemium&nbsp;&raquo; et les applications payantes. Les moyens de paiement les plus populaires ont également été ajoutés pour permettre aux joueurs d&rsquo;acheter des jeux ou du contenu. Paypal, Alipay et de nombreux autres fournisseur de paiement sont maintenant disponibles (il y a aujourd&rsquo;hui 21 connections différentes disponibles dans 21 pays). Ces moyens de paiement, lorsqu&rsquo;ils sont disponibles, sont les préférés de 75% des utilisateurs Windows Phone et génèrent trois fois plus de téléchargement que le paiement par carte&nbsp;bancaire&nbsp;classique.&nbsp;</p>
<p style="text-align: left;">Une autre donnée important à prendre en compte : les utilisateurs de Windows Phone sont très joueurs. Plus d&rsquo;un tiers des téléchargement et 60 % des revenus sur le Windows Phone Store sont générés par des jeux. Et près de la moitié des 50 meilleurs développeurs Windows Phone ont créé des jeux.</p>
<p style="text-align: left;">Grâce aux annonces faite par les fournisseurs de middleware, porter des jeux sous Windows Phone 8 est encore plus facile.</p>
<h2 style="text-align: left;">Des nouvelles plateformes pour la création de jeux de qualité</h2>
<p style="text-align: left;"><a title="unity" href="http://blogs.unity3d.com/2013/03/27/unity-4-beta-program-for-windows-phone-apps/" target="_blank">Unity </a>a annoncé l&rsquo;ouverture de la bêta d&rsquo;Unity 4 pour Windows Phone 8. Ouverte à tous les développeurs, elle offre l&rsquo;opportunité d&rsquo;essayer de nouveaux outils, d&rsquo;envoyer des feedbacks et de commencer le développement de jeux sous Windows Phone 8. Unity présente déjà quelques titres phares créés sur cette nouvelle plateforme et disponible aujourd&rsquo;hui sur le Windows Phone Store : <a title="DMC 2" href="http://www.windowsphone.com/fr-fr/store/app/drift-mania-championship-2/2f377f5d-89b3-4143-9df5-bbf4b2eea113" target="_blank">Drift Mania Championship 2</a> (Ratrod Studio), <a title="Fling Theory" href="http://www.windowsphone.com/en-us/store/app/fling-theory/3fb05fa1-03e6-467f-9355-3b3778ca2858" target="_blank">Fling Theory</a> (Coding Jar Studios) qui est une exclusivité Windows Phone et<a title="Orcs Must Survive" href="http://www.windowsphone.com/fr-fr/store/app/orcs-must-survive/0ee1438f-2cf4-4490-aa1d-39d58668c821" target="_blank"> Orcs Must Survive</a> (Echoboom). Le très célèbre Temple Run sera également bientôt disponible.&nbsp;</p>
<p style="text-align: left;"><a title="Marmalade" href="http://www.madewithmarmalade.com/press/marmalade-brings-hit-mobile-games-windows-phone-8-0" target="_blank">Marmalade </a>a également sorti une nouvelle bêta de son SDK Windows Phone 8, ouverte à tous les développeurs, et a présenté les deux premiers jeux portés depuis Android et iOs : <a title="6th Planet" href="http://www.windowsphone.com/en-us/store/app/6th-planet/2963f823-3bc4-4d48-9371-fa60ab0d6749" target="_blank">6th Planet</a> (Monkube) et <a title="http://www.windowsphone.com/en-us/store/app/propel-man/697bfc9b-0b59-4587-aba6-292602a28465" href="http://www.windowsphone.com/en-us/store/app/propel-man/697bfc9b-0b59-4587-aba6-292602a28465" target="_blank">Propel Man</a> (Spiel Studio).</p>
<p style="text-align: left;"><a title="Havok" href="http://www.havok.com/solutions/mobile-game-developers" target="_blank">Havok </a>a également affiché&nbsp;son soutien à Windows Phone 8 au &nbsp;GDC avec des démos aux graphismes époustouflants. Andrew Bowell, directeur de la gestion de produit ces Havok a déclaré : &laquo;&nbsp;Chez Havok, nous créons des mondes en 3D immersifs, des simulations&nbsp;extrêmement réalistes et interactives et des visuels&nbsp;spectaculaires. Windows Phone 8 est une plateforme qui donne à Havok&nbsp;et aux développeurs &nbsp;la possibilité d&rsquo;optimiser les jeux à fond pour créer du contenu riche et améliorer le gameplay&nbsp;&raquo;.</p>
<p style="text-align: left;">La communauté Cocos2d-x, à l&rsquo;origine du très populaire moteur de jeu 2D cross-platform , a sorti une nouvelle version de&nbsp;<a title="Cocos2d-X" href="http://www.cocos2d-x.org/projects/cocos2d-x/news" target="_blank">Cocos2d-x pour Windows Phone 8 </a>ainsi que l&rsquo;API&nbsp;&nbsp;Cocos2d-x v2.1.</p>
<p style="text-align: left;">Et pour avoir une expèrience de jeu complète, PowerA a annoncé que MOGA, sa manette dernier cri dédiées aux appareils mobiles seraient maintenant compatibles avec Windows Phone 8. Le SDK MOGA pour Windows Phone 8 sera bientôt disponible.&nbsp;</p>
<p><center><iframe style="width: 512px; height: 288px;" src="http://channel9.msdn.com/Shows/Inside+Windows+Phone/IWP51-JC-shows-us-his-Moga/player?w=512&amp;h=288" height="240" width="320" frameborder="0" scrolling="no"></iframe></center></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nokiadevblog.fr/2013/04/les-nouveaux-middlewares-facilitent-le-portage-des-jeux-sous-windows-phone/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HarshQuad, l&#8217;application des français de Monkey Moon qui a remporté l&#8217;AppCampus</title>
		<link>http://www.nokiadevblog.fr/2013/03/harshquad-lapplication-des-francais-de-monkey-moon-qui-a-remporte-lappcampus/</link>
		<comments>http://www.nokiadevblog.fr/2013/03/harshquad-lapplication-des-francais-de-monkey-moon-qui-a-remporte-lappcampus/#comments</comments>
		<pubDate>Tue, 05 Mar 2013 15:38:35 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[Distribuer]]></category>

		<guid isPermaLink="false">http://www.nokiadevblog.fr/?p=2387</guid>
		<description><![CDATA[Depuis quelques semaines, nous vous parlons souvent de l&#8217;AppCampus, formidable opportunité pour les développeurs qui ont à coeur de donner vie à toutes leurs idées d&#8217;application. Lancé conjointement par Nokia, Microsoft et l&#8217;université d&#8217;Aalto, ce programme commence déjà à récompenser des applications innovantes. Et l&#8217;une des dernières applications à remporter un prix AppCampus est HarshQuad, [...]]]></description>
				<content:encoded><![CDATA[<p>Depuis quelques semaines, nous vous parlons souvent de <a title="Article Nokia Dev Blog AppCampus" href="http://www.nokiadevblog.fr/2013/01/financez-vos-idees-dapplication-grace-a-lappcampus/" target="_blank">l&rsquo;AppCampus</a>, formidable opportunité pour les développeurs qui ont à coeur de donner vie à toutes leurs idées d&rsquo;application. Lancé conjointement par Nokia, Microsoft et l&rsquo;université d&rsquo;Aalto, ce programme commence déjà à récompenser des applications innovantes. Et l&rsquo;une des dernières applications à remporter un prix AppCampus est HarshQuad, développée par les français <a title="Monkey Moon" href="http://www.monkeymoon.net/" target="_blank">Monkey Moon</a> !&nbsp;</p>
<p><span id="more-2387"></span></p>
<p><img class="size-full wp-image-2394 aligncenter" alt="Monkey Moon Logo_black" src="http://www.nokiadevblog.fr/wp-content/uploads/2013/03/Monkey-Moon-Logo_black.png" width="500" height="306" /></p>
<p>HarshQuad est le premier jeu de ce studio indépendant fondé en novembre 2012 à Lyon. Le principe de ce <em>&laquo;&nbsp;puzzle-game&nbsp;&raquo;</em> est simple : il faut relier les quatre coins de la même couleur d&rsquo;un rectangle. On ne peut pas rêver plus simple ! La difficulté vient de la limite de temps, des six couleurs différentes et de l&rsquo;immense taille du plateau de jeu. Et pour corser le tout, vous pouvez récolter des bonus et des pénalités.</p>
<p><img class="wp-image-2395 aligncenter" alt="HarshQuad_04" src="http://www.nokiadevblog.fr/wp-content/uploads/2013/03/HarshQuad_04.png" width="439" height="247" /></p>
<p>Le jeu offre également trois modes différents, appelés avec humour <em>&laquo;&nbsp;Not easy&nbsp;&raquo;</em>, <em>&laquo;&nbsp;Quite hard&nbsp;&raquo;</em> et <em>&laquo;&nbsp;Oh Lord!&nbsp;&raquo;</em>, un tableau de scores, des statistiques et une liste de succès débloqués. Il sortira à la fin du premier trimestre 2013 sur Windows Phone 8. Et comme les images sont parfois plus efficace que les mots, voici la vidéo de présentation de l&rsquo;application :&nbsp;</p>
<p><center><iframe src="http://www.youtube.com/embed/wMFp_oTH-W4" height="315" width="560" allowfullscreen="" frameborder="0"></iframe></center><center></center></p>
<p>Pour vous inscrire sur l&rsquo;AppCampus, rendez-vous <a title="AppCampus" href="http://www.appcampus.fi/" target="_blank">ici </a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.nokiadevblog.fr/2013/03/harshquad-lapplication-des-francais-de-monkey-moon-qui-a-remporte-lappcampus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nouveautés du SDK &#8211; Caméra</title>
		<link>http://www.nokiadevblog.fr/2013/02/nouveautes-du-sdk-camera/</link>
		<comments>http://www.nokiadevblog.fr/2013/02/nouveautes-du-sdk-camera/#comments</comments>
		<pubDate>Mon, 11 Feb 2013 14:29:37 +0000</pubDate>
		<dc:creator>Victor</dc:creator>
				<category><![CDATA[Développer]]></category>
		<category><![CDATA[Windows Phone]]></category>

		<guid isPermaLink="false">http://www.nokiadevblog.fr/?p=2268</guid>
		<description><![CDATA[L&#8217;un des points intéressants intégrés à&#160;Windows Phone 8&#160;est la capacité de créer des applications dans l&#8217;application appareil photo. Les utilisateurs peuvent lancer &#171;&#160;Filtres&#160;&#187; directement à partir de l&#8217;application appareil photo. Les&#160;&#160;&#187;Filtres&#160;&#187; apps sont appelées ainsi parce qu&#8217;elles doivent montrer un cadre photo avec la vue Caméra active et agir comme un &#171;&#160;filtre&#160;&#187;. Cependant, les applications [...]]]></description>
				<content:encoded><![CDATA[<p>L&rsquo;un des points intéressants intégrés à&nbsp;Windows Phone 8&nbsp;est la capacité de créer des applications dans l&rsquo;application appareil photo. Les utilisateurs peuvent lancer &laquo;&nbsp;Filtres&nbsp;&raquo; directement à partir de l&rsquo;application appareil photo. Les&nbsp;&nbsp;&raquo;Filtres&nbsp;&raquo; apps sont appelées ainsi parce qu&rsquo;elles doivent montrer un cadre photo avec la vue Caméra active et agir comme un &laquo;&nbsp;filtre&nbsp;&raquo;. Cependant, les applications de filtre ne sont pas des filtres, elles sont des applications à part entière.</p>
<p><span id="more-2268"></span></p>
<p style="text-align: center;"><img class="aligncenter" alt="" src="http://www.developer.nokia.com/Community/Wiki/images/9/96/WhatsNewWP8_37_CameraLenses_Workflow_of_using_Lens_app.png?20121030182624" width="550" height="431" /></p>
<p>Pour voir comment cela fonctionne, créez un &laquo;&nbsp;Filtre&nbsp;&raquo; , pour le montrer dans le sélecteur de Filtres, puis enregistrez une image sans appliquer un filtre.</p>
<p>Vous commencez par déclarer l&rsquo;application existante comme une application&nbsp;&nbsp;&raquo;Filtre&nbsp;&raquo; et assurez vous qu&rsquo;elle dispose des autorisations pour accéder à la caméra et enregistrer des images à la médiathèque.</p>
<blockquote><p><!--DEVFMTCODE--><pre class="devcodeblock" title="XML"><div class="devcodeoverflow"><ol><li><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Capabilities<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></li><li>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Capability</span> <span style="color: #000066;">Name</span>=<span style="color: #ff0000;">&quot;ID_CAP_ISV_CAMERA&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span></li><li>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Capability</span> <span style="color: #000066;">Name</span>=<span style="color: #ff0000;">&quot;ID_CAP_MEDIALIB_PHOTO&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span></li><li><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Capabilities<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></li><li><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Extensions<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></li><li>&nbsp;&nbsp;&nbsp;&nbsp; <span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Extension</span> <span style="color: #000066;">ExtensionName</span>=<span style="color: #ff0000;">&quot;Camera_Capture_App&quot;</span> </span></li><li><span style="color: #009900;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000066;">ConsumerID</span>=<span style="color: #ff0000;">&quot;{5B04B775-356B-4AA0-AAF8-6491FFEA5631}&quot;</span></span></li><li><span style="color: #009900;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #000066;">TaskID</span>=<span style="color: #ff0000;">&quot;_default&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span></li><li><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Extensions<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></li></ol></div></pre><!--END_DEVFMTCODE--></p></blockquote>
<p>Ensuite, dans le dossier Images, vous avez besoin d&rsquo;ajouter des icônes pour les trois résolutions d&rsquo;écran prises en charge. Voici le Lens.Screen-WVGA.png utilisé par l&rsquo;application.</p>
<p><img class="aligncenter" alt="" src="http://www.developer.nokia.com/Community/Wiki/images/4/43/WhatsNewWP8_38_CameraLenses_Paint.net_with_a_Lens_icon.png?20121030184909" width="379" height="366" /></p>
<p>Lorsque l&rsquo;application démarre, elle va obtenir un lien vers <em>/MainPage.xaml?Action=ViewfinderLaunch</em>. Votre code peut maintenant intercepter un lien en utilisant un UriMapper personnalisé et l&rsquo;envoyer&nbsp;vers <em>/Lens.xaml</em>.</p>
<div class="mw-geshi" dir="ltr" style="text-align: left;">
<div class="csharp source-csharp">
<blockquote><p>
<pre class="de1">
&nbsp;</pre>
</p></blockquote>
</div>
</div>
<p>Maintenant, vous pouvez ajouter du code à <em>Lens.xaml</em> pour afficher la caméra, puis enregistrer l&rsquo;image, sans modification, dans la bibliothèque de photos.</p>
<blockquote><p><!--DEVFMTCODE--><pre class="devcodeblock" title="XML"><div class="devcodeoverflow"><ol><li><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Button</span> <span style="color: #000066;">Content</span>=<span style="color: #ff0000;">&quot;Snap Picture&quot;</span> <span style="color: #000066;">Click</span>=<span style="color: #ff0000;">&quot;SaveImage&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span></li><li><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Grid</span> <span style="color: #000066;">x:Name</span>=<span style="color: #ff0000;">&quot;ContentPanel&quot;</span> <span style="color: #000066;">Grid.Row</span>=<span style="color: #ff0000;">&quot;1&quot;</span> <span style="color: #000000; font-weight: bold;">&gt;</span></span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;Grid.Background<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;VideoBrush</span> <span style="color: #000066;">x:Name</span>=<span style="color: #ff0000;">&quot;viewfinderBrush&quot;</span> <span style="color: #000000; font-weight: bold;">/&gt;</span></span></li><li>&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Grid.Background<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></li><li><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/Grid<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></li></ol></div></pre><!--END_DEVFMTCODE--></p></blockquote>
<blockquote><p>
<pre class="de1"><span style="color: #0000ff;"><span class="kw1">public</span> <span class="kw1">partial</span> <span class="kw4">class</span> </span>Lense<span class="sy0" style="color: #339966;"> :</span> PhoneApplicationPage
<span class="br0" style="color: #339966;">{</span>
    <span class="kw1" style="color: #0000ff;">public </span>Lense<span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span></span>
<span class="br0" style="color: #339966;">    {</span>
        InitializeComponent<span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></span>
        <span class="kw1" style="color: #0000ff;">this</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">Loaded</span> <span class="sy0">+=</span> Lense_Loaded<span class="sy0" style="color: #339966;">;</span>
<span class="br0" style="color: #339966;">    }</span>

    PhotoCamera cam<span class="sy0" style="color: #339966;">;</span>
    MediaLibrary library <span class="sy0">=</span> <span class="kw3" style="color: #0000ff;">new </span>MediaLibrary<span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></span>

    <span class="kw4" style="color: #0000ff;">void </span>Lense_Loaded<span class="br0" style="color: #339966;">(</span><span class="kw4" style="color: #0000ff;">object </span>sender, RoutedEventArgs e<span class="br0" style="color: #339966;">)</span>
    <span class="br0" style="color: #339966;">{</span>
        <span class="kw1" style="color: #0000ff;">if</span> <span class="br0" style="color: #339966;">(</span>PhotoCamera<span class="sy0">.</span><span class="me1" style="color: #0000ff;">IsCameraTypeSupported</span><span class="br0" style="color: #339966;">(</span>CameraType<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Primary</span><span style="color: #339966;"><span class="br0">)</span><span class="br0">)</span></span>
    <span class="br0" style="color: #339966;">    {</span>
            cam <span class="sy0" style="color: #339966;">=</span> <span class="kw3" style="color: #0000ff;">new </span>Microsoft<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Devices</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">PhotoCamera</span><span class="br0" style="color: #339966;">(</span>CameraType<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Primary</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>

            cam<span class="sy0">.</span><span class="me1" style="color: #0000ff;">CaptureImageAvailable</span> <span class="sy0" style="color: #339966;">+=</span>cam_CaptureImageAvailable<span class="sy0" style="color: #339966;">;</span>
            viewfinderBrush<span class="sy0">.</span><span class="me1" style="color: #0000ff;">SetSource</span><span class="br0" style="color: #339966;">(</span>cam<span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
<span class="br0" style="color: #339966;">            }</span>
<span class="br0" style="color: #339966;">        }</span>

    <span class="kw4" style="color: #0000ff;">void </span>cam_CaptureImageAvailable<span class="br0" style="color: #339966;">(</span><span class="kw4" style="color: #0000ff;">object </span>sender, ContentReadyEventArgs e<span class="br0" style="color: #339966;">)</span>
    <span class="br0" style="color: #339966;">{</span>
        library<span class="sy0">.</span><span class="me1" style="color: #0000ff;">SavePictureToCameraRoll</span><span class="br0" style="color: #339966;">(</span><span class="kw3" style="color: #0000ff;">new </span>Random<span class="br0" style="color: #339966;">(</span><span class="br0" style="color: #339966;">)</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">Next</span><span class="br0" style="color: #339966;">(</span><span class="nu0">1</span>, <span class="nu0">1000</span><span style="color: #339966;"><span class="br0">)</span> <span class="sy0">+</span></span> <span class="st0" style="color: #800000;">".jpg"</span>, e<span class="sy0">.</span><span class="me1" style="color: #0000ff;">ImageStream</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
<span class="br0" style="color: #339966;">    }</span>

    <span style="color: #0000ff;"><span class="kw1">private</span> <span class="kw4">void</span> </span>SaveImage<span class="br0" style="color: #339966;">(</span><span class="kw4" style="color: #0000ff;">object </span>sender, RoutedEventArgs e<span class="br0" style="color: #339966;">)</span>
<span class="br0" style="color: #339966;">    {</span>
        cam<span class="sy0">.</span><span class="me1" style="color: #0000ff;">CaptureImage</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></span>
<span class="br0" style="color: #339966;">    }</span>
<span class="br0" style="color: #339966;">}</span></pre>
</p></blockquote>
<p>A l&rsquo;exécution de l&rsquo;application, vous verrez&nbsp; dans la liste les filtres pour l&rsquo;appareil photo.</p>
<p><img class="aligncenter" alt="" src="http://www.developer.nokia.com/Community/Wiki/images/b/bc/WhatsNewWP8_39_Camera_Lens.gif?20121030182852" width="214" height="408" /></p>
<h2>Camera : Enregistrement Vidéo</h2>
<p>Avec WP7, il était possible pour les applications de prendre des vidéos, mais c&rsquo;était <a href="http://msdn.microsoft.com/en-us/library/hh394041(VS.92).aspx" target="_blank">assez laborieux</a>. Avec la nouvelle API WP8 WinPRT pour la capture vidéo, il est maintenant très facile de capturer une vidéo et l&rsquo;enregistrer n&rsquo;importe où. Voici un exemple rapide de la capture d&rsquo;une vidéo pendant 2 secondes, la sauvegarde pour IsoStore, puis sa lecture.</p>
<div class="mw-geshi" dir="ltr" style="text-align: left;">
<div class="csharp source-csharp">
<blockquote><p>
<pre class="de1"><span class="kw1" style="color: #0000ff;">private </span>async <span class="kw4" style="color: #0000ff;">void </span>RecordAndPlayVideo<span class="br0" style="color: #339966;">(</span><span class="kw4" style="color: #0000ff;">object </span>sender, RoutedEventArgs e<span style="color: #339966;"><span class="br0">)</span>
<span class="br0">{</span>
</span>    StorageFolder isoStore<span class="sy0" style="color: #339966;"> =</span> await ApplicationData<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Current</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">LocalFolder</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetFolderAsync</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"IsolatedStore"</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
    <span class="kw1" style="color: #0000ff;">var </span>file <span class="sy0" style="color: #339966;">=</span> await isoStore<span class="sy0">.</span><span class="me1" style="color: #0000ff;">CreateFileAsync</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"foo.wmv"</span>, CreationCollisionOption<span class="sy0">.</span><span class="me1">ReplaceExisting</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
    <span class="kw1" style="color: #0000ff;">using</span> <span class="br0" style="color: #339966;">(</span><span class="kw1" style="color: #0000ff;">var </span>s <span class="sy0" style="color: #339966;">=</span> await file<span class="sy0">.</span><span class="me1" style="color: #0000ff;">OpenAsync</span><span class="br0" style="color: #339966;">(</span>FileAccessMode<span class="sy0">.</span><span class="me1" style="color: #0000ff;">ReadWrite</span><span style="color: #339966;"><span class="br0">)</span><span class="br0">)</span>
    <span class="br0">{</span>
</span>        <span class="kw1" style="color: #0000ff;">var </span>avDevice <span class="sy0" style="color: #339966;">=</span> await AudioVideoCaptureDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">OpenAsync</span><span class="br0" style="color: #339966;">(</span>CameraType<span class="sy0">.</span><span class="me1" style="color: #0000ff;">RearFacing</span>,
            AudioVideoCaptureDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetAvailableCaptureResolutions</span><span class="br0" style="color: #339966;">(</span>CameraType<span class="sy0">.</span><span class="me1" style="color: #0000ff;">RearFacing</span><span class="br0" style="color: #339966;">)</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">First</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>
        await avDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">StartRecordingToStreamAsync</span><span class="br0" style="color: #339966;">(</span>s<span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
        Thread<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Sleep</span><span class="br0" style="color: #339966;">(</span><span class="nu0">2000</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
        await avDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">StopRecordingAsync</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span>
    <span class="br0">}</span>
</span>
    <span class="kw3" style="color: #0000ff;">new </span>MediaPlayerLauncher<span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span>
    <span class="br0">{</span>
</span>        Media <span class="sy0">=</span> <span class="kw3" style="color: #0000ff;">new </span>Uri<span class="br0" style="color: #339966;">(</span>file<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Path</span>, UriKind<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Relative</span><span class="br0" style="color: #339966;">)</span>,
    <span class="br0" style="color: #339966;">}</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">Show</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span>
<span class="br0">}</span></span></pre>
</p></blockquote>
</div>
</div>
<p>Alors que l&rsquo;exemple de code peut sembler complexe, il est en fait assez simple. Tout d&rsquo;abord, il ouvre un fichier <strong>Foo.wmv</strong> dans <em>IsoStore</em> afin d&rsquo;écrire la vidéo dedans.</p>
<div class="mw-geshi" dir="ltr" style="text-align: left;">
<div class="csharp source-csharp">
<blockquote><p>
<pre class="de1"><span class="kw1" style="color: #0000ff;">private </span>async <span class="kw4" style="color: #0000ff;">void </span>RecordAndPlayVideo<span class="br0" style="color: #339966;">(</span><span class="kw4" style="color: #0000ff;">object </span>sender, RoutedEventArgs e<span style="color: #339966;"><span class="br0">)</span>
<span class="br0">{</span>
</span>    StorageFolder isoStore<span class="sy0" style="color: #339966;"> =</span> await ApplicationData<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Current</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">LocalFolder</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetFolderAsync</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"IsolatedStore"</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
    <span class="kw1" style="color: #0000ff;">var </span>file <span class="sy0" style="color: #339966;">=</span> await isoStore<span class="sy0">.</span><span class="me1" style="color: #0000ff;">CreateFileAsync</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"foo.wmv"</span>, CreationCollisionOption<span class="sy0">.</span><span class="me1" style="color: #0000ff;">ReplaceExisting</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
    <span class="kw1" style="color: #0000ff;">using</span> <span class="br0" style="color: #339966;">(</span><span class="kw1" style="color: #0000ff;">var </span>s <span class="sy0" style="color: #339966;">=</span> await file<span class="sy0">.</span><span class="me1" style="color: #0000ff;">OpenAsync</span><span class="br0" style="color: #339966;">(</span>FileAccessMode<span class="sy0">.</span><span class="me1" style="color: #0000ff;">ReadWrite</span><span style="color: #339966;"><span class="br0">)</span><span class="br0">)</span>
    <span class="br0">{</span>
    <span class="br0">}</span>
<span class="br0">}</span></span></pre>
</p></blockquote>
</div>
</div>
<p>Ensuite, on obtient la caméra frontale.</p>
<div class="mw-geshi" dir="ltr" style="text-align: left;">
<div class="csharp source-csharp">
<blockquote><p>
<pre class="de1"><span class="kw1" style="color: #0000ff;">private </span>async <span class="kw4" style="color: #0000ff;">void </span>RecordAndPlayVideo<span class="br0" style="color: #339966;">(</span><span class="kw4" style="color: #0000ff;">object </span>sender, RoutedEventArgs e<span style="color: #339966;"><span class="br0">)</span>
<span class="br0">{</span>
</span>    StorageFolder isoStore <span class="sy0" style="color: #339966;">=</span> await ApplicationData<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Current</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">LocalFolder</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetFolderAsync</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"IsolatedStore"</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span>
</span>    <span class="kw1" style="color: #0000ff;">var </span>file <span class="sy0" style="color: #339966;">=</span> await isoStore<span class="sy0">.</span><span class="me1" style="color: #0000ff;">CreateFileAsync</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"foo.wmv"</span>, CreationCollisionOption<span class="sy0">.</span><span class="me1" style="color: #0000ff;">ReplaceExisting</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
    <span class="kw1" style="color: #0000ff;">using</span><span class="br0" style="color: #339966;"> (</span><span class="kw1" style="color: #0000ff;">var </span>s <span class="sy0" style="color: #339966;">=</span> await file<span class="sy0">.</span><span class="me1" style="color: #0000ff;">OpenAsync</span><span class="br0" style="color: #339966;">(</span>FileAccessMode<span class="sy0">.</span><span class="me1" style="color: #0000ff;">ReadWrite</span><span style="color: #339966;"><span class="br0">)</span><span class="br0">)</span>
    <span class="br0">{</span>

</span>            <span class="kw1" style="color: #0000ff;">var </span>avDevice <span class="sy0" style="color: #339966;">=</span> await AudioVideoCaptureDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">OpenAsync</span><span class="br0" style="color: #339966;">(</span>CameraType<span class="sy0">.</span><span class="me1" style="color: #0000ff;">RearFacing</span>,
                AudioVideoCaptureDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetAvailableCaptureResolutions</span><span class="br0" style="color: #339966;">(</span>CameraType<span class="sy0">.</span><span class="me1" style="color: #0000ff;">RearFacing</span><span class="br0" style="color: #339966;">)</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">First</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span>

    <span class="br0">}</span>
<span class="br0">}</span></span></pre>
</p></blockquote>
</div>
</div>
<p>Ensuite, le code pour simuler quelqu&rsquo;un cliquant sur un bouton qui dit &laquo;&nbsp;Start Capture&nbsp;&raquo; puis attend pendant 2 secondes avant de cliquer sur un bouton qui dit &laquo;&nbsp;Stop Capture&nbsp;&raquo;. Évidemment, dans un scénario dans le monde réel, vous auriez un bouton&nbsp;&nbsp;&raquo;Start Capture&nbsp;&raquo; et un bouton &laquo;&nbsp;Stop Capture&nbsp;&raquo;, mais ce bout de code vous permettra de le&nbsp;simuler tout aussi bien.</p>
<div class="mw-geshi" dir="ltr" style="text-align: left;">
<div class="csharp source-csharp">
<blockquote><p>
<pre class="de1"><span class="kw1" style="color: #0000ff;">private </span>async <span class="kw4" style="color: #0000ff;">void </span>RecordAndPlayVideo<span class="br0" style="color: #339966;">(</span><span class="kw4" style="color: #0000ff;">object </span>sender, RoutedEventArgs e<span class="br0" style="color: #339966;">)
</span><span class="br0" style="color: #339966;">{
</span>    StorageFolder isoStore <span class="sy0" style="color: #339966;">=</span> await ApplicationData<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Current</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">LocalFolder</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetFolderAsync</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"IsolatedStore"</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
    <span class="kw1" style="color: #0000ff;">var </span>file <span class="sy0" style="color: #339966;">=</span> await isoStore<span class="sy0">.</span><span class="me1" style="color: #0000ff;">CreateFileAsync</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"foo.wmv"</span>, CreationCollisionOption<span class="sy0">.</span><span class="me1">ReplaceExisting</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
    <span class="kw1" style="color: #0000ff;">using</span> <span class="br0" style="color: #339966;">(</span><span class="kw1" style="color: #0000ff;">var </span>s <span class="sy0" style="color: #339966;">=</span> await file<span class="sy0">.</span><span class="me1" style="color: #0000ff;">OpenAsync</span><span class="br0" style="color: #339966;">(</span>FileAccessMode<span class="sy0">.</span><span class="me1" style="color: #0000ff;">ReadWrite</span><span style="color: #339966;"><span class="br0">)</span><span class="br0">)</span>
    <span class="br0">{</span>
</span>        <span class="kw1">var</span> avDevice <span class="sy0">=</span> await AudioVideoCaptureDevice<span class="sy0">.</span><span class="me1">OpenAsync</span><span class="br0" style="color: #339966;">(</span>CameraType<span class="sy0">.</span><span class="me1">RearFacing</span>,
            AudioVideoCaptureDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetAvailableCaptureResolutions</span><span class="br0" style="color: #339966;">(</span>CameraType<span class="sy0">.</span><span class="me1" style="color: #0000ff;">RearFacing</span><span class="br0" style="color: #339966;">)</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">First</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>

        await avDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">StartRecordingToStreamAsync</span><span class="br0" style="color: #339966;">(</span>s<span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
        Thread<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Sleep</span><span class="br0" style="color: #339966;">(</span><span class="nu0">2000</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
        await avDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">StopRecordingAsync</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span>

    <span class="br0">}</span>
<span class="br0">}</span></span></pre>
</p></blockquote>
</div>
</div>
<p>Et enfin l&rsquo;application peut lire le fichier <strong>foo.wmv</strong> dans l&rsquo;<em>IsoStore</em>.</p>
<div class="mw-geshi" dir="ltr" style="text-align: left;">
<div class="csharp source-csharp">
<blockquote><p>
<pre class="de1"><span class="kw1" style="color: #0000ff;">private </span>async <span class="kw4" style="color: #0000ff;">void </span>RecordAndPlayVideo<span class="br0" style="color: #339966;">(</span><span class="kw4">object</span> sender, RoutedEventArgs e<span style="color: #339966;"><span class="br0">)</span>
<span class="br0">{</span>
</span>    StorageFolder isoStore <span class="sy0" style="color: #339966;">=</span> await ApplicationData<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Current</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">LocalFolder</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetFolderAsync</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"Shared"</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
    <span class="kw1" style="color: #0000ff;">var </span>file <span class="sy0" style="color: #339966;">= </span>await isoStore<span class="sy0">.</span><span class="me1" style="color: #0000ff;">CreateFileAsync</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"foo.wmv"</span>, CreationCollisionOption<span class="sy0">.</span><span class="me1" style="color: #0000ff;">ReplaceExisting</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
    <span class="kw1" style="color: #0000ff;">using</span> <span class="br0">(</span><span class="kw1" style="color: #0000ff;">var </span>s <span class="sy0" style="color: #339966;">=</span> await file<span class="sy0">.</span><span class="me1" style="color: #0000ff;">OpenAsync</span><span class="br0" style="color: #339966;">(</span>FileAccessMode<span class="sy0">.</span><span class="me1" style="color: #0000ff;">ReadWrite</span><span style="color: #339966;"><span class="br0">)</span><span class="br0">)</span></span>
   <span class="br0" style="color: #339966;"> {
</span>        <span class="kw1" style="color: #0000ff;">var </span>avDevice <span class="sy0" style="color: #339966;">=</span> await AudioVideoCaptureDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">OpenAsync</span><span class="br0" style="color: #339966;">(</span>CameraSensorLocation<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Back</span>,
            AudioVideoCaptureDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetAvailableCaptureResolutions</span><span class="br0" style="color: #339966;">(</span>CameraSensorLocation<span class="sy0">.</span><span class="me1">Back</span><span class="br0" style="color: #339966;">)</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">First</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span>
</span>        await avDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">StartRecordingToStreamAsync</span><span class="br0" style="color: #339966;">(</span>s<span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
        Thread<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Sleep</span><span class="br0" style="color: #339966;">(</span><span class="nu0">2000</span><span class="br0" style="color: #339966;">)</span><span class="sy0" style="color: #339966;">;</span>
        await avDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">StopRecordingAsync</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span>
    <span class="br0">}</span>
</span>
    <span class="kw3" style="color: #0000ff;">new </span>MediaPlayerLauncher<span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span>
    <span class="br0">{</span>
</span>        Media <span class="sy0" style="color: #339966;">=</span> <span class="kw3" style="color: #0000ff;">new </span>Uri<span class="br0" style="color: #339966;">(</span>file<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Path</span>, UriKind<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Relative</span><span class="br0" style="color: #339966;">)</span>,
    <span class="br0" style="color: #339966;">}</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">Show</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span>
<span class="br0">}</span></span></pre>
</p></blockquote>
</div>
</div>
<p>L&rsquo;exécution de l&rsquo;application va maintenant saisir pendant 2 secondes la vidéo et la lire:</p>
<p><img class="aligncenter" alt="" src="http://www.developer.nokia.com/Community/Wiki/images/6/6d/WhatsNewWP8_40_Camera_Video.gif?20121030184943" width="285" height="544" /></p>
<h2>Camera : Information&nbsp; Matériel</h2>
<p>Grâce à la nouvelle API&nbsp;CameraDevice de WP8, il est possible d&rsquo;obtenir des informations supplémentaires sur la photo et les paramètres de la caméra vidéo. Des informations telles que la résolution prise en charge, la zone AF, balance des blancs, ISO, sons d&rsquo;obturateur, et d&rsquo;autres sont tous disponibles via cette nouvelle API.</p>
<p>Il y a beaucoup d&rsquo;informations et de fonctionnalités disponibles à travers cette API, mais pour des raisons de brièveté seulement quelques-unes sont couvertes ici.</p>
<div class="mw-geshi" dir="ltr" style="text-align: left;">
<div class="csharp source-csharp">
<blockquote><p>
<pre class="de1"><span class="kw1" style="color: #0000ff;">private </span>async <span class="kw4" style="color: #0000ff;">void </span>PhotoCameraProperties<span class="br0" style="color: #339966;">(</span><span class="kw4" style="color: #0000ff;">object </span>sender, RoutedEventArgs e<span style="color: #339966;"><span class="br0">)</span>
<span class="br0">{</span>
</span>    StringBuilder sb <span class="sy0" style="color: #339966;">=</span> <span class="kw3" style="color: #0000ff;">new </span>StringBuilder<span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"*** PhotoCaptureDevice statics ***"</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"PhotoCaptureDevice.AvailableSensorLocations: "</span>
        <span class="sy0" style="color: #339966;">+</span> PhotoCaptureDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AvailableSensorLocations</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">First</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span></span>
        <span class="sy0" style="color: #339966;">+</span> <span class="st0" style="color: #800000;">" "</span> <span class="sy0" style="color: #339966;">+ </span>PhotoCaptureDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AvailableSensorLocations</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">Skip</span><span class="br0" style="color: #339966;">(</span><span class="nu0">1</span><span class="br0" style="color: #339966;">)</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">First</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"PhotoCaptureDevice.GetAvailableCaptureResolutions(CameraSensorLocation.Back): "</span>
        <span class="sy0" style="color: #339966;">+</span> PhotoCaptureDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetAvailableCaptureResolutions</span><span class="br0" style="color: #339966;">(</span>CameraSensorLocation<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Back</span><span class="br0" style="color: #339966;">)</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">First</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"PhotoCaptureDevice.GetAvailablePreviewResolutions(CameraSensorLocation.Back): "
</span>        <span class="sy0" style="color: #339966;">+</span> PhotoCaptureDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetAvailablePreviewResolutions</span><span class="br0" style="color: #339966;">(</span>CameraSensorLocation<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Back</span><span class="br0" style="color: #339966;">)</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">First</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"PhotoCaptureDevice.IsFocusRegionSupported(CameraSensorLocation.Back): "</span> <span class="sy0" style="color: #339966;">+</span>
        PhotoCaptureDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">IsFocusRegionSupported</span><span class="br0" style="color: #339966;">(</span>CameraSensorLocation<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Back</span><span style="color: #339966;"><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"PhotoCaptureDevice.IsFocusSupported(CameraSensorLocation.Back): "</span> <span class="sy0" style="color: #339966;">+
</span>        PhotoCaptureDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">IsFocusSupported</span><span class="br0" style="color: #339966;">(</span>CameraSensorLocation<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Back</span><span style="color: #339966;"><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>

    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0"><span style="color: #800000;">"*** PhotoCaptureDevice  ***"</span></span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
    <span class="kw1" style="color: #0000ff;">var </span>photoDevice <span class="sy0" style="color: #339966;">=</span> await PhotoCaptureDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">OpenAsync</span><span class="br0" style="color: #339966;">(</span>CameraSensorLocation<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Back</span>,
        PhotoCaptureDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetAvailableCaptureResolutions</span><span class="br0" style="color: #339966;">(</span>CameraSensorLocation<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Back</span><span class="br0" style="color: #339966;">)</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">First</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>
    await photoDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">ResetFocusAsync</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></span>
    photoDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">FocusRegion</span> <span class="sy0" style="color: #339966;">=</span> <span class="kw3" style="color: #0000ff;">new </span>Windows<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Foundation</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">Rect</span><span class="br0" style="color: #339966;">(</span><span class="nu0">200</span>, <span class="nu0">200</span>, <span class="nu0">200</span>, <span class="nu0">200</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
    await photoDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">FocusAsync</span><span class="br0" style="color: #339966;">(</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>

    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"*** PhotoCaptureDevice Properties ***"</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"FocusRegion: "</span><span class="sy0" style="color: #339966;"> +</span> photoDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">FocusRegion</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"CaptureResolution: "</span> <span class="sy0" style="color: #339966;">+</span> photoDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">CaptureResolution</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"PreviewResolution: "</span> <span class="sy0" style="color: #339966;">+</span> photoDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">PreviewResolution</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"SensorLocation: "</span><span class="sy0" style="color: #339966;"> +</span> photoDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">SensorLocation</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"SensorRotationInDegrees: "</span> <span class="sy0" style="color: #339966;">+</span> photoDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">SensorRotationInDegrees</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>

    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"*** KnownCameraPhotoProperties Properties ***"</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"ExposureCompensation: "</span> <span class="sy0" style="color: #339966;">+
</span>        photoDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetProperty</span><span class="br0" style="color: #339966;">(</span>KnownCameraPhotoProperties<span class="sy0">.</span><span class="me1" style="color: #0000ff;">ExposureCompensation</span><span style="color: #339966;"><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"ExposureTime: "</span> <span class="sy0" style="color: #339966;">+
</span>        photoDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetProperty</span><span class="br0" style="color: #339966;">(</span>KnownCameraPhotoProperties<span class="sy0">.</span><span class="me1" style="color: #0000ff;">ExposureTime</span><span style="color: #339966;"><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"FlashMode: "</span> <span class="sy0" style="color: #339966;">+</span>
        photoDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetProperty</span><span class="br0" style="color: #339966;">(</span>KnownCameraPhotoProperties<span class="sy0">.</span><span class="me1" style="color: #0000ff;">FlashMode</span><span style="color: #339966;"><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"FlashPower: "</span> <span class="sy0" style="color: #339966;">+</span>
        photoDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetProperty</span><span class="br0" style="color: #339966;">(</span>KnownCameraPhotoProperties<span class="sy0">.</span><span class="me1" style="color: #0000ff;">FlashPower</span><span style="color: #339966;"><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"FocusIlluminationMode: "</span> <span class="sy0" style="color: #339966;">+
</span>        photoDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetProperty</span><span class="br0" style="color: #339966;">(</span>KnownCameraPhotoProperties<span class="sy0">.</span><span class="me1" style="color: #0000ff;">FocusIlluminationMode</span><span style="color: #339966;"><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"Iso: "</span> <span class="sy0" style="color: #339966;">+
</span>
        photoDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetProperty</span><span class="br0" style="color: #339966;">(</span>KnownCameraPhotoProperties<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Iso</span><span style="color: #339966;"><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"LockedAutoFocusParameters: "</span> <span class="sy0" style="color: #339966;">+
</span>        photoDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetProperty</span><span class="br0" style="color: #339966;">(</span>KnownCameraPhotoProperties<span class="sy0">.</span><span class="me1" style="color: #0000ff;">LockedAutoFocusParameters</span><span style="color: #339966;"><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"ManualWhiteBalance: "</span> <span class="sy0" style="color: #339966;">+
</span>        photoDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetProperty</span><span class="br0" style="color: #339966;">(</span>KnownCameraPhotoProperties<span class="sy0">.</span><span class="me1" style="color: #0000ff;">ManualWhiteBalance</span><span style="color: #339966;"><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"SceneMode: "</span> <span class="sy0" style="color: #339966;">+
</span>        photoDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetProperty</span><span class="br0" style="color: #339966;">(</span>KnownCameraPhotoProperties<span class="sy0">.</span><span class="me1" style="color: #0000ff;">SceneMode</span><span style="color: #339966;"><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"WhiteBalancePreset: "</span> <span class="sy0" style="color: #339966;">+
</span>        photoDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetProperty</span><span class="br0" style="color: #339966;">(</span>KnownCameraPhotoProperties<span class="sy0">.</span><span class="me1" style="color: #0000ff;">WhiteBalancePreset</span><span style="color: #339966;"><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>

    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"*** KnownCameraGeneralProperties Properties ***"</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"AutoFocusRange: "</span> <span class="sy0" style="color: #339966;">+
</span>        photoDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetProperty</span><span class="br0" style="color: #339966;">(</span>KnownCameraGeneralProperties<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AutoFocusRange</span><span style="color: #339966;"><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"IsShutterSoundEnabledByUser : "</span> <span class="sy0" style="color: #339966;">+</span>

        photoDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetProperty</span><span class="br0" style="color: #339966;">(</span>KnownCameraGeneralProperties<span class="sy0">.</span><span class="me1" style="color: #0000ff;">IsShutterSoundEnabledByUser</span> <span style="color: #339966;"><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"IsShutterSoundRequiredForRegion: "</span> <span class="sy0" style="color: #339966;">+</span>
        photoDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetProperty</span><span class="br0" style="color: #339966;">(</span>KnownCameraGeneralProperties<span class="sy0">.</span><span class="me1" style="color: #0000ff;">IsShutterSoundRequiredForRegion</span><span class="br0" style="color: #339966;">)</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0">(</span><span class="st0" style="color: #800000;">"ManualFocusPosition: "</span> <span class="sy0" style="color: #339966;">+
</span>        photoDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetProperty</span><span class="br0" style="color: #339966;">(</span>KnownCameraGeneralProperties<span class="sy0">.</span><span class="me1" style="color: #0000ff;">ManualFocusPosition</span><span style="color: #339966;"><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span>
</span>    photoDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Dispose</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></span>
    MessageBox<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Show</span><span class="br0" style="color: #339966;">(</span>sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">ToString</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span>
<span class="br0">}</span></span></pre>
</p></blockquote>
</div>
</div>
<p>L&rsquo;exécution de ce code affiche les résultats suivants dans l&rsquo;émulateur WP8:</p>
<p style="text-align: center;"><img class="alignnone" alt="" src="http://www.developer.nokia.com/Community/Wiki/images/a/a2/WhatsNewWP8_41_CameraDevice_PhotoCapture_device_properties_print_out_1.png?20121030184843" width="286" height="546" /> <img class="alignnone" alt="" src="http://www.developer.nokia.com/Community/Wiki/images/2/20/WhatsNewWP8_42_CameraDevice_PhotoCapture_device_properties_print_out_2.png?20121030183328" width="287" height="543" /></p>
<p>Vous pouvez obtenir des informations similaires pour la caméra vidéo:</p>
<div class="mw-geshi" dir="ltr" style="text-align: left;">
<div class="csharp source-csharp">
<pre class="de1"><span class="kw1" style="color: #0000ff;">private </span>async <span class="kw4" style="color: #0000ff;">void </span>AudioVideoCameraProperties<span class="br0" style="color: #339966;">(</span><span class="kw4" style="color: #0000ff;">object </span>sender, RoutedEventArgs e<span class="br0" style="color: #339966;">)</span>
<span class="br0" style="color: #339966;">{</span>
    StringBuilder sb <span class="sy0">=</span> <span class="kw3" style="color: #0000ff;">new </span>StringBuilder<span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span>
</span>    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"*** AudioVideoCaptureDevice statics ***"</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"AudioVideoCaptureDevice.AvailableSensorLocations: "
</span>        <span class="sy0" style="color: #339966;">+</span> AudioVideoCaptureDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AvailableSensorLocations</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">First</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span></span>
        <span class="sy0" style="color: #339966;">+</span> <span class="st0" style="color: #800000;">" "</span> <span class="sy0" style="color: #339966;">+</span> AudioVideoCaptureDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AvailableSensorLocations</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">Skip</span><span class="br0" style="color: #339966;">(</span><span class="nu0">1</span><span class="br0" style="color: #339966;">)</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">First</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"AudioVideoCaptureDevice.GetAvailableCaptureResolutions(CameraSensorLocation.Back): "</span>
        <span class="sy0" style="color: #339966;">+</span> AudioVideoCaptureDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetAvailableCaptureResolutions</span><span class="br0" style="color: #339966;">(</span>CameraSensorLocation<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Back</span><span class="br0" style="color: #339966;">)</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">First</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"AudioVideoCaptureDevice.GetAvailablePreviewResolutions(CameraSensorLocation.Back): "</span>
        <span class="sy0" style="color: #339966;">+</span> AudioVideoCaptureDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetAvailablePreviewResolutions</span><span class="br0" style="color: #339966;">(</span>CameraSensorLocation<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Back</span><span class="br0" style="color: #339966;">)</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">First</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"AudioVideoCaptureDevice.SupportedAudioEncodingFormats: "</span> <span class="sy0" style="color: #339966;">+</span>
        AudioVideoCaptureDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">SupportedAudioEncodingFormats</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">First</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"AudioVideoCaptureDevice.SupportedVideoEncodingFormats: "</span> <span class="sy0" style="color: #339966;">+
</span>        AudioVideoCaptureDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">SupportedVideoEncodingFormats</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">First</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>

    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"*** AudioVideoCaptureDevice  ***"</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
    <span class="kw1" style="color: #0000ff;">var </span>avDevice <span class="sy0">=</span> await AudioVideoCaptureDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">OpenAsync</span><span class="br0" style="color: #339966;">(</span>CameraSensorLocation<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Back</span>,
        AudioVideoCaptureDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetAvailableCaptureResolutions</span><span class="br0" style="color: #339966;">(</span>CameraSensorLocation<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Back</span><span class="br0" style="color: #339966;">)</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">First</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>

    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"*** AudioVideoCaptureDevice properties ***"</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"AudioEncodingFormat: "</span> <span class="sy0" style="color: #339966;">+</span> avDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AudioEncodingFormat</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"CaptureResolution: " </span><span class="sy0" style="color: #339966;">+</span> avDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">CaptureResolution</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"FocusRegion: "</span> <span class="sy0" style="color: #339966;">+</span> avDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">FocusRegion</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"PreviewResolution: "</span> <span class="sy0" style="color: #339966;">+</span> avDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">PreviewResolution</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"SensorLocation: "</span> <span class="sy0" style="color: #339966;">+ </span>avDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">SensorLocation</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"SensorRotationInDegrees: "</span> <span class="sy0" style="color: #339966;">+ </span>avDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">SensorRotationInDegrees</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"VideoEncodingFormat: "</span> <span class="sy0" style="color: #339966;">+ </span>avDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">VideoEncodingFormat</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>

    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"*** KnownCameraPhotoProperties properties ***"</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span>
</span>    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"UnmuteAudioWhileRecording: "</span> <span class="sy0" style="color: #339966;">+
</span>        avDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetProperty</span><span class="br0" style="color: #339966;">(</span>KnownCameraAudioVideoProperties<span class="sy0">.</span><span class="me1" style="color: #0000ff;">UnmuteAudioWhileRecording</span><span style="color: #339966;"><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"VideoFrameRate: "</span> <span class="sy0" style="color: #339966;">+
</span>        avDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetProperty</span><span class="br0" style="color: #339966;">(</span>KnownCameraAudioVideoProperties<span class="sy0">.</span><span class="me1" style="color: #0000ff;">VideoFrameRate</span><span style="color: #339966;"><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"VideoTorchMode: "</span> <span class="sy0" style="color: #339966;">+</span>
        avDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetProperty</span><span class="br0" style="color: #339966;">(</span>KnownCameraAudioVideoProperties<span class="sy0">.</span><span class="me1" style="color: #0000ff;">VideoTorchMode</span><span style="color: #339966;"><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"VideoTorchPower: "</span> <span class="sy0" style="color: #339966;">+
</span>        avDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetProperty</span><span class="br0" style="color: #339966;">(</span>KnownCameraAudioVideoProperties<span class="sy0">.</span><span class="me1" style="color: #0000ff;">VideoTorchPower</span><span style="color: #339966;"><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>

    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"*** KnownCameraGeneralProperties properties ***"</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span>
</span>    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"AutoFocusRange: "</span> <span class="sy0" style="color: #339966;">+
</span>        avDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetProperty</span><span class="br0" style="color: #339966;">(</span>KnownCameraGeneralProperties<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AutoFocusRange</span><span style="color: #339966;"><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"IsShutterSoundEnabledByUser: "</span> <span class="sy0" style="color: #339966;">+</span>
        avDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetProperty</span><span class="br0" style="color: #339966;">(</span>KnownCameraGeneralProperties<span class="sy0">.</span><span class="me1" style="color: #0000ff;">IsShutterSoundEnabledByUser</span><span style="color: #339966;"><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span>
</span>    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"PlayShutterSoundOnCapture: "</span> <span class="sy0" style="color: #339966;">+
</span>        avDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetProperty</span><span class="br0">(</span>KnownCameraGeneralProperties<span class="sy0">.</span><span class="me1" style="color: #0000ff;">PlayShutterSoundOnCapture</span><span class="br0" style="color: #339966;">)</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"IsShutterSoundRequiredForRegion: "</span> <span class="sy0" style="color: #339966;">+
</span>        avDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetProperty</span><span class="br0" style="color: #339966;">(</span>KnownCameraGeneralProperties<span class="sy0">.</span><span class="me1" style="color: #0000ff;">IsShutterSoundRequiredForRegion</span><span style="color: #339966;"><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>
    sb<span class="sy0">.</span><span class="me1">AppendLine</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"ManualFocusPosition: "</span> <span class="sy0" style="color: #339966;">+
</span>        avDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetProperty</span><span class="br0" style="color: #339966;">(</span>KnownCameraGeneralProperties<span class="sy0">.</span><span class="me1" style="color: #0000ff;">ManualFocusPosition</span><span style="color: #339966;"><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>

    avDevice<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Dispose</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span>
</span>
    MessageBox<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Show</span><span class="br0" style="color: #339966;">(</span>sb<span class="sy0">.</span><span class="me1" style="color: #0000ff;">ToString</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span>
<span class="br0">}</span></span></pre>
</div>
<p>L&rsquo;exécution de ce petit bout de code depuis votre application affiche les informations suivantes dans l&rsquo;émulateur:</p>
<p style="text-align: center;">&nbsp;<img class="alignnone" alt="" src="http://www.developer.nokia.com/Community/Wiki/images/d/df/WhatsNewWP8_43_AudioVideoCaptureDevice_properties_printout_1.png?20121030184812" width="287" height="541" />&nbsp;<img class="alignnone" alt="" src="http://www.developer.nokia.com/Community/Wiki/images/c/cf/WhatsNewWP8_44_AudioVideoCaptureDevice_properties_printout_2.png?20121030183258" width="287" height="550" /></p>
<p>source: <a href="http://www.developer.nokia.com" target="_blank">developer.nokia.com</a></p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.nokiadevblog.fr/2013/02/nouveautes-du-sdk-camera/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Créez une webapp pour S40 en 30 minutes chrono !</title>
		<link>http://www.nokiadevblog.fr/2013/02/creez-une-webapp-pour-s40-en-30-minutes-chrono/</link>
		<comments>http://www.nokiadevblog.fr/2013/02/creez-une-webapp-pour-s40-en-30-minutes-chrono/#comments</comments>
		<pubDate>Mon, 04 Feb 2013 14:37:52 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[Développer]]></category>

		<guid isPermaLink="false">http://www.nokiadevblog.fr/?p=2332</guid>
		<description><![CDATA[Avec près de 10 millions de téléphones S40 &#171;&#160;Asha Full Touch&#160;&#187; vendus rien qu’au 4eme trimestre 2012, la plateforme S40 de Nokia offre de superbes opportunités de développement, notamment dans certaines régions du globe ( Afrique/Amérique du sud&#8230;). Nous allons vous montrer comment réaliser facilement et rapidement une webapp de flux RSS en 30 minutes. [...]]]></description>
				<content:encoded><![CDATA[<p>Avec près de 10 millions de téléphones S40 &laquo;&nbsp;Asha Full Touch&nbsp;&raquo; vendus rien qu’au 4eme trimestre 2012, la plateforme S40 de Nokia offre de superbes opportunités de développement, notamment dans certaines régions du globe ( Afrique/Amérique du sud&#8230;). Nous allons vous montrer comment réaliser facilement et rapidement une webapp de flux RSS en 30 minutes.</p>
<p><span id="more-2332"></span></p>
<h2>Les outils et technologies nécessaires</h2>
<p>Cette application est donc destinée à la plateforme S40, en Java 2 Micro Edition et sur le web basé sur le browser XpressBuilder. Mais si vous voulez d&rsquo;abord en savoir plus sur la technologie S40, cliquez <a title="S40" href="http://www.developer.nokia.com/Develop/Series_40/Series_40_web_apps/" target="_blank">ici</a>.</p>
<p>Pour vous lancer, rien de plus simple, il n&rsquo;y a qu&rsquo;un seul outil à installer : les<a href="http://www.developer.nokia.com/Develop/Series_40/Series_40_web_apps/Tools/" target="_blank"> Nokia Web Tools 2.0</a> qui contient l&rsquo;environnement de développement intégré (IDE) et le Webapp simulateur, compatible avec Windows, Linux et MacOSX.</p>
<h2>1ere étape : la création d&rsquo;un projet</h2>
<p>Nous allons utiliser ici un template de projet de type flux RSS. Pour commencer, cliquez sur le menu &laquo;&nbsp;File&nbsp;&raquo; et sélectionnez &laquo;&nbsp;New&nbsp;&raquo; puis &laquo;&nbsp;Series 40 web app (wgt)&nbsp;&raquo;.</p>
<p><img class="aligncenter" alt="" src="http://www.nokiadevblog.fr/files/Images_Article_S40/Image1.png" width="532" height="487" /></p>
<p>Une boite de dialogue &laquo;&nbsp;New Series 40 web app&nbsp;&raquo; va s&rsquo;ouvrir. Sélectionnez le template &laquo;&nbsp;RSS feed project&nbsp;&raquo; puis cliquez sur &laquo;&nbsp;Next&nbsp;&raquo;.</p>
<p><img class="aligncenter" alt="" src="http://www.nokiadevblog.fr/files/Images_Article_S40/Image2.png" width="707" height="541" /></p>
<p>La page suivante permet de saisir des informations sur votre projet :</p>
<ul>
<li>Project name : ajoutez ici le nom du projet (par exemple : MyNews)</li>
<li>Display Name : c&rsquo;est le nom de l’appli affichée sur le téléphone</li>
<li>Unique Identifier : l&rsquo;identifiant unique</li>
<li>Version # : le numéro de version courant</li>
<li>Short Name : le nom raccourci</li>
</ul>
<p><img class="aligncenter" alt="" src="http://www.nokiadevblog.fr/files/Images_Article_S40/Image3.png" width="713" height="553" /></p>
<p>Ensuite vous saisissez les informations relatives à votre flux RSS :</p>
<ul>
<li>Name of main HTML : ceci représente la page d’accueil de votre webapp.</li>
<li>RSS feed URL : URL pointant sur votre flux</li>
<li>Author : nom d’auteur</li>
<li>Author email : email de contact de l’auteur</li>
<li>License : copyright</li>
<li>Description : descriptif de votre webapp</li>
</ul>
<p>Et voilà ! En cliquant sur &laquo;&nbsp;Finish&nbsp;&raquo;, l’éditeur va générer automatiquement une webapp de flux RSS.</p>
<p><img class="aligncenter" alt="" src="http://www.nokiadevblog.fr/files/Images_Article_S40/Image4.png" width="717" height="522" /></p>
<h2>2eme étape : testez votre application</h2>
<p>Pour tester votre webapp, deux options s&rsquo;offrent à vous via le Web App Simulator (WAS). Vous pouvez faire une preview basée sur une exécution serveur (cloud). Cette option fournit une expérience très proche de celle d’un téléphone. Ou vous pouvez faire une preview locale, très utile pour travailler en mode déconnecté ou pour débugger votre webapp.</p>
<p><img class="aligncenter" alt="" src="http://www.nokiadevblog.fr/files/Images_Article_S40/Image5.png" width="460" height="201" /></p>
<p>En cliquant sur &laquo;&nbsp;Cloud Preview for Web app&nbsp;&raquo;, l’éditeur va valider le code de la webapp puis l’envoyer au WAS.</p>
<p><img class="aligncenter" alt="" src="http://www.nokiadevblog.fr/files/Images_Article_S40/Image6.png" width="391" height="552" /></p>
<p>Voici comment le Web App Sumulator fonctionne. L&rsquo;interraction se fait à la souris et vous pouvez ajuster les réglages du simulateur (vous pouvez par exemple définir un proxy).</p>
<p><img class="aligncenter" alt="" src="http://www.nokiadevblog.fr/files/Images_Article_S40/Image7.png" width="518" height="575" /></p>
<h2>3eme étape : Déployez votre application sur un téléphone S40 FT</h2>
<p>Il&nbsp;existe&nbsp;deux façons de déployer votre webapp sur un téléphone. Vous pouvez la déployer via Bluetooth avec une connexion entre votre téléphone et votre ordinateur ou sur le web en saisissant une URL&nbsp;courte&nbsp;générée par l&rsquo;IDE dans le navigateur internet Nokia Xpress du téléphone. Nous Allons vous montrer comment déployer votre application grâce à une URL. Pour en savoir plus sur le déploiement en Bluetooth, cliquez <a title="doc déploiement Bluetooth " href="https://docs.in.nokia.com/Resources/Library/Series_40_web_apps_library/" target="_blank">ici</a>.&nbsp;</p>
<p>Pour commencer, ouvrez le menu contextuel et sélectionnez &laquo;&nbsp;deploying web app&nbsp;&raquo;.</p>
<p><img class="aligncenter" alt="" src="http://www.nokiadevblog.fr/files/Images_Article_S40/Image8.png" width="298" height="40" /></p>
<p>Validez ensuite la demande de confirmation d&rsquo;exécution en tâche de fond.</p>
<p><img class="aligncenter" alt="" src="http://www.nokiadevblog.fr/files/Images_Article_S40/Image9.png" width="416" height="182" /></p>
<p>Puis activez la console afin de récupérer l&rsquo;URL courte générée (en vert).</p>
<p><img class="aligncenter" alt="" src="http://www.nokiadevblog.fr/files/Images_Article_S40/Image10.png" width="650" height="297" /></p>
<p>Sur votre téléphone Asha,&nbsp;ouvrez le navigateur web Xpress, sélectionnez &laquo;&nbsp;Deploying web app&nbsp;&raquo; et saisissez l’url courte.&nbsp;</p>
<p><img class="aligncenter" alt="" src="http://www.nokiadevblog.fr/files/Images_Article_S40/Image11.png" width="479" height="388" /></p>
<p>La webapp s&rsquo;installe alors et se lance.</p>
<p><img class="aligncenter" alt="" src="http://www.nokiadevblog.fr/files/Images_Article_S40/Image12.png" width="206" height="402" /></p>
<p>Et si vous n&rsquo;avez pas de Nokia Asha, rassurez vous, vous pouvez accéder au service gratuit &laquo;&nbsp;Remote Acces Device&nbsp;&raquo;.&nbsp;</p>
<p><img class="aligncenter" alt="" src="http://www.nokiadevblog.fr/files/Images_Article_S40/Image13.png" width="513" height="604" /></p>
<p>Vous pourrez retrouver plus d&rsquo;informations sur ce service <a title="Remote device access" href="https://www.developer.nokia.com/Devices/Remote_device_access/" target="_blank">ici</a>.&nbsp;</p>
<h2>4eme étape : modifiez trois graphiques</h2>
<p>Avec le template de projet “RSS Feed”, des images sont automatiquement générées pour vous :</p>
<ul>
<li>Une icône : &nbsp; &nbsp; &nbsp; &nbsp;<img class="alignnone" alt="" src="http://www.nokiadevblog.fr/files/Images_Article_S40/Image14.png" width="77" height="77" /></li>
</ul>
<ul>
<li>Une barre des titres : &nbsp; &nbsp;&nbsp;<img class="alignnone" alt="" src="http://www.nokiadevblog.fr/files/Images_Article_S40/Image15.png" width="195" height="39" /></li>
</ul>
<ul>
<li>Et un bouton pour lire l&rsquo;article complet dans le navigateur internet : &nbsp; &nbsp;&nbsp;<img class="alignnone" alt="" src="http://www.nokiadevblog.fr/files/Images_Article_S40/Image16.png" width="126" height="35" /></li>
</ul>
<p>Ces trois images sont stockées&nbsp;dans&nbsp;le répertoire&nbsp;&lt;mon_projet&gt;\s40-theme\images</p>
<h2>5eme étape : Publiez votre webapp sur Nokia Store</h2>
<p>Pour publier votre webapp sur le Nokia Store, commencez par vous rendre <a href="http://info.publish.nokia.com/" target="_blank">ici</a>. Après vous être&nbsp;identifié(e), créez un nouveau &laquo;&nbsp;content item&nbsp;&raquo; et sélectionnez Series 40 Web App.</p>
<p><img class="aligncenter" alt="" src="http://www.nokiadevblog.fr/files/Images_Article_S40/Image17.png" width="651" height="316" /></p>
<p>Il ne vous reste plus qu&rsquo;à répondre aux trois questions juridiques, saisir les métadonnées de votre web app et charger votre fichier d&rsquo;extensions &laquo;&nbsp;.wgt&nbsp;&raquo; généré par votre IDE.&nbsp;</p>
<p style="text-align: center;"><img class="aligncenter" alt="" src="http://www.nokiadevblog.fr/files/Images_Article_S40/Image18.png" width="775" height="297" /></p>
<p>Et voilà, vous avez créé votre web app de flux RSS pour S 40 !</p>
<p>Source : <a title="PPT S40 webapp" href="http://www.nokiadevblog.fr/files/S40%20Webapp.pptx" target="_blank">S40 Webapp</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nokiadevblog.fr/2013/02/creez-une-webapp-pour-s40-en-30-minutes-chrono/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nouveautés du SDK – Portefeuille</title>
		<link>http://www.nokiadevblog.fr/2013/02/nouveautes-du-sdk-portefeuille/</link>
		<comments>http://www.nokiadevblog.fr/2013/02/nouveautes-du-sdk-portefeuille/#comments</comments>
		<pubDate>Mon, 04 Feb 2013 13:40:38 +0000</pubDate>
		<dc:creator>Victor</dc:creator>
				<category><![CDATA[Développer]]></category>

		<guid isPermaLink="false">http://www.nokiadevblog.fr/?p=2280</guid>
		<description><![CDATA[La nouvelle application Portefeuille (Wallet) dans WP8 est une excellente occasion pour vous de vous faire remarquer. L&#8217;application Portefeuille peut être considérée comme une plaque tournante pour les applications qui offrent des biens et des services locaux : pensez à un hub construit à chaque fois que les utilisateurs veulent faire &#171;&#160;quelque chose quelque part&#160;&#187;. [...]]]></description>
				<content:encoded><![CDATA[<p>La nouvelle application Portefeuille (Wallet) dans WP8 est une excellente occasion pour vous de vous faire remarquer. L&rsquo;application Portefeuille peut être considérée comme une plaque tournante pour les applications qui offrent des biens et des services locaux : pensez à un hub construit à chaque fois que les utilisateurs veulent faire &laquo;&nbsp;quelque chose quelque part&nbsp;&raquo;. C&rsquo;est le Portefeuille. C&rsquo;est grâce à&nbsp;l&rsquo;API que les développeurs peuvent ajouter des offres ponctuelles, des instruments de paiement multi-usages ou des éléments génériques.</p>
<p><span id="more-2280"></span></p>
<h2>Portefeuille : Bons plans</h2>
<p>Pour illustrer cela, commencez par ajouter un nouvel accord pour le Portefeuille. Dans le monde réel ce serait une offre dans le style de Groupon, où vous pouvez ajouter des offres locales au Portefeuille à utiliser plus tard. Dans cet exemple trivial, vous allez ajouter &laquo;&nbsp;un article gratuit&nbsp;&raquo; au Portefeuille. Cet exemple utilise le plus grand nombre possible de&nbsp;propriétés pour montrer la polyvalence du Portefeuille, mais seulement quelques-unes sont obligatoires.</p>
<div class="mw-geshi" dir="ltr" style="text-align: left;">
<div class="csharp source-csharp">
<blockquote><p>
<pre class="de1"><span class="kw1" style="color: #0000ff;">private </span>async <span class="kw4" style="color: #0000ff;">void </span>Wallet_CreateNewDeal<span class="br0" style="color: #339966;">(</span><span class="kw4" style="color: #0000ff;">object </span>sender, RoutedEventArgs e<span class="br0" style="color: #339966;">)
</span><span class="br0" style="color: #339966;">{
</span>    <span class="kw1" style="color: #0000ff;">var </span>item <span class="sy0" style="color: #339966;">=</span> <span class="kw3" style="color: #0000ff;">new </span>Deal<span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span>
    <span class="br0">{</span>
</span>        MerchantName <span class="sy0" style="color: #339966;">=</span> <span class="st0">"JustinAngel.net"</span>,
        DisplayName <span class="sy0" style="color: #339966;">=</span> <span class="st0">"Free Blog article!"</span>,
        Description <span class="sy0" style="color: #339966;">=</span> <span class="st0">"Justin will give you a free blog post."</span>,
        CustomerName <span class="sy0" style="color: #339966;">=</span> <span class="st0">"You"</span>,
        ExpirationDate <span class="sy0" style="color: #339966;">=</span> DateTime<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Now</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">AddDays</span><span class="br0" style="color: #339966;">(</span><span class="nu0">14</span><span class="br0" style="color: #339966;">)</span>,
        IssuerName <span class="sy0" style="color: #339966;">=</span> <span class="st0">"JustinAngel.net Inc."</span>,
        IssuerWebsite <span class="sy0" style="color: #339966;">= </span><span class="kw3" style="color: #0000ff;">new </span>Uri<span class="br0" style="color: #339966;">(</span><span class="st0">"http://JustinAngel.net"</span><span class="br0" style="color: #339966;">)</span>,

        NavigationUri <span class="sy0" style="color: #339966;">=</span> <span class="kw3" style="color: #0000ff;">new </span>Uri<span class="br0" style="color: #339966;">(</span><span class="st0">"/mainpage.xaml?wallet=Deal"</span>, UriKind<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Relative</span><span class="br0" style="color: #339966;">)</span>,

        Notes <span class="sy0" style="color: #339966;">=</span> <span class="st0">"I like turtles."</span>,
        OfferWebsite <span class="sy0" style="color: #339966;">=</span> <span class="kw3" style="color: #0000ff;">new </span>Uri<span class="br0" style="color: #339966;">(</span><span class="st0">"http://JustinAngel.net/wp7"</span><span class="br0" style="color: #339966;">)</span>,
        TermsAndConditions <span class="sy0" style="color: #339966;">=</span> <span class="st0">"May only be used once. OK, twice."</span>,
        Logo99x99 <span class="sy0" style="color: #339966;">=</span> GetBitmapSource<span class="br0" style="color: #339966;">(</span><span class="st0">"99x99.png"</span><span class="br0" style="color: #339966;">)</span>,
        Logo159x159<span class="sy0" style="color: #339966;"> =</span> GetBitmapSource<span class="br0" style="color: #339966;">(</span><span class="st0">"159x159.png"</span><span class="br0" style="color: #339966;">)</span>,
        Logo336x336 <span class="sy0" style="color: #339966;">=</span> GetBitmapSource<span class="br0" style="color: #339966;">(</span><span class="st0">"336x336.png"</span><span class="br0" style="color: #339966;">)</span>,
        BarcodeImage <span class="sy0" style="color: #339966;">=</span> GetBitmapSource<span class="br0" style="color: #339966;">(</span><span class="st0">"Barcode.png"</span><span class="br0" style="color: #339966;">)</span>
    <span style="color: #339966;"><span class="br0">}</span><span class="sy0">;</span>
</span>&nbsp;
    await item<span class="sy0">.</span><span class="me1" style="color: #0000ff;">SaveAsync</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></span>

    Launcher<span class="sy0">.</span><span class="me1" style="color: #0000ff;">LaunchUriAsync</span><span class="br0" style="color: #339966;">(</span><span class="kw3" style="color: #0000ff;">new </span>Uri<span class="br0" style="color: #339966;">(</span><span class="st0">"wallet://"</span>, UriKind<span class="sy0">.</span><span class="me1" style="color: #0000ff;">RelativeOrAbsolute</span><span style="color: #339966;"><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>
<span class="br0" style="color: #339966;">}
</span>&nbsp;
<span class="kw1" style="color: #0000ff;">private </span>BitmapSource GetBitmapSource<span class="br0" style="color: #339966;">(</span><span class="kw4" style="color: #0000ff;">string </span>url<span style="color: #339966;"><span class="br0">)</span>
<span class="br0">{</span>
</span>    <span class="kw1" style="color: #0000ff;">var </span>bmp <span class="sy0" style="color: #339966;">=</span> <span class="kw3" style="color: #0000ff;">new </span>BitmapImage<span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></span>
    bmp<span class="sy0">.</span><span class="me1" style="color: #0000ff;">SetSource</span><span class="br0">(</span>Application<span class="sy0">.</span><span class="me1" style="color: #0000ff;">GetResourceStream</span><span class="br0" style="color: #339966;">(</span><span class="kw3" style="color: #0000ff;">new </span>Uri<span class="br0" style="color: #339966;">(</span>url, UriKind<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Relative</span><span style="color: #339966;"><span class="br0">)</span><span class="br0">)</span></span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">Stream</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
    <span class="kw1" style="color: #0000ff;">return </span>bmp<span style="color: #339966;"><span class="sy0">;</span>
<span class="br0">}</span></span></pre>
</p></blockquote>
</div>
</div>
<p>Il y a quelques petites choses intéressantes dans cet extrait de code. Vous commencez par créer un nouvel élément de Portefeuille &laquo;&nbsp;Deal&nbsp;&raquo;. Ensuite, remplissez quelques propriétés comme un site unique pour l&rsquo;offre, une pièce d&rsquo;identité, certaines propriétés d&rsquo;affichage, et un code à barres. L&rsquo;article est alors enregistré dans le Portefeuille et l&rsquo;application est lancée.</p>
<p>Vous devez également ajouter une autorisation qui va permettre à l&rsquo;application d&rsquo;ajouter des éléments Portefeuille.</p>
<div class="mw-geshi" dir="ltr" style="text-align: left;">
<div class="xml source-xml">
<pre class="de1"><span class="sc3" style="color: #000000;"><strong><span class="re1"><Capability</span></strong> <span class="re0" style="color: #000080;">Name</span><span style="color: #339966;">=</span><span class="st0" style="color: #800000;">"ID_CAP_WALLET"</span> <strong><span class="re2">/></span></strong></span></pre>
</div>
</div>
<p>Et voici ce à quoi l&rsquo;élément Portefeuille ressemble :</p>
<div class="wp-caption aligncenter" style="width: 244px"><img alt="" src="http://www.developer.nokia.com/Community/Wiki/images/f/f6/WhatsNewWP8_45_Wallet_app_with_a_deal.png?20121030183048" width="234" height="437" /><p class="wp-caption-text">Application Portefeuille avec un bon plan</p></div>
<div class="wp-caption aligncenter" style="width: 242px"><img alt="" src="http://www.developer.nokia.com/Community/Wiki/images/8/87/WhatsNewWP8_46_Wallet_Details_view_for_a_wallet_deal.png?20121030183137" width="232" height="437" /><p class="wp-caption-text">Vue détaillée d&rsquo;un bon plan</p></div>
<div class="wp-caption aligncenter" style="width: 237px"><img alt="" src="http://www.developer.nokia.com/Community/Wiki/images/2/2d/WhatsNewWP8_47_Wallet_More_details_for_a_wallet_deal.png?20121030192439" width="227" height="438" /><p class="wp-caption-text">Plus de détails</p></div>
<p>Les utilisateurs peuvent cliquer sur le bouton&nbsp;&nbsp;&raquo;ouvrir app&nbsp;&raquo; qui va ouvrir l&rsquo;application actuellement associée à cet article Portefeuille : le code a spécifié est un lien vers &laquo;&nbsp;<em>/mainpage.xaml?wallet=Deal</em>&nbsp;&raquo; dans le cadre d&rsquo;un item du&nbsp;Portefeuille. Lorsque l&rsquo;utilisateur clique sur ce bouton, vous pouvez voir que c&rsquo;est le lien utilisé.</p>
<p style="text-align: center;"><img class="aligncenter" alt="" src="http://www.developer.nokia.com/Community/Wiki/images/3/3a/WhatsNewWP8_49_Wallet_MessageBox_showing_the_wallet-equals-deal_parameter.png?20121030183111" width="286" height="207" /></p>
<p>Il&nbsp;y a beaucoup de façons pour un utilisateur d&rsquo;acheter dans un bon plan unique. Cela pourrait se faire sur le site Web par une offre exécuté sur un serveur Web, dans le cadre de l&rsquo;application, en scannant le code à barres&nbsp;de l&rsquo;offre, et ainsi de suite. Tout dépend de l&rsquo;usage professionnel spécifique pour le Portefeuille.</p>
<h2>Portefeuille : Background Agents</h2>
<p>Dans le cadre de la fonctionnalité Portefeuille, un background agent&nbsp;a été introduit à WP8. Cet agent permet d&rsquo;actualiser les données des éléments Portefeuille, recevoir des activations/désactivations&nbsp;de l&rsquo;élément sécurisé via&nbsp;NFC &nbsp;à l&rsquo;élément associée, et l&rsquo;action des modifications de paiement effectuées par le Portefeuille.</p>
<p>Voici un exemple d&rsquo;un background agent simple qui répond à une demande&nbsp;&nbsp;&raquo;refresh&nbsp;&raquo; dans un article de Portefeuille. Ceci est fait pour que l&rsquo;application puisse obtenir les dernières informations sur les points du Portefeuille dans le Cloud. Ce background agent simple échouera systématiquement pour l&rsquo;obtention des données (car il n&rsquo;y a pas de données dans le nuage) et marquer tous les éléments comme &laquo;&nbsp;attention de l&rsquo;utilisateur est nécessaire&nbsp;&raquo; (“user attention is required”).</p>
<div class="mw-geshi" dir="ltr" style="text-align: left;">
<div class="xml source-xml">
<blockquote><p>
<pre class="de1"><strong><span class="sc3" style="color: #000000;"><span class="re1"><Tasks<span class="re2">></span></span></span></strong>
<span class="sc3" style="color: #000000;"><strong>  <span class="re1"><DefaultTask</span></strong> <span class="re0" style="color: #000080;">Name</span><span style="color: #339966;">=</span><span class="st0" style="color: #800000;">"_default"</span> <span class="re0" style="color: #000080;">NavigationPage</span><span style="color: #339966;">=</span><span class="st0" style="color: #800000;">"MainPage.xaml"</span> <strong><span class="re2">/></span></strong></span>
<span class="sc3" style="color: #000000;"><strong>  <span class="re1"><ExtendedTask</span></strong> <span class="re0" style="color: #000080;">Name</span><span style="color: #339966;">=</span><span class="st0" style="color: #800000;">"BackgroundTask"</span><span class="re2">></span></span>
<span class="sc3" style="color: #000000;"><strong>    <span class="re1"><BackgroundServiceAgent</span></strong> <span class="re0" style="color: #000080;">Specifier</span><span style="color: #339966;">=</span><span class="st0" style="color: #800000;">"WalletAgent"</span></span>
<span class="sc3" style="color: #000000;"><span class="re0" style="color: #000080;">                            Name</span><span style="color: #339966;">=</span><span class="st0" style="color: #800000;">"myWalletAgent"</span></span>
<span class="sc3" style="color: #000000;"><span class="re0" style="color: #000080;">                            Source</span><span style="color: #339966;">=</span><span class="st0" style="color: #800000;">"WP8_Beta_22"</span></span>
<span class="sc3" style="color: #000000;"><span class="re0" style="color: #000080;">                            Type</span><span style="color: #339966;">=</span><span class="st0" style="color: #800000;">"WP8_Beta_22.myWalletAgent"</span> <strong><span class="re2">/></span></strong></span>
<strong><span class="sc3" style="color: #000000;">  <span class="re1"></ExtendedTask<span class="re2">></span></span></span></strong>
<strong><span class="sc3" style="color: #000000;"><span class="re1"></Tasks<span class="re2">></span></span></span></strong></pre>
</p></blockquote>
</div>
</div>
<div class="mw-geshi" dir="ltr" style="text-align: left;">
<div class="csharp source-csharp">
<blockquote><p>
<pre class="de1"><span class="kw1" style="color: #0000ff;">public</span> <span class="kw4" style="color: #0000ff;">class </span>myWalletAgent <span class="sy0" style="color: #339966;">:</span> WalletAgent
<span class="br0" style="color: #339966;">{</span>
    <span class="kw1" style="color: #0000ff;">protected</span> <span class="kw1" style="color: #0000ff;">override</span> <span class="kw4" style="color: #0000ff;">void </span>OnRefreshData<span class="br0" style="color: #339966;">(</span>RefreshDataEventArgs args<span class="br0" style="color: #339966;">)</span>
<span class="br0" style="color: #339966;">    {</span>
        <span class="kw1" style="color: #0000ff;">foreach</span> <span class="br0" style="color: #339966;">(</span>WalletItem item <span class="kw1" style="color: #0000ff;">in </span>args<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Items</span><span class="br0" style="color: #339966;">)</span>
<span class="br0" style="color: #339966;">        {</span>
            item<span class="sy0">.</span><span class="me1" style="color: #0000ff;">SetUserAttentionRequiredNotification</span><span class="br0" style="color: #339966;">(</span><span class="kw1" style="color: #0000ff;">true</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
<span class="br0" style="color: #339966;">        }</span>

        <span class="kw1" style="color: #0000ff;">base</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">OnRefreshData</span><span class="br0" style="color: #339966;">(</span>args<span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
        NotifyComplete<span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></span>
<span class="br0" style="color: #339966;">    }</span>
<span class="br0" style="color: #339966;">}</span></pre>
</p></blockquote>
</div>
</div>
<p>Après le «refresh» de l&rsquo;élément détails, que ce soit manuellement ou automatiquement, vous verrez que l&rsquo;article requiert une attention via le&nbsp;Portefeuille:</p>
<p style="text-align: center;"><img class="aligncenter" alt="" src="http://www.developer.nokia.com/Community/Wiki/images/2/2d/WhatsNewWP8_50_Wallet_app_with_an_attention_required_on_our_deal.png?20121030183202" width="230" height="442" />&nbsp;<img class="aligncenter" alt="" src="http://www.developer.nokia.com/Community/Wiki/images/6/6e/WhatsNewWP8_51_Wallet_app_attention_required_MessageBox_in_a_deal.png?20121030183440" width="232" height="434" /></p>
<p>Au lieu de marquer l&rsquo;article comme &laquo;&nbsp;requiring attention&nbsp;&raquo;,&nbsp;vous auriez pu facilement le mettre à jour à partir des données récupérées dans le Cloud.</p>
<h2>Portefeuille : Instrument de paiement</h2>
<p>Il y a beaucoup d&rsquo;applications qui incluent de&nbsp;la monnaie virtuelle et il est logique que celle-ci devrait être dans le portefeuille de l&rsquo;utilisateur. Les instrument de paiement sont différents des &laquo;&nbsp;offres&nbsp;&raquo;, en ce sens qu&rsquo;elles maintiennent un équilibre sur un compte géré par votre serveur.</p>
<p>Lors de l&rsquo;ajout d&rsquo;un <em>PaymentInstruments</em> au Portefeuille,&nbsp;l&rsquo;utilisateur doit approuver d&rsquo;ajouter l&rsquo;article au Portefeuille et votre application a besoin d&rsquo;une capacité supplémentaire.</p>
<div class="mw-geshi" dir="ltr" style="text-align: left;">
<div class="xml source-xml">
<blockquote><p>
<pre class="de1"><span class="sc3" style="color: #000000;"><strong><span class="re1"><Capability</span></strong> <span class="re0" style="color: #000080;">Name</span><span style="color: #339966;">=</span><span class="st0" style="color: #800000;">"ID_CAP_WALLET_PAYMENTINSTRUMENTS" </span><strong><span class="re2">/></span></strong></span></pre>
</p></blockquote>
</div>
</div>
<p>Maintenant, ajoutez 50 $? (dollars factice) pour le portefeuille de l&rsquo;utilisateur. (Le symbole de la monnaie officielle des dollars factice pour cet exemple est &laquo;&nbsp;$?&nbsp;&raquo;)</p>
<div class="mw-geshi" dir="ltr" style="text-align: left;">
<div class="csharp source-csharp">
<blockquote><p>
<pre class="de1"><span class="kw1" style="color: #0000ff;">private</span> <span class="kw4" style="color: #0000ff;">void </span>Wallet_CreateNewPaymentInstrument<span class="br0" style="color: #339966;">(</span><span class="kw4" style="color: #0000ff;">object </span>sender, RoutedEventArgs e<span class="br0" style="color: #339966;">)</span>
<span class="br0" style="color: #339966;">{</span>
    <span class="kw1" style="color: #0000ff;">var </span>item <span class="sy0" style="color: #339966;">=</span> <span class="kw3" style="color: #0000ff;">new </span>PaymentInstrument<span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span></span>
<span class="br0" style="color: #339966;">    {</span>
        IssuerName <span class="sy0" style="color: #339966;">=</span> <span class="st0" style="color: #800000;">"JustinAngel.net"</span>,
        CustomerName <span class="sy0" style="color: #339966;">=</span> <span class="st0" style="color: #800000;">"You"</span>,
        ExpirationDate <span class="sy0" style="color: #339966;">=</span> DateTime<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Now</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">AddDays</span><span class="br0" style="color: #339966;">(</span><span class="nu0">1</span><span class="br0" style="color: #339966;">)</span>,
        PaymentInstrumentKinds <span class="sy0" style="color: #339966;">=</span> PaymentInstrumentKinds<span class="sy0">.</span><span class="me1">Debit</span>,
        DisplayName <span class="sy0" style="color: #339966;">=</span> <span class="st0" style="color: #800000;">"Justin Smiley Dollars $?"</span>,
        Logo99x99<span class="sy0" style="color: #339966;"> = </span>GetBitmapSource<span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"99x99.png"</span><span class="br0" style="color: #339966;">)</span>,
        Logo336x336 <span class="sy0" style="color: #339966;">= </span>GetBitmapSource<span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"336x336.png"</span><span class="br0" style="color: #339966;">)</span>,
        Logo159x159 <span class="sy0" style="color: #339966;">=</span> GetBitmapSource<span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"159x159.png"</span><span class="br0" style="color: #339966;">)</span>,
        DisplayAvailableBalance <span class="sy0" style="color: #339966;">=</span> <span class="st0" style="color: #800000;">"50$?"</span>,
        DisplayBalance <span class="sy0" style="color: #339966;">=</span> <span class="st0" style="color: #800000;">"100$?"</span>,
        DisplayCreditLimit <span class="sy0" style="color: #339966;">=</span> <span class="st0" style="color: #800000;">"200$?"</span>,
        DisplayAvailableCredit <span class="sy0" style="color: #339966;">=</span> <span class="st0" style="color: #800000;">"200$?"</span>,
        BackgroundColor <span class="sy0" style="color: #339966;">=</span> Color<span class="sy0">.</span><span class="me1" style="color: #0000ff;">FromArgb</span><span class="br0" style="color: #339966;">(</span><span class="nu0">255</span>, <span class="nu0">70</span>, <span class="nu0">150</span>, <span class="nu0">250</span><span class="br0" style="color: #339966;">)</span>,
        Nickname <span class="sy0" style="color: #339966;">=</span> <span class="st0" style="color: #800000;">"Justin Dollars $?"</span>,
        Message <span class="sy0" style="color: #339966;">=</span> <span class="st0" style="color: #800000;">"I like turtles."</span>,
        MemberSince <span class="sy0" style="color: #339966;">=</span> DateTime<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Now</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">AddYears</span><span class="br0" style="color: #339966;">(</span><span class="sy0">-</span><span class="nu0">1</span><span class="br0" style="color: #339966;">)</span>,
        AccountNumber <span class="sy0" style="color: #339966;">=</span> <span class="st0" style="color: #800000;">"12345679"</span>,
        NavigationUri<span class="sy0" style="color: #339966;"> =</span> <span class="kw3" style="color: #0000ff;">new </span>Uri<span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"/mainpage.xaml?wallet=PaymentInstrument"</span>, UriKind<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Relative</span><span class="br0" style="color: #339966;">)</span>
   <span style="color: #339966;"> <span class="br0">}</span><span class="sy0">;</span></span>

    AddWalletItemTask task <span class="sy0" style="color: #339966;">=</span> <span class="kw3" style="color: #0000ff;">new </span>AddWalletItemTask<span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span></span>
<span class="br0" style="color: #339966;">    {</span>
        Item <span class="sy0" style="color: #339966;">=</span> item
    <span style="color: #339966;"><span class="br0">}</span><span class="sy0">;</span></span>
    task<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Completed</span> <span class="sy0" style="color: #339966;">+=</span> <span class="br0" style="color: #339966;">(</span>s, args<span class="br0" style="color: #339966;">)</span><span class="sy0" style="color: #339966;"> => </span>MessageBox<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Show</span><span class="br0" style="color: #339966;">(</span>args<span class="sy0">.</span><span class="me1" style="color: #0000ff;">TaskResult</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">ToString</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>
    task<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Show</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></span>

    Launcher<span class="sy0">.</span><span class="me1" style="color: #0000ff;">LaunchUriAsync</span><span class="br0" style="color: #339966;">(</span><span class="kw3" style="color: #0000ff;">new </span>Uri<span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"wallet://"</span>, UriKind<span class="sy0">.</span><span class="me1" style="color: #0000ff;">RelativeOrAbsolute</span><span style="color: #339966;"><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>
<span class="br0" style="color: #339966;">}</span></pre>
</p></blockquote>
</div>
</div>
<p>A l&rsquo;exécution de ce bout de code , vous pouvez voir que le Portefeuille demande la permission d&rsquo;enregistrer l&rsquo;élément. Cliquez sur &laquo;&nbsp;save&nbsp;&raquo; permettra de sauvegarder&nbsp;l&rsquo;élément dans le Portefeuille. Appuyez sur &laquo;&nbsp;review&nbsp;&raquo; et vous êtes redirigé(e) vers un écran de révision où vous pouvez enregistrer, modifier ou annuler.</p>
<p style="text-align: center;"><img class="aligncenter" alt="" src="http://www.developer.nokia.com/Community/Wiki/images/c/c9/WhatsNewWP8_52_Wallet_confirmation_dialogue_to_add_justin_smiley_dollars_to_wallet.png?20121030183226" width="230" height="437" /></p>
<p>Vous pouvez maintenant ouvrir le Portefeuille et voir a quoi le nouvel instrument de paiement ressemble. Comme vous pouvez le voir en cliquant sur &laquo;&nbsp;open app&nbsp;&raquo;, l&rsquo;application s&rsquo;ouvre&nbsp;à l&rsquo;aide d&rsquo;une chaîne de requête particulière liée à cette application. Dans la vraie vie le Portefeuille peut être ce que vous voulez comme une &laquo;&nbsp;carte Starbucks&nbsp;&raquo; qui peut être numérisée lorsque vous voulez une tasse de café, la monnaie virtuelle pour les jeux, ou des crédits à un site Web de partage de fichiers.</p>
<h2>Portefeuille : Item générique</h2>
<p>Le troisième type d&rsquo;élément que vous pouvez ajouter au Portefeuille est le <em>WalletTransactionItem.</em>&nbsp;Il est vraiment conçu comme un type générique fourre-tout pour ce qui n&rsquo;est pas un accord ou un instrument de paiement. L&rsquo;exemple ci-contre montre comment utiliser le&nbsp;<em>in-app purchase</em>&nbsp;pour ajouter un talon de billet de cinéma au Portefeuille.</p>
<div class="mw-geshi" dir="ltr" style="text-align: left;">
<div class="csharp source-csharp">
<blockquote><p>
<pre class="de1"><span class="kw1" style="color: #0000ff;">private</span> <span class="kw4" style="color: #0000ff;">void </span>Wallet_CreateNewWalletTransactionItem<span class="br0" style="color: #339966;">(</span><span class="kw4" style="color: #0000ff;">object </span>sender, RoutedEventArgs e<span class="br0" style="color: #339966;">)</span>
<span class="br0" style="color: #339966;">{</span>
    <span class="kw1" style="color: #0000ff;">var </span>item <span class="sy0">=</span> <span class="kw3" style="color: #0000ff;">new </span>WalletTransactionItem<span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span></span>
<span class="br0" style="color: #339966;">    {</span>
        DisplayName<span class="sy0" style="color: #339966;"> =</span> <span class="st0" style="color: #800000;">"Dark Knight Rises"</span>,
        IssuerName <span class="sy0" style="color: #339966;">=</span> <span class="st0" style="color: #800000;">"Justin's Movie Theater"</span>,
        CustomerName <span class="sy0" style="color: #339966;">=</span> <span class="st0" style="color: #800000;">"You"</span>,
        Notes <span class="sy0" style="color: #339966;">=</span> <span class="st0" style="color: #800000;">"Admits one person to see Batman Dark Knight Rises."</span>,
        ExpirationDate <span class="sy0" style="color: #339966;">=</span> DateTime<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Now</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">AddDays</span><span class="br0" style="color: #339966;">(</span><span class="nu0">14</span><span class="br0" style="color: #339966;">)</span>,
        Logo99x99 <span class="sy0" style="color: #339966;">=</span> GetBitmapSource<span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"99x99Batman.png"</span><span class="br0" style="color: #339966;">)</span>,
        Logo336x336 <span class="sy0" style="color: #339966;">=</span> GetBitmapSource<span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"336x336Batman.png"</span><span class="br0" style="color: #339966;">)</span>,
        Logo159x159 <span class="sy0" style="color: #339966;">=</span> GetBitmapSource<span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"159x159Batman.png"</span><span class="br0" style="color: #339966;">)</span>,
        BarcodeImage <span class="sy0" style="color: #339966;">=</span> GetBitmapSource<span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"Barcode.png"</span><span class="br0" style="color: #339966;">)</span>,
        NavigationUri <span class="sy0" style="color: #339966;">=</span> <span class="kw3" style="color: #0000ff;">new </span>Uri<span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"/mainpage.xaml?wallet=WalletTransactionItem"</span>, UriKind<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Relative</span><span class="br0" style="color: #339966;">)</span>
<span style="color: #339966;">    <span class="br0">}</span><span class="sy0">;</span></span>

    AddWalletItemTask task <span class="sy0" style="color: #339966;">=</span> <span class="kw3" style="color: #0000ff;">new </span>AddWalletItemTask<span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span></span>
<span class="br0" style="color: #339966;">    {</span>
        Item <span class="sy0" style="color: #339966;">=</span> item
    <span style="color: #339966;"><span class="br0">}</span><span class="sy0">;</span></span>
    task<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Completed</span> <span style="color: #339966;"><span class="sy0">+=</span> <span class="br0">(</span></span>s, args<span style="color: #339966;"><span class="br0">)</span> <span class="sy0">=></span> </span>MessageBox<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Show</span><span class="br0" style="color: #339966;">(</span>args<span class="sy0">.</span><span class="me1">TaskResult</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">ToString</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>

    task<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Show</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></span>

    Launcher<span class="sy0">.</span><span class="me1" style="color: #0000ff;">LaunchUriAsync</span><span class="br0" style="color: #339966;">(</span><span class="kw3" style="color: #0000ff;">new </span>Uri<span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #800000;">"wallet://"</span>, UriKind<span class="sy0">.</span><span class="me1" style="color: #0000ff;">RelativeOrAbsolute</span><span style="color: #339966;"><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>
<span class="br0" style="color: #339966;">}</span></pre>
</p></blockquote>
</div>
</div>
<p>A l&rsquo;exécution de cet extrait de code, vous pouvez voir que le Portefeuille offre les mêmes demande de &laquo;&nbsp;sauvegarde&nbsp;&raquo;/&nbsp;&raquo;vue&nbsp;&raquo;&nbsp;(&laquo;&nbsp;save&nbsp;&raquo;/&nbsp;&raquo;review&nbsp;&raquo;) que pour les instruments de paiement :</p>
<p style="text-align: center;"><img class="aligncenter" alt="" src="http://www.developer.nokia.com/Community/Wiki/images/9/9d/WhatsNewWP8_58_Wallet_confirmation_dialogue_to_add_movie_ticket_to_wallet.png?20121030183836" width="233" height="194" /></p>
<p>Lorsque vous ouvrez le Portefeuille, vous pouvez voir a quoi l&rsquo;article générique ressemble.</p>
<p style="text-align: center;"><img class="aligncenter" alt="" src="http://www.developer.nokia.com/Community/Wiki/images/a/ab/WhatsNewWP8_60_Wallet_app_with_WalletTransactionItem.png?20121030183720" width="229" height="434" /></p>
<p>Et si vous appuyez sur le bouton&nbsp;&nbsp;&raquo;open app&nbsp;&raquo;, vous pouvez voir qu&rsquo;il utilise le lien spécifié pour cet article.</p>
<p style="text-align: center;"><img class="aligncenter" alt="" src="http://www.developer.nokia.com/Community/Wiki/images/3/37/WhatsNewWP8_62_Wallet_MessageBox_showing_wallet-equals-WalletTransactionItem_parameter.png?20121030183950" width="229" height="164" /></p>
<p>source: <a href="http://www.developer.nokia.com" target="_blank">developer.nokia.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nokiadevblog.fr/2013/02/nouveautes-du-sdk-portefeuille/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nouveautés du SDK &#8211; Lockscreen et Live Tiles</title>
		<link>http://www.nokiadevblog.fr/2013/01/nouveautes-du-sdk-lockscreen-et-live-tiles/</link>
		<comments>http://www.nokiadevblog.fr/2013/01/nouveautes-du-sdk-lockscreen-et-live-tiles/#comments</comments>
		<pubDate>Mon, 28 Jan 2013 13:23:58 +0000</pubDate>
		<dc:creator>Victor</dc:creator>
				<category><![CDATA[Développer]]></category>
		<category><![CDATA[Windows Phone]]></category>

		<guid isPermaLink="false">http://www.nokiadevblog.fr/?p=2150</guid>
		<description><![CDATA[Lockscreen &#160; Dans le cadre de Windows Phone 8, les utilisateurs peuvent céder le contrôle de l&#8217;apparence de l&#8217;écran de verrouillage. Plus précisément, les applications peuvent changer l&#8217;image d&#8217;arrière-plan de verrouillage d&#8217;écran, les cinq compteurs sur le fond et le texte affiché sur l&#8217;écran d&#8217;accueil. Dans Windows Phone 7 l&#8217;image doit avoir été spécifié par l&#8217;utilisateur, [...]]]></description>
				<content:encoded><![CDATA[<h2>Lockscreen</h2>
<p>&nbsp;</p>
<p>Dans le cadre de Windows Phone 8, les utilisateurs peuvent céder le contrôle de l&rsquo;apparence de l&rsquo;écran de verrouillage. Plus précisément, les applications peuvent changer l&rsquo;image d&rsquo;arrière-plan de verrouillage d&rsquo;écran, les cinq compteurs sur le fond et le texte affiché sur l&rsquo;écran d&rsquo;accueil. Dans Windows Phone 7 l&rsquo;image doit avoir été spécifié par l&rsquo;utilisateur, le texte doit être la prochaine réunion du calendrier et seules les applications système ne pouvaient utiliser les compteurs. C&rsquo;est donc un grand pas en avant dans la personnalisation.</p>
<p><span id="more-2150"></span></p>
<p><img class="size-full wp-image-2155 aligncenter" title="WhatsNewWP8_18_Sample_lock_screen_with_background_image_text_and_counters" alt="" src="http://www.nokiadevblog.fr/wp-content/uploads/2013/01/WhatsNewWP8_18_Sample_lock_screen_with_background_image_text_and_counters.png" width="387" height="645" /></p>
<p>Pour commencer, vous déclarez une extension de Lockscreen afin que votre application soit affichée dans les écrans de réglage. Ajoutez le code suivant à WmAppManfiest.xml immédiatement après l&rsquo;élément &lt;Tokens /&gt; :</p>
<div class="mw-geshi" dir="ltr" style="text-align: left;">
<div class="xml source-xml">
<pre class="de1"><span class="sc3"><span class="re1">&lt;Extensions<span class="re2">&gt;</span></span></span>
  <span class="sc3"><span class="re1">&lt;Extension</span> <span class="re0" style="color: #0000ff;">ExtensionName</span><span style="color: #339966;">=</span><span class="st0"><span style="color: #ff0000;">"LockScreen_Notification_IconCount</span><span style="color: #ff0000;">"</span></span></span>
<span class="sc3"><span class="re0" style="color: #0000ff;"> ConsumerID</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"{111DFF24-AA15-4A96-8006-2BFF8122084F}"</span> <span class="re0" style="color: #0000ff;">TaskID</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"_default"</span> <span class="re2">/&gt;</span></span>
  <span class="sc3"><span class="re1">&lt;Extension</span> <span class="re0" style="color: #0000ff;">ExtensionName</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"LockScreen_Notification_TextField"</span></span>
<span class="sc3"><span class="re0" style="color: #0000ff;"> ConsumerID</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"{111DFF24-AA15-4A96-8006-2BFF8122084F}"</span> <span class="re0" style="color: #0000ff;">TaskID</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"_default"</span> <span class="re2">/&gt;</span></span>
  <span class="sc3"><span class="re1">&lt;Extension</span> <span class="re0" style="color: #0000ff;">ExtensionName</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"LockScreen_Wallpaper"</span></span>
<span class="sc3"><span class="re0" style="color: #0000ff;"> ConsumerID</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"{111DFF24-AA15-4A96-8006-2BFF8122084F}"</span> <span class="re0" style="color: #0000ff;">TaskID</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"_default"</span> <span class="re2">/&gt;</span></span>
<span class="sc3"><span class="re1">&lt;/Extensions<span class="re2">&gt;</span></span></span></pre>
</div>
</div>
<p>Spécifiez un fichier PNG transparent de 24&#215;24 avec quelques pixels blancs aussi, pour l&rsquo;icône de compteur de l&rsquo;application.</p>
<div class="mw-geshi" dir="ltr" style="text-align: left;">
<div class="xml source-xml">
<pre class="de1"><span class="sc3"><strong><span class="re1">&lt;DeviceLockImageURI</span></strong> <span class="re0" style="color: #0000ff;">IsRelative</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"true"</span> <span class="re0" style="color: #0000ff;">IsResource</span><span style="color: #ff0000;"><span style="color: #339966;">=</span><span class="st0">"false"</span></span><strong><span class="re2">&gt;</span></strong></span>24x24.png<strong><span class="sc3"><span class="re1">&lt;/DeviceLockImageURI<span class="re2">&gt;</span></span></span></strong></pre>
</div>
</div>
<p>&nbsp;</p>
<p style="text-align: left;">Désormais, les utilisateurs peuvent voir l&rsquo;application dans les paramètres de l&rsquo;écran de verrouillage et choisir de laisser l&rsquo;application changer l&rsquo;écran de verrouillage.</p>
<p style="text-align: center;"><img class="alignnone size-full wp-image-2158" title="236px-WhatsNewWP8_19_Lock_Screen_Settings_with_no_app_selected" alt="" src="http://www.nokiadevblog.fr/wp-content/uploads/2013/01/236px-WhatsNewWP8_19_Lock_Screen_Settings_with_no_app_selected.png" width="236" height="450" /><img class="alignnone size-full wp-image-2159" title="238px-WhatsNewWP8_20_Choosing_an_app_for_lock_screen" alt="" src="http://www.nokiadevblog.fr/wp-content/uploads/2013/01/238px-WhatsNewWP8_20_Choosing_an_app_for_lock_screen.png" width="238" height="450" /><img class="alignnone size-full wp-image-2161" title="237px-WhatsNewWP8_21_Lock_Screen_Settings" alt="" src="http://www.nokiadevblog.fr/wp-content/uploads/2013/01/237px-WhatsNewWP8_21_Lock_Screen_Settings1.png" width="237" height="450" /></p>
<p>Au lieu d&rsquo;utiliser l&rsquo;écran Paramètres, l&rsquo;utilisateur peut choisir d&rsquo;activer l&rsquo;utilisation des images de lockscreen à l&rsquo;application. Vous pouvez ajouter cette fonctionnalité avec :</p>
<div class="mw-geshi" dir="ltr" style="text-align: left;">
<div class="csharp source-csharp">
<pre class="de1"><span class="kw1" style="color: #0000ff;">private </span>async <span class="kw4" style="color: #0000ff;">void </span>LockScreen_ChangeImage<span class="br0">(</span><span class="kw4" style="color: #0000ff;">object </span>sender, RoutedEventArgs e<span class="br0" style="color: #339966;">)</span>
<span class="br0" style="color: #339966;">{</span>
    <span class="kw1" style="color: #0000ff;">if</span> <span class="br0" style="color: #339966;">(</span><span class="sy0">!</span>LockScreenManager<span class="sy0">.</span><span class="me1" style="color: #0000ff;">IsProvidedByCurrentApplication</span><span class="br0" style="color: #339966;">)</span>
<span class="br0" style="color: #339966;"> {</span>
        await LockScreenManager<span class="sy0">.</span><span class="me1" style="color: #0000ff;">RequestAccessAsync</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></span>
<span class="br0" style="color: #339966;"> }</span>
<span class="br0" style="color: #339966;">}</span></pre>
</div>
</div>
<p>L&rsquo;exécution du code que vous voyez de l&rsquo;application demande à l&rsquo;utilisateur de donner l&rsquo;autorisation pour l&rsquo;application pour fournir des images de papier peint pour l&rsquo;écran de verrouillage.</p>
<p style="text-align: center;"><img class="size-full wp-image-2163 aligncenter" title="WhatsNewWP8_22_App_Lock_Screen_UserApprovalDialog" alt="" src="http://www.nokiadevblog.fr/wp-content/uploads/2013/01/WhatsNewWP8_22_App_Lock_Screen_UserApprovalDialog.png" width="359" height="291" /></p>
<p>Maintenant, l&rsquo;application peut changer l&rsquo;image d&rsquo;arrière-plan du lockscreen, comme suit :</p>
<div class="mw-geshi" dir="ltr" style="text-align: left;">
<div class="csharp source-csharp">
<pre class="de1"><span class="kw1" style="color: #0000ff;">private </span>async <span class="kw4" style="color: #0000ff;">void </span>LockScreen_ChangeImage<span class="br0" style="color: #339966;">(</span><span class="kw4" style="color: #0000ff;">object </span>sender, RoutedEventArgs e<span class="br0" style="color: #339966;">)</span>
<span class="br0" style="color: #339966;">{</span>
    <span class="kw1" style="color: #0000ff;">if</span> <span style="color: #339966;"><span class="br0">(</span><span class="sy0">!</span></span>LockScreenManager<span class="sy0">.</span><span class="me1" style="color: #0000ff;">IsProvidedByCurrentApplication</span><span class="br0" style="color: #339966;">)</span>
<span class="br0" style="color: #339966;"> {</span>
        await LockScreenManager<span class="sy0">.</span><span class="me1" style="color: #0000ff;">RequestAccessAsync</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span><span class="sy0">;</span></span>
<span class="br0" style="color: #339966;"> }</span>

    <span class="kw1">if</span> <span class="br0" style="color: #339966;">(</span>LockScreenManager<span class="sy0">.</span><span class="me1" style="color: #0000ff;">IsProvidedByCurrentApplication</span><span class="br0" style="color: #339966;">)</span>
<span class="br0" style="color: #339966;"> {</span>
        LockScreen<span class="sy0">.</span><span class="me1" style="color: #0000ff;">SetImageUri</span><span class="br0" style="color: #339966;">(</span>
            <span style="color: #0000ff;">new</span> Uri<span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #ff0000;">"ms-appx:///CustomizedPersonalWalleper.jpg"</span>, UriKind<span class="sy0">.</span><span class="me1" style="color: #0000ff;">RelativeOrAbsolute</span><span style="color: #339966;"><span class="br0">)</span><span class="br0">)</span><span class="sy0">;</span></span>
<span class="br0" style="color: #339966;"> }</span>
    MessageBox<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Show</span><span class="br0" style="color: #339966;">(</span><span class="st0" style="color: #ff0000;">"Lock screen changed. Click F12 or go to lock screen."</span><span style="color: #339966;"><span class="br0">)</span><span class="sy0">;</span></span>
<span class="br0" style="color: #339966;">}</span></pre>
</div>
</div>
<p>A l&rsquo;exécution de l&rsquo;application, vous verrez que la nouvelle image est l&rsquo;image de lockscreen. L&rsquo;image de fond peut être ce que vous voulez qu&rsquo;elle soit et peut être composée de façon dynamique.</p>
<p style="text-align: center;"><img class="size-full wp-image-2165 aligncenter" title="WhatsNewWP8_23_AppLockScreenInAction_Live_Tile_News" alt="" src="http://www.nokiadevblog.fr/wp-content/uploads/2013/01/WhatsNewWP8_23_AppLockScreenInAction_Live_Tile_News.png" width="360" height="676" /></p>
<p>Vous pouvez ajouter du texte et un compteur dans le lockscreen ainsi, en affectant des valeurs à la tuile épinglée de l&rsquo;application.</p>
<div class="mw-geshi" dir="ltr" style="text-align: left;">
<div class="csharp source-csharp">
<pre class="de1"><span style="color: #0000ff;"><span class="kw1">private</span> <span class="kw4">void</span> </span>LockScreen_ChangeCounterAndText<span class="br0" style="color: #339966;">(</span><span class="kw4" style="color: #0000ff;">object </span>sender, RoutedEventArgs e<span class="br0" style="color: #339966;">)</span>
<span class="br0" style="color: #339966;">{</span>
    ShellTile<span class="sy0">.</span><span class="me1" style="color: #0000ff;">ActiveTiles</span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">First</span><span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span></span><span class="sy0">.</span><span class="me1" style="color: #0000ff;">Update</span><span class="br0" style="color: #339966;">(</span>
        <span class="kw3" style="color: #0000ff;">new </span>FlipTileData<span style="color: #339966;"><span class="br0">(</span><span class="br0">)</span></span>
<span class="br0" style="color: #339966;"> {</span>
        Count <span class="sy0" style="color: #339966;">=</span> <span class="nu0">99</span>,
        WideBackContent <span class="sy0" style="color: #339966;">=</span> <span class="st0" style="color: #ff0000;">"Lock screen text"</span>,
        SmallBackgroundImage <span class="sy0" style="color: #339966;">=</span> <span class="kw3" style="color: #0000ff;">new </span>Uri<span class="br0" style="color: #339966;">(</span><span class="st_h" style="color: #ff0000;">@"Assets\Tiles\FlipCycleTileSmall.png"</span>, UriKind<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Relative</span><span class="br0" style="color: #339966;">)</span>,
        BackgroundImage <span class="sy0" style="color: #339966;">=</span> <span class="kw3" style="color: #0000ff;">new </span>Uri<span class="br0" style="color: #339966;">(</span><span class="st_h" style="color: #ff0000;">@"Assets\Tiles\FlipCycleTileMedium.png"</span>, UriKind<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Relative</span><span class="br0" style="color: #339966;">)</span>,
        BackBackgroundImage <span class="sy0" style="color: #339966;">=</span> <span class="kw3" style="color: #0000ff;">new </span>Uri<span class="br0" style="color: #339966;">(</span><span class="st_h" style="color: #ff0000;">@"Assets\Tiles\FlipCycleTileMedium.png"</span>, UriKind<span class="sy0">.</span><span class="me1" style="color: #0000ff;">Relative</span><span class="br0" style="color: #339966;">)</span>
<span style="color: #339966;"> <span class="br0">}</span><span class="br0">)</span><span class="sy0">;</span></span>
<span class="br0" style="color: #339966;">}</span></pre>
</div>
</div>
<p>Voici le résultat :</p>
<p style="text-align: center;"><img class="size-full wp-image-2167 aligncenter" title="sans-titre" alt="" src="http://www.nokiadevblog.fr/wp-content/uploads/2013/01/sans-titre.png" width="358" height="679" /></p>
<p>&nbsp;</p>
<h2>Live tiles : nouvelles tailles et nouveau modèles</h2>
<p>L&rsquo;écran d&rsquo;accueil de  Windows Phone 8 a été repensé pour que les applications puissent avoir des tuiles normales, larges, et petites. Vous pouvez définir ces modèles pour votre application dans le cadre du PrimaryToken XML dans le WmAppManfiest , en mettant à jour le TileData dans le code, et en utilisant les notifications push du modèle XML. Dans cet article, la syntaxe du WmAppManifest seront explorées.</p>
<p><strong>Le modèle Flip</strong></p>
<p>Dans Mango (WP7.5) la classe StandardTileData a été introduite, FlipTileData est l&rsquo;équivalent de cette classe dans WP8 mais avec de nouvelles propriétés. TemplateFlip a un contenu flip sur les deux dimensions de la tuile et prend en charge tous les formats de tuiles.</p>
<p><img class="size-full wp-image-2168 aligncenter" title="WhatsNewWP8_25_FlipTemplateProperties" alt="" src="http://www.nokiadevblog.fr/wp-content/uploads/2013/01/WhatsNewWP8_25_FlipTemplateProperties.png" width="610" height="462" /></p>
<p>Vous spécifiez les carreaux à feuilles en spécifiant un PrimaryToken comme «FlipTemplate» ou en utilisant la classe FlipData à partir du code. Voici un exemple utilisant le XML FlipTemplate.</p>
<div class="mw-geshi" dir="ltr" style="text-align: left;">
<div class="xml source-xml">
<pre class="de1"><span class="sc3"><span class="re1">&lt;PrimaryToken</span> <span class="re0" style="color: #0000ff;">TokenID</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"WP8_Beta_22Token"</span> <span class="re0" style="color: #0000ff;">TaskName</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"_default"</span><span class="re2">&gt;</span></span>
  <span class="sc3"><span class="re1">&lt;TemplateFlip<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;SmallImageURI</span> <span class="re0" style="color: #0000ff;">IsRelative</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"true"</span> <span class="re0" style="color: #0000ff;">IsResource</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"false"</span><span class="re2">&gt;</span></span>159x159.png<span class="sc3"><span class="re1">&lt;/SmallImageURI<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;Count<span class="re2">&gt;</span></span></span>5<span class="sc3"><span class="re1">&lt;/Count<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;BackgroundImageURI</span> <span class="re0" style="color: #0000ff;">IsRelative</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"true"</span> <span class="re0" style="color: #0000ff;">IsResource</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"false"</span><span class="re2">&gt;</span></span>336x336.png<span class="sc3"><span class="re1">&lt;/BackgroundImageURI<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;Title<span class="re2">&gt;</span></span></span>Title<span class="sc3"><span class="re1">&lt;/Title<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;BackContent<span class="re2">&gt;</span></span></span>Back Content<span class="sc3"><span class="re1">&lt;/BackContent<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;BackBackgroundImageURI</span> <span class="re0" style="color: #0000ff;">IsRelative</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"true"</span> <span class="re0" style="color: #0000ff;">IsResource</span><span style="color: #339966;">=</span><span class="st0"><span style="color: #ff0000;">"false</span>"</span><span class="re2">&gt;</span></span>336x336.png<span class="sc3"><span class="re1">&lt;/BackBackgroundImageURI<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;BackTitle<span class="re2">&gt;</span></span></span>Back Title<span class="sc3"><span class="re1">&lt;/BackTitle<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;LargeBackgroundImageURI</span> <span class="re0" style="color: #0000ff;">IsRelative</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"true"</span> <span class="re0" style="color: #0000ff;">IsResource</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"false"</span><span class="re2">&gt;</span></span>691x336.png<span class="sc3"><span class="re1">&lt;/LargeBackgroundImageURI<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;LargeBackContent<span class="re2">&gt;</span></span></span>Hello World<span class="sc3"><span class="re1">&lt;/LargeBackContent<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;LargeBackBackgroundImageURI</span> <span class="re0" style="color: #0000ff;">IsRelative</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"true"</span> <span class="re0" style="color: #0000ff;">IsResource</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"false"</span><span class="re2">&gt;</span></span>691x336.png<span class="sc3"><span class="re1">&lt;/LargeBackBackgroundImageURI<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;DeviceLockImageURI</span> <span class="re0" style="color: #0000ff;">IsRelative</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"true"</span> <span class="re0" style="color: #0000ff;">IsResource</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"false"</span><span class="re2">&gt;</span></span>24x24.png<span class="sc3"><span class="re1">&lt;/DeviceLockImageURI<span class="re2">&gt;</span></span></span>
    <span class="sc3"><span class="re1">&lt;HasLarge<span class="re2">&gt;</span></span></span>True<span class="sc3"><span class="re1">&lt;/HasLarge<span class="re2">&gt;</span></span></span>
  <span class="sc3"><span class="re1">&lt;/TemplateFlip<span class="re2">&gt;</span></span></span>
<span class="sc3"><span class="re1">&lt;/PrimaryToken<span class="re2">&gt;</span></span></span></pre>
</div>
</div>
<p>L&rsquo;exemple ci-dessous montre la même tuile, cinq fois pour afficher toutes les tailles de tuiles et de montrer le dos et le contenu avant.</p>
<p style="text-align: center;"><img class="size-full wp-image-2170 aligncenter" title="WhatsNewWP8_26_TemplateFlip_with_small_normal_and_large_tiles" alt="" src="http://www.nokiadevblog.fr/wp-content/uploads/2013/01/WhatsNewWP8_26_TemplateFlip_with_small_normal_and_large_tiles.png" width="360" height="682" /></p>
<p><strong>Le modèle Iconic </strong></p>
<p>L&rsquo;une des utilisations les plus courantes des tuiles dans WP7 est de recréer l&rsquo;apparence des tuiles intégrées. C&rsquo;était un cas d&rsquo;utilisation commune que des projets de tiers, tels que les <a href="http://msptoolkit.codeplex.com/wikipage?title=Tile%20Image%20Generator&amp;referringTitle=Home">MSP Toolkit</a>, sont intervenus pour combler l&rsquo;écart. Les bonnes nouvelles sont que Windows Phone 8 fournit un support intégré pour les modèles de tuiles qui ressemblent à des carreaux indigènes vivantes. Les différentes propriétés qui peuvent être définies sur ce nouveau type de modèle sont indiqués ci-dessous :</p>
<p style="text-align: center;"><img class="size-full wp-image-2171 aligncenter" title="sans-titre2" alt="" src="http://www.nokiadevblog.fr/wp-content/uploads/2013/01/sans-titre2.png" width="572" height="264" /></p>
<p>Vous pouvez utiliser le XML TemplateIconic dans le fichier WmAppManifest ou la classe IconicTileData pour préciser le contenu. Cet exemple utilise la TemplateIconic :</p>
<div class="mw-geshi" dir="ltr" style="text-align: left;">
<div class="xml source-xml">
<pre class="de1"><span class="sc3"><strong><span class="re1">&lt;PrimaryToken</span></strong> <span class="re0" style="color: #0000ff;">TokenID</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"WP8_Beta_22Token"</span> <span class="re0" style="color: #0000ff;">TaskName</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"_default"</span><strong><span class="re2">&gt;</span></strong></span>
<strong> <span class="sc3"><span class="re1">&lt;TemplateIconic<span class="re2">&gt;</span></span></span></strong>
    <span class="sc3"><strong><span class="re1">&lt;SmallImageURI</span></strong> <span class="re0" style="color: #0000ff;">IsRelative</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"true" </span><span class="re0" style="color: #0000ff;">IsResource</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"false"</span><span class="re2">&gt;</span></span>110x110.png<strong><span class="sc3"><span class="re1">&lt;/SmallImageURI<span class="re2">&gt;</span></span></span></strong>
<strong> <span class="sc3"><span class="re1">&lt;Count<span class="re2">&gt;</span></span></span></strong>5<strong><span class="sc3"><span class="re1">&lt;/Count<span class="re2">&gt;</span></span></span></strong>
    <span class="sc3"><strong><span class="re1">&lt;IconImageURI</span></strong> <span class="re0" style="color: #0000ff;">IsRelative</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"true"</span> <span class="re0" style="color: #0000ff;">IsResource</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"false"</span><span class="re2">&gt;</span></span>202x202.png<strong><span class="sc3"><span class="re1">&lt;/IconImageURI<span class="re2">&gt;</span></span></span></strong>
<strong> <span class="sc3"><span class="re1">&lt;Title<span class="re2">&gt;</span></span></span></strong>Title<strong><span class="sc3"><span class="re1">&lt;/Title<span class="re2">&gt;</span></span></span></strong>
<strong> <span class="sc3"><span class="re1">&lt;Message<span class="re2">&gt;</span></span></span></strong>Message<strong><span class="sc3"><span class="re1">&lt;/Message<span class="re2">&gt;</span></span></span></strong>
    <strong><span class="sc3"><span class="re1">&lt;BackgroundColor<span class="re2">&gt;</span></span></span></strong>#123456<strong><span class="sc3"><span class="re1">&lt;/BackgroundColor<span class="re2">&gt;</span></span></span></strong>
    <strong><span class="sc3"><span class="re1">&lt;HasLarge<span class="re2">&gt;</span></span></span></strong>True<strong><span class="sc3"><span class="re1">&lt;/HasLarge<span class="re2">&gt;</span></span></span></strong>
    <strong><span class="sc3"><span class="re1">&lt;LargeContent1<span class="re2">&gt;</span></span></span></strong>LargeContent1<strong><span class="sc3"><span class="re1">&lt;/LargeContent1<span class="re2">&gt;</span></span></span></strong>
    <strong><span class="sc3"><span class="re1">&lt;LargeContent2<span class="re2">&gt;</span></span></span></strong>LargeContent2<strong><span class="sc3"><span class="re1">&lt;/LargeContent2<span class="re2">&gt;</span></span></span></strong>
    <strong><span class="sc3"><span class="re1">&lt;LargeContent3<span class="re2">&gt;</span></span></span></strong>LargeContent3<strong><span class="sc3"><span class="re1">&lt;/LargeContent3<span class="re2">&gt;</span></span></span></strong>
    <span class="sc3"><strong><span class="re1">&lt;DeviceLockImageURI</span></strong> <span class="re0" style="color: #0000ff;">IsRelative</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"true"</span> <span class="re0">IsResource</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"false"</span><span class="re2">&gt;</span></span>24x24.png<strong><span class="sc3"><span class="re1">&lt;/DeviceLockImageURI<span class="re2">&gt;</span></span></span></strong>
<strong> <span class="sc3"><span class="re1">&lt;/TemplateIconic<span class="re2">&gt;</span></span></span></strong>
<strong><span class="sc3"><span class="re1">&lt;/PrimaryToken<span class="re2">&gt;</span></span></span></strong></pre>
</div>
</div>
<p>&nbsp;</p>
<p>Voici les trois tuiles que ce code produit :</p>
<p style="text-align: center;"><img class="size-full wp-image-2173 aligncenter" title="WhatsNewWP8_28_TemplateIconic_in_small_normal_and_wide_live_tile_sizes" alt="" src="http://www.nokiadevblog.fr/wp-content/uploads/2013/01/WhatsNewWP8_28_TemplateIconic_in_small_normal_and_wide_live_tile_sizes.png" width="360" height="679" /></p>
<p><strong>Le modèle cyclique</strong></p>
<p>Une des fonctionnalités intéressantes des live tiles de WP7 est la tuile large du hub photos, qui fait défiler vos photos. Ce modèle de tuile est maintenant disponible pour votre utilisation. Il vous suffit de spécifier les neuf images locales que vous souhaitez le carreau pour faire défiler comme suit :</p>
<div class="mw-geshi" dir="ltr" style="text-align: left;">
<div class="xml source-xml">
<pre class="de1"><span class="sc3"><strong><span class="re1">&lt;PrimaryToken</span></strong> <span class="re0" style="color: #0000ff;">TokenID</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"WP8_Beta_22Token"</span> <span class="re0" style="color: #0000ff;">TaskName</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"_default"</span><strong><span class="re2">&gt;</span></strong></span>
<strong> <span class="sc3"><span class="re1">&lt;TemplateCycle<span class="re2">&gt;</span></span></span></strong>
    <span class="sc3"><strong><span class="re1">&lt;SmallImageURI</span></strong> <span class="re0" style="color: #0000ff;">IsRelative</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"true" </span><span class="re0" style="color: #0000ff;">IsResource</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"false"</span><span class="re2">&gt;</span></span>159x159.png<strong><span class="sc3"><span class="re1">&lt;/SmallImageURI<span class="re2">&gt;</span></span></span></strong>
<strong> <span class="sc3"><span class="re1">&lt;Title<span class="re2">&gt;</span></span></span></strong>Title<strong><span class="sc3"><span class="re1">&lt;/Title<span class="re2">&gt;</span></span></span></strong>
    <span class="sc3"><strong><span class="re1">&lt;Photo01ImageURI</span></strong> <span class="re0" style="color: #0000ff;">IsRelative</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"true"</span> <span class="re0" style="color: #0000ff;">IsResource</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"false"</span><span class="re2">&gt;</span></span>691x336_N1.png<strong><span class="sc3"><span class="re1">&lt;/Photo01ImageURI<span class="re2">&gt;</span></span></span></strong>
    <span class="sc3"><strong><span class="re1">&lt;Photo02ImageURI</span></strong> <span class="re0" style="color: #0000ff;">IsRelative</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"true" </span><span class="re0" style="color: #0000ff;">IsResource</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"false"</span><span class="re2">&gt;</span></span>691x336_N2.png<strong><span class="sc3"><span class="re1">&lt;/Photo02ImageURI<span class="re2">&gt;</span></span></span></strong>
    <span class="sc3"><strong><span class="re1">&lt;Photo03ImageURI</span></strong> <span class="re0" style="color: #0000ff;">IsRelative</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"true" </span><span class="re0" style="color: #0000ff;">IsResource</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"false"</span><span class="re2">&gt;</span></span>691x336_N3.png<strong><span class="sc3"><span class="re1">&lt;/Photo03ImageURI<span class="re2">&gt;</span></span></span></strong>
    <span class="sc3"><strong><span class="re1">&lt;Photo04ImageURI</span></strong> <span class="re0" style="color: #0000ff;">IsRelative</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"true"</span> <span class="re0" style="color: #0000ff;">IsResource</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"false"</span><span class="re2">&gt;</span></span>691x336_N4.png<strong><span class="sc3"><span class="re1">&lt;/Photo04ImageURI<span class="re2">&gt;</span></span></span></strong>
    <span class="sc3"><strong><span class="re1">&lt;Photo05ImageURI</span></strong> <span class="re0" style="color: #0000ff;">IsRelative</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"true"</span> <span class="re0" style="color: #0000ff;">IsResource</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"false"</span><span class="re2">&gt;</span></span>691x336_N5.png<strong><span class="sc3"><span class="re1">&lt;/Photo05ImageURI<span class="re2">&gt;</span></span></span></strong>
    <span class="sc3"><strong><span class="re1">&lt;Photo06ImageURI</span></strong> <span class="re0" style="color: #0000ff;">IsRelative</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"true"</span> <span class="re0" style="color: #0000ff;">IsResource</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"false"</span><span class="re2">&gt;</span></span>691x336_N6.png<strong><span class="sc3"><span class="re1">&lt;/Photo06ImageURI<span class="re2">&gt;</span></span></span></strong>
    <span class="sc3"><strong><span class="re1">&lt;Photo07ImageURI</span></strong> <span class="re0" style="color: #0000ff;">IsRelative</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"true"</span> <span class="re0" style="color: #0000ff;">IsResource</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"false</span><span class="st0">"</span><span class="re2">&gt;</span></span>691x336_N7.png<strong><span class="sc3"><span class="re1">&lt;/Photo07ImageURI<span class="re2">&gt;</span></span></span></strong>
    <span class="sc3"><strong><span class="re1">&lt;Photo08ImageURI</span></strong> <span class="re0" style="color: #0000ff;">IsRelative</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"true"</span> <span class="re0" style="color: #0000ff;">IsResource</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"false"</span><span class="re2">&gt;</span></span>691x336_N8.png<strong><span class="sc3"><span class="re1">&lt;/Photo08ImageURI<span class="re2">&gt;</span></span></span></strong>
    <span class="sc3"><strong><span class="re1">&lt;Photo09ImageURI</span></strong> <span class="re0" style="color: #0000ff;">IsRelative</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"true"</span> <span class="re0" style="color: #0000ff;">IsResource</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"false"</span><span class="re2">&gt;</span></span>691x336_N9.png<strong><span class="sc3"><span class="re1">&lt;/Photo09ImageURI<span class="re2">&gt;</span></span></span></strong>
<strong> <span class="sc3"><span class="re1">&lt;Count<span class="re2">&gt;</span></span></span></strong>0<strong><span class="sc3"><span class="re1">&lt;/Count<span class="re2">&gt;</span></span></span></strong>
<strong> <span class="sc3"><span class="re1">&lt;HasLarge<span class="re2">&gt;</span></span></span></strong>True<strong><span class="sc3"><span class="re1">&lt;/HasLarge<span class="re2">&gt;</span></span></span></strong>
    <span class="sc3"><strong><span class="re1">&lt;DeviceLockImageURI</span></strong> <span class="re0" style="color: #0000ff;">IsRelative</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"true"</span> <span class="re0" style="color: #0000ff;">IsResource</span><span style="color: #339966;">=</span><span class="st0" style="color: #ff0000;">"false"</span><span class="re2">&gt;</span></span>24x24.png<strong><span class="sc3"><span class="re1">&lt;/DeviceLockImageURI<span class="re2">&gt;</span></span></span></strong>
<strong> <span class="sc3"><span class="re1">&lt;/TemplateCycle<span class="re2">&gt;</span></span></span></strong>
<strong><span class="sc3"><span class="re1">&lt;/PrimaryToken<span class="re2">&gt;</span></span></span></strong></pre>
</div>
</div>
<p>&nbsp;</p>
<p style="text-align: left;">Et la Live Tile s&rsquo;affiche comme suit (à noter que deux éléments sont présentés ici) :</p>
<p style="text-align: left;"><img class="size-full wp-image-2177 aligncenter" title="WhatsNewWP8_29_TemplateCycle" alt="" src="http://www.nokiadevblog.fr/wp-content/uploads/2013/01/WhatsNewWP8_29_TemplateCycle.gif" width="360" height="276" /></p>
<p>&nbsp;</p>
<p>source: <a href="http://www.developer.nokia.com/">developer.nokia.com</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.nokiadevblog.fr/2013/01/nouveautes-du-sdk-lockscreen-et-live-tiles/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
