{"id":816,"date":"2013-07-27T13:54:16","date_gmt":"2013-07-27T12:54:16","guid":{"rendered":"http:\/\/cyol.fr\/blog\/?p=816"},"modified":"2013-11-14T16:15:29","modified_gmt":"2013-11-14T15:15:29","slug":"empecher-la-mise-en-veille-wake-locks","status":"publish","type":"post","link":"https:\/\/cyol.fr\/blog\/post\/empecher-la-mise-en-veille-wake-locks\/","title":{"rendered":"Emp\u00eacher la mise en veille : Wake Locks et keepScreenOn"},"content":{"rendered":"<p><a href=\"https:\/\/cyol.fr\/blog\/wp-content\/uploads\/billets\/icones\/Android_Robot_100.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignleft size-full wp-image-124\" title=\"Android_Robot_100\" alt=\"Logo Android\" src=\"https:\/\/cyol.fr\/blog\/wp-content\/uploads\/billets\/icones\/Android_Robot_100.png\" width=\"85\" height=\"100\" \/><\/a>L&rsquo;une des fonctionnalit\u00e9s de l&rsquo;App d&rsquo;<a title=\"Le Val des Etoiles : aide de jeu sur android\" href=\"https:\/\/cyol.fr\/blog\/le-val-des-etoiles-aide-de-jeu-sur-android\/\">aide de jeu pour le Val des \u00c9toiles<\/a> est de proposer un compteur de Majest\u00e9 pour chacun des deux joueurs. L&rsquo;id\u00e9e est donc d&rsquo;avoir le smartphone au milieu de la table avec les deux compteurs visibles. Sauf que&#8230; Au bout d&rsquo;un moment le smartphone va se mettre en veille et \u00e9teindre l&rsquo;\u00e9cran.<\/p>\n<p>Je voulais donc a\/ proposer une fonctionnalit\u00e9 qui bloque la Mise en Veille sur l&rsquo;\u00e9cran des Majest\u00e9s et b\/ que cette fonctionnalit\u00e9 soit activable ou pas via les pr\u00e9f\u00e9rences.<\/p>\n<p><!--more--><\/p>\n<p>En faisant quelques recherches, la premi\u00e8re chose sur laquelle je suis tomb\u00e9 est une explication de l&rsquo;utilisation du WAKE LOCK (<a title=\"explication sur le Wake Locks\" href=\"http:\/\/supertos.free.fr\/supertos.php?page=1057\" target=\"_blank\">http:\/\/supertos.free.fr\/supertos.php?page=1057<\/a>) mais j&rsquo;ai vu qu&rsquo;il y avait un probl\u00e8me par rapport \u00e0 ce que je voulais pour mon application : utiliser cette fonctionnalit\u00e9 impliquait une Permission. (J&rsquo;\u00e9voque les Permissions dans un <a title=\"SRDice : Log des lancers de D\u00e9s\" href=\"https:\/\/cyol.fr\/blog\/post\/srdice-log-des-lancers-de-des\/\" target=\"_blank\">post pr\u00e9c\u00e9dent<\/a>)<\/p>\n<p>Hors, je voulais, dans la mesure du possible ne demander aucune Permission pour le Val des \u00c9toiles.<\/p>\n<p>Apr\u00e8s quelques recherches compl\u00e9mentaires, j&rsquo;ai enfin trouv\u00e9 mon bonheur, en tous cas un d\u00e9but : un attribut de layout =&gt; <code>android:keepScreenOn=\"true\"<\/code><\/p>\n<p>Qui dit attribut de layout, dit que c&rsquo;est modifiable programmatiquement. Du coup j&rsquo;ai mis au point une fonction que j&rsquo;appelle au OnCreate de l&rsquo;\u00e9cran des Majest\u00e9s ainsi qu&rsquo;au retour de PreferenceActivity (pour mettre \u00e0 jour en cas de modification de la pr\u00e9f\u00e9rence). Au sujet des pr\u00e9f\u00e9rences : <a title=\"D\u00e9v Android : Mise en place des Pr\u00e9f\u00e9rences\" href=\"https:\/\/cyol.fr\/blog\/post\/dev-android-mise-en-place-des-preferences\/\">D\u00e9v Android : Mise en place des Pr\u00e9f\u00e9rences.<\/a><\/p>\n<pre class=\"brush:java\">\u00a0\u00a0\u00a0 \/**\r\n\u00a0\u00a0 \u00a0 * Activation\/d\u00e9sactivation du blocage de la Mise en veille\r\n\u00a0\u00a0 \u00a0 *\/\r\n\u00a0\u00a0 \u00a0protected void keepScreen(){\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 View ecran = findViewById(R.id.linearLayoutMajestes);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ecran.setKeepScreenOn(blocageVeille);\r\n\u00a0\u00a0 \u00a0}<\/pre>\n<p>R.id.linearLayoutMajestes est la balise englobante du layout li\u00e9e \u00e0 l&rsquo;Activity MajestesActivity.<br \/>\nblocageVeille est un boolean issus des Pr\u00e9f\u00e9rences. S&rsquo;il est \u00e0 true, le smartphone ne passera pas en veille (et n&rsquo;\u00e9teindra pas l&rsquo;\u00e9cran) tant que R.id.linearLayoutMajestes est affich\u00e9 \u00e0 l&rsquo;\u00e9cran.<\/p>\n<p>Et voil\u00e0 !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>http:\/\/supertos.free.fr\/supertos. [&#8230;]<\/p>\n","protected":false},"author":1,"featured_media":124,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10,2,81],"tags":[26,114,23,113,47],"class_list":["post-816","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-android","category-developpement","category-le-val-des-etoiles","tag-activity","tag-android","tag-jeu","tag-php","tag-preferences","odd"],"_links":{"self":[{"href":"https:\/\/cyol.fr\/blog\/wp-json\/wp\/v2\/posts\/816","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cyol.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cyol.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cyol.fr\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cyol.fr\/blog\/wp-json\/wp\/v2\/comments?post=816"}],"version-history":[{"count":11,"href":"https:\/\/cyol.fr\/blog\/wp-json\/wp\/v2\/posts\/816\/revisions"}],"predecessor-version":[{"id":1077,"href":"https:\/\/cyol.fr\/blog\/wp-json\/wp\/v2\/posts\/816\/revisions\/1077"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/cyol.fr\/blog\/wp-json\/wp\/v2\/media\/124"}],"wp:attachment":[{"href":"https:\/\/cyol.fr\/blog\/wp-json\/wp\/v2\/media?parent=816"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cyol.fr\/blog\/wp-json\/wp\/v2\/categories?post=816"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cyol.fr\/blog\/wp-json\/wp\/v2\/tags?post=816"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}