{"id":8960,"date":"2019-11-16T12:35:46","date_gmt":"2019-11-16T10:35:46","guid":{"rendered":"https:\/\/www.espai.es\/blog\/?p=8960"},"modified":"2019-11-16T13:04:53","modified_gmt":"2019-11-16T11:04:53","slug":"los-nuevos-permisos-en-android","status":"publish","type":"post","link":"https:\/\/www.espai.es\/blog\/2019\/11\/los-nuevos-permisos-en-android\/","title":{"rendered":"Los nuevos permisos en Android"},"content":{"rendered":"<p style=\"text-align: justify\">En este articulo ilustraremos el nuevo c\u00f3digo que se debe acompa\u00f1ar en los permisos de Android con el lanzamiento de algunos intents.<\/p>\n<p style=\"text-align: justify\">Un intent (o\u00a0<em>intenci\u00f3n)<\/em>\u00a0en Android representa la voluntad de realizar alguna acci\u00f3n o tarea, por ejemplo:<\/p>\n<ul style=\"margin-left: 40px\">\n<li>como realizar una llamada de tel\u00e9fono<\/li>\n<li>visualizar una p\u00e1gina web<\/li>\n<li>enviar un correo, etc<\/li>\n<\/ul>\n<p style=\"text-align: justify\">Una intenci\u00f3n tambi\u00e9n nos permite lanzar una actividad o servicio de nuestra aplicaci\u00f3n o de una aplicaci\u00f3n diferente.\u00a0Existen dos tipos de intenciones:<\/p>\n<ul style=\"margin-left: 40px\">\n<li><strong>Intenciones expl\u00edcitas:<\/strong> se indica exactamente el componente a lanzar. Su utilizaci\u00f3n t\u00edpica es la de ir ejecutando los diferentes componentes internos de una aplicaci\u00f3n. Por ejemplo cuando desde una actividad se lanza otra actividad de forma expl\u00edcita.<\/li>\n<li><strong>Intenciones impl\u00edcitas: <\/strong>pueden solicitar tareas abstractas, como \u201cquiero tomar una foto\u201d o \u201cquiero enviar un mensaje\u201d. Se resuelven en tiempo de ejecuci\u00f3n, de forma que el sistema mirar\u00e1 cuantas aplicaciones han registrado la posibilidad de ejecutar ese tipo de actividad. Si encuentra varias el sistema puede preguntar al usuario la actividad que prefiere utilizar.<\/li>\n<\/ul>\n<p style=\"text-align: justify\">Por otro lado, una aplicaci\u00f3n b\u00e1sica de Android no tiene permisos asociados de manera predeterminada. No puede hacer nada que afecte negativamente la experiencia del usuario o los datos en el dispositivo. Para usar funciones protegidas del dispositivo y dar permisos, se deben incluir etiquetas del tipo\u00a0<a href=\"https:\/\/developer.android.com\/guide\/topics\/manifest\/uses-permission-element.html?hl=es-419\"><code>&lt;uses-permission&gt;<\/code><\/a>\u00a0en el manifest de la aplicaci\u00f3n.<\/p>\n<p style=\"text-align: justify\">Por ejemplo, una aplicaci\u00f3n que quiera acceder a Internet, necesita introducir la siguiente l\u00ednea en el AndroidManifest:<span class=\"pln\">\u00a0\u00a0<\/span>&lt;uses-permission android:name=\u00bbandroid.permission.INTERNET\u00bb\/&gt;<\/p>\n<p style=\"text-align: justify\">Las acciones\u00a0que no presentan un gran riesgo para la privacidad del usuario o el funcionamiento del dispositivo, basta con poner el &lt;uses-permission&gt; correspondiente en el AndroidManifest de la aplicaci\u00f3n (permisos normales). Pero aquellas otras acciones con m\u00e1s riesgo, que\u00a0podr\u00edan afectar a la privacidad del usuario o el funcionamiento normal del dispositivo, el sistema solicita al usuario que otorgue expl\u00edcitamente esos permisos.<\/p>\n<p style=\"text-align: justify\">La manera en que Android realiza la solicitud depende de la versi\u00f3n del sistema y de la versi\u00f3n del sistema objetivo de la aplicaci\u00f3n:<\/p>\n<ul style=\"margin-left: 40px\">\n<li>Si el dispositivo tiene instalado Android\u00a06.0 (nivel de API\u00a023) o versiones posteriores\u00a0<em>y<\/em>\u00a0el atributo targetSdkVersion de la app es 23 o superior, la aplicaci\u00f3n solicita los permisos al usuario en el tiempo de ejecuci\u00f3n. El usuario puede revocar los permisos en cualquier momento. Por ello, la aplicaci\u00f3n\u00a0 debe controlar si tiene los permisos cada vez que se ejecuta.<\/li>\n<li>Si el dispositivo tiene instalado Android\u00a05.1 (nivel de API\u00a022) o versiones anteriores,\u00a0<em>o<\/em>\u00a0el atributo\u00a0 targetSdkVersion\u00a0de la app es 22 o un valor inferior, el sistema solicita al usuario que otorgue los permisos al instalar la aplicaci\u00f3n. Si agregas un permiso nuevo a una versi\u00f3n actualizada de la aplicaci\u00f3n, el sistema solicita al usuario que otorgue ese permiso al actualizar la app. Una vez que el usuario instale la aplicaci\u00f3n, la \u00fanica manera que tiene de revocar el permiso es desinstalando la aplicaci\u00f3n.<\/li>\n<\/ul>\n<p style=\"text-align: justify\">Vamos a ver mediante un ejemplo el lanzamiento de los siguientes intents: ACTION_VIEW, ACTION_DIAL, ACTION_IMAGE_CAPTURE, ACTION_SEND, ACTION_WEB_SEARCH y ACTION_CALL. Examinaremos los restricciones de permisos que nos impone una aplicaci\u00f3n con minSDKVersion de 25 y targetSdlVersion de 29.<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\"><a href=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/20.png\" rel=\"attachment wp-att-8988\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-8988 size-full aligncenter\" src=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/20.png\" alt=\"\" width=\"539\" height=\"191\" srcset=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/20.png 539w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/20-300x106.png 300w\" sizes=\"auto, (max-width: 539px) 100vw, 539px\" \/><\/a><\/p>\n<p style=\"text-align: justify\">En el layout principal definimos 8 botones con las siguientes propiedades y eventos onClick:<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\"><a href=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/1.png\" rel=\"attachment wp-att-8963\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8963 \" src=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/1.png\" alt=\"\" width=\"462\" height=\"993\" srcset=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/1.png 268w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/1-140x300.png 140w\" sizes=\"auto, (max-width: 462px) 100vw, 462px\" \/><\/a><a href=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/3-1.png\" rel=\"attachment wp-att-8971\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8971 size-full\" src=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/3-1.png\" alt=\"\" width=\"440\" height=\"983\" srcset=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/3-1.png 440w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/3-1-134x300.png 134w\" sizes=\"auto, (max-width: 440px) 100vw, 440px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">En el MainActivity definimos las funciones evento-click correspondiente a cada bot\u00f3n del layout:<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\"><a href=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/2.png\" rel=\"attachment wp-att-8964\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8964 size-full\" src=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/2.png\" alt=\"\" width=\"667\" height=\"841\" srcset=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/2.png 667w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/2-238x300.png 238w\" sizes=\"auto, (max-width: 667px) 100vw, 667px\" \/><\/a><\/p>\n<p style=\"text-align: justify\">A priori el \u00fanico intent que nos reclama atenci\u00f3n es ACTION_CALL. El resto de intents no marcan ning\u00fan error.<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\"><a href=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/4.png\" rel=\"attachment wp-att-8968\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8968 size-full\" src=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/4.png\" alt=\"\" width=\"796\" height=\"113\" srcset=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/4.png 796w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/4-300x43.png 300w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/4-768x109.png 768w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/4-700x99.png 700w\" sizes=\"auto, (max-width: 796px) 100vw, 796px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">Nos indica que debemos agregar una etiqueta &lt;uses-permission&gt; con el nombre android.permission.CALL_PHONE en el AndroidManifest:<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\"><a href=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/5-1.png\" rel=\"attachment wp-att-8970\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8970 size-full\" src=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/5-1.png\" alt=\"\" width=\"483\" height=\"68\" srcset=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/5-1.png 483w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/5-1-300x42.png 300w\" sizes=\"auto, (max-width: 483px) 100vw, 483px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">Una vez vez agregado el permiso, nos vuelve a indicar otro mensaje:<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\"><a href=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/6.png\" rel=\"attachment wp-att-8972\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8972 size-full\" src=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/6.png\" alt=\"\" width=\"1130\" height=\"114\" srcset=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/6.png 1130w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/6-300x30.png 300w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/6-768x77.png 768w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/6-1024x103.png 1024w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/6-700x71.png 700w\" sizes=\"auto, (max-width: 1130px) 100vw, 1130px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">Esto lo solucionamos temporalmente lanzando la excepci\u00f3n hacia fuera y haciendo la aplicaci\u00f3n compilable:<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\"><a href=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/7.png\" rel=\"attachment wp-att-8973\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8973 size-full\" src=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/7.png\" alt=\"\" width=\"573\" height=\"83\" srcset=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/7.png 573w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/7-300x43.png 300w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/7-570x83.png 570w\" sizes=\"auto, (max-width: 573px) 100vw, 573px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">Ejecutamos la aplicaci\u00f3n y comprobamos que todos los botones funcionan perfectamente, excepto el boton de CALL_PHONE que hace finalizar la aplicaci\u00f3n.\u00a0El resultado es el siguiente:<\/p>\n<p>&nbsp;<\/p>\n<ul style=\"text-align: justify\">\n<li>ABRIR PAGINA WEB\/LLAMADA DE TELEFONO (DIAL)\/GOOGLEMAPS\/TOMAR FOTO<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\"><a href=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/21.png\" rel=\"attachment wp-att-8989\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8989 size-medium\" src=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/21-138x300.png\" alt=\"\" width=\"138\" height=\"300\" srcset=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/21-138x300.png 138w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/21-473x1024.png 473w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/21-700x1517.png 700w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/21.png 720w\" sizes=\"auto, (max-width: 138px) 100vw, 138px\" \/><\/a><a href=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/9.png\" rel=\"attachment wp-att-8974\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8974 size-medium\" src=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/9-138x300.png\" alt=\"\" width=\"138\" height=\"300\" srcset=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/9-138x300.png 138w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/9-473x1024.png 473w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/9-700x1517.png 700w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/9.png 720w\" sizes=\"auto, (max-width: 138px) 100vw, 138px\" \/><\/a><a href=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/10.png\" rel=\"attachment wp-att-8975\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8975 size-medium\" src=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/10-138x300.png\" alt=\"\" width=\"138\" height=\"300\" srcset=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/10-138x300.png 138w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/10-473x1024.png 473w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/10-700x1517.png 700w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/10.png 720w\" sizes=\"auto, (max-width: 138px) 100vw, 138px\" \/><\/a><a href=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/16.png\" rel=\"attachment wp-att-8982\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8982 size-medium\" src=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/16-138x300.png\" alt=\"\" width=\"138\" height=\"300\" srcset=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/16-138x300.png 138w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/16-473x1024.png 473w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/16-700x1517.png 700w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/16.png 720w\" sizes=\"auto, (max-width: 138px) 100vw, 138px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<ul style=\"text-align: justify\">\n<li>MANDAR CORREO\/ABRIR PAGINA WEB (WEB_SEARCH)\/STREETVIEW<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\"><a href=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/11-1.png\" rel=\"attachment wp-att-8991\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-8991\" src=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/11-1-138x300.png\" alt=\"\" width=\"138\" height=\"300\" srcset=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/11-1-138x300.png 138w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/11-1-473x1024.png 473w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/11-1-700x1517.png 700w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/11-1.png 720w\" sizes=\"auto, (max-width: 138px) 100vw, 138px\" \/><\/a><a href=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/12.png\" rel=\"attachment wp-att-8977\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-8977\" src=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/12-138x300.png\" alt=\"\" width=\"138\" height=\"300\" srcset=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/12-138x300.png 138w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/12-473x1024.png 473w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/12-700x1517.png 700w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/12.png 720w\" sizes=\"auto, (max-width: 138px) 100vw, 138px\" \/><\/a>\u00a0<a href=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/13.png\" rel=\"attachment wp-att-8979\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-8979\" src=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/13-138x300.png\" alt=\"\" width=\"138\" height=\"300\" srcset=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/13-138x300.png 138w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/13-473x1024.png 473w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/13-700x1517.png 700w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/13.png 720w\" sizes=\"auto, (max-width: 138px) 100vw, 138px\" \/><\/a><a href=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/14.png\" rel=\"attachment wp-att-8980\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-8980\" src=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/14-138x300.png\" alt=\"\" width=\"138\" height=\"300\" srcset=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/14-138x300.png 138w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/14-473x1024.png 473w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/14-700x1517.png 700w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/14.png 720w\" sizes=\"auto, (max-width: 138px) 100vw, 138px\" \/><\/a><a href=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/15.png\" rel=\"attachment wp-att-8981\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-8981\" src=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/15-138x300.png\" alt=\"\" width=\"138\" height=\"300\" srcset=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/15-138x300.png 138w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/15-473x1024.png 473w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/15-700x1517.png 700w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/15.png 720w\" sizes=\"auto, (max-width: 138px) 100vw, 138px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">Podemos observar que tanto los intents ACTION_SEND, como el WEB_SEARCH son del tipo impl\u00edcito, los cuales, como hemos comentado anteriormente, se resuelven en tiempo de ejecuci\u00f3n, invitando al usuario a que elija de entre todas las aplicaciones que pueden realizar esa actividad, la que desee utilizar.<\/p>\n<p style=\"text-align: justify\">El intent ACTION_CALL necesita de una forma especial de programar los permisos. No basta con poner el correspondiente &lt;uses-permission&gt; en el AndroidManifest. Se necesita un c\u00f3digo que pregunte al usuario si desea permitir o denegar los permisos de la aplicaci\u00f3n en tiempo de ejecuci\u00f3n. He aqui un ejemplo de este c\u00f3digo, necesario para API de Android altas:<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\"><a href=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/17.png\" rel=\"attachment wp-att-8983\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8983 size-full\" src=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/17.png\" alt=\"\" width=\"906\" height=\"581\" srcset=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/17.png 906w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/17-300x192.png 300w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/17-768x493.png 768w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/17-700x449.png 700w\" sizes=\"auto, (max-width: 906px) 100vw, 906px\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\">El resultado es el siguiente al apretar el bot\u00f3n \u00abLlamada de telefono (call)\u00bb:<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: justify\"><a href=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/18.png\" rel=\"attachment wp-att-8984\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8984 \" src=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/18-473x1024.png\" alt=\"\" width=\"268\" height=\"580\" srcset=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/18-473x1024.png 473w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/18-138x300.png 138w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/18-700x1517.png 700w, https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/18.png 720w\" sizes=\"auto, (max-width: 268px) 100vw, 268px\" \/><\/a><a href=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/19-1.png\" rel=\"attachment wp-att-8986\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-8986\" src=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/19-1-138x300.png\" alt=\"\" width=\"266\" height=\"578\" \/><\/a><\/p>\n<p>&nbsp;<\/p>\n<p>Espero que os haya resultado interesante,<\/p>\n<p>Saludos y hasta el pr\u00f3ximo art\u00edculo!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En este articulo ilustraremos el nuevo c\u00f3digo que se debe acompa\u00f1ar en los permisos de Android con el lanzamiento de algunos intents. Un intent (o\u00a0intenci\u00f3n)\u00a0en Android representa la voluntad de realizar alguna acci\u00f3n o tarea, por ejemplo: como realizar una llamada de tel\u00e9fono visualizar una&#8230;<\/p>\n","protected":false},"author":18,"featured_media":8993,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_ef_editorial_meta_date_first-draft-date":"","_ef_editorial_meta_paragraph_assignment":"","_ef_editorial_meta_checkbox_needs-photo":"","_ef_editorial_meta_number_word-count":"","_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[5],"tags":[100,712],"class_list":["post-8960","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programacion","tag-android","tag-permisos"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.1.1 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Los nuevos permisos en Android - Blog Escola Espai<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.espai.es\/blog\/2019\/11\/los-nuevos-permisos-en-android\/\" \/>\n<meta property=\"og:locale\" content=\"es_ES\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Los nuevos permisos en Android - Blog Escola Espai\" \/>\n<meta property=\"og:description\" content=\"En este articulo ilustraremos el nuevo c\u00f3digo que se debe acompa\u00f1ar en los permisos de Android con el lanzamiento de algunos intents. Un intent (o\u00a0intenci\u00f3n)\u00a0en Android representa la voluntad de realizar alguna acci\u00f3n o tarea, por ejemplo: como realizar una llamada de tel\u00e9fono visualizar una...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.espai.es\/blog\/2019\/11\/los-nuevos-permisos-en-android\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog Escola Espai\" \/>\n<meta property=\"article:published_time\" content=\"2019-11-16T10:35:46+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-11-16T11:04:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/entrada.png\" \/>\n\t<meta property=\"og:image:width\" content=\"652\" \/>\n\t<meta property=\"og:image:height\" content=\"339\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Eduard Lara\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Eduard Lara\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.espai.es\/blog\/2019\/11\/los-nuevos-permisos-en-android\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.espai.es\/blog\/2019\/11\/los-nuevos-permisos-en-android\/\"},\"author\":{\"name\":\"Eduard Lara\",\"@id\":\"https:\/\/www.espai.es\/blog\/#\/schema\/person\/c010fc22b846036e802d1e44af2f032d\"},\"headline\":\"Los nuevos permisos en Android\",\"datePublished\":\"2019-11-16T10:35:46+00:00\",\"dateModified\":\"2019-11-16T11:04:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.espai.es\/blog\/2019\/11\/los-nuevos-permisos-en-android\/\"},\"wordCount\":868,\"commentCount\":1,\"image\":{\"@id\":\"https:\/\/www.espai.es\/blog\/2019\/11\/los-nuevos-permisos-en-android\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/entrada.png\",\"keywords\":[\"Android\",\"Permisos\"],\"articleSection\":[\"Programaci\u00f3n\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/www.espai.es\/blog\/2019\/11\/los-nuevos-permisos-en-android\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.espai.es\/blog\/2019\/11\/los-nuevos-permisos-en-android\/\",\"url\":\"https:\/\/www.espai.es\/blog\/2019\/11\/los-nuevos-permisos-en-android\/\",\"name\":\"Los nuevos permisos en Android - Blog Escola Espai\",\"isPartOf\":{\"@id\":\"https:\/\/www.espai.es\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/www.espai.es\/blog\/2019\/11\/los-nuevos-permisos-en-android\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/www.espai.es\/blog\/2019\/11\/los-nuevos-permisos-en-android\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/entrada.png\",\"datePublished\":\"2019-11-16T10:35:46+00:00\",\"dateModified\":\"2019-11-16T11:04:53+00:00\",\"author\":{\"@id\":\"https:\/\/www.espai.es\/blog\/#\/schema\/person\/c010fc22b846036e802d1e44af2f032d\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.espai.es\/blog\/2019\/11\/los-nuevos-permisos-en-android\/#breadcrumb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.espai.es\/blog\/2019\/11\/los-nuevos-permisos-en-android\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.espai.es\/blog\/2019\/11\/los-nuevos-permisos-en-android\/#primaryimage\",\"url\":\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/entrada.png\",\"contentUrl\":\"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/entrada.png\",\"width\":652,\"height\":339},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.espai.es\/blog\/2019\/11\/los-nuevos-permisos-en-android\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Portada\",\"item\":\"https:\/\/www.espai.es\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Los nuevos permisos en Android\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.espai.es\/blog\/#website\",\"url\":\"https:\/\/www.espai.es\/blog\/\",\"name\":\"Blog Escola Espai\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.espai.es\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.espai.es\/blog\/#\/schema\/person\/c010fc22b846036e802d1e44af2f032d\",\"name\":\"Eduard Lara\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\/\/www.espai.es\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1db5534348ae135bc85fb3d132640340e24d22bc52283736229af84971f562a1?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1db5534348ae135bc85fb3d132640340e24d22bc52283736229af84971f562a1?s=96&d=mm&r=g\",\"caption\":\"Eduard Lara\"},\"sameAs\":[\"http:\/\/www.espai.es\"],\"url\":\"https:\/\/www.espai.es\/blog\/author\/eduard\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Los nuevos permisos en Android - Blog Escola Espai","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.espai.es\/blog\/2019\/11\/los-nuevos-permisos-en-android\/","og_locale":"es_ES","og_type":"article","og_title":"Los nuevos permisos en Android - Blog Escola Espai","og_description":"En este articulo ilustraremos el nuevo c\u00f3digo que se debe acompa\u00f1ar en los permisos de Android con el lanzamiento de algunos intents. Un intent (o\u00a0intenci\u00f3n)\u00a0en Android representa la voluntad de realizar alguna acci\u00f3n o tarea, por ejemplo: como realizar una llamada de tel\u00e9fono visualizar una...","og_url":"https:\/\/www.espai.es\/blog\/2019\/11\/los-nuevos-permisos-en-android\/","og_site_name":"Blog Escola Espai","article_published_time":"2019-11-16T10:35:46+00:00","article_modified_time":"2019-11-16T11:04:53+00:00","og_image":[{"width":652,"height":339,"url":"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/entrada.png","type":"image\/png"}],"author":"Eduard Lara","twitter_card":"summary_large_image","twitter_misc":{"Escrito por":"Eduard Lara","Tiempo de lectura":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.espai.es\/blog\/2019\/11\/los-nuevos-permisos-en-android\/#article","isPartOf":{"@id":"https:\/\/www.espai.es\/blog\/2019\/11\/los-nuevos-permisos-en-android\/"},"author":{"name":"Eduard Lara","@id":"https:\/\/www.espai.es\/blog\/#\/schema\/person\/c010fc22b846036e802d1e44af2f032d"},"headline":"Los nuevos permisos en Android","datePublished":"2019-11-16T10:35:46+00:00","dateModified":"2019-11-16T11:04:53+00:00","mainEntityOfPage":{"@id":"https:\/\/www.espai.es\/blog\/2019\/11\/los-nuevos-permisos-en-android\/"},"wordCount":868,"commentCount":1,"image":{"@id":"https:\/\/www.espai.es\/blog\/2019\/11\/los-nuevos-permisos-en-android\/#primaryimage"},"thumbnailUrl":"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/entrada.png","keywords":["Android","Permisos"],"articleSection":["Programaci\u00f3n"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.espai.es\/blog\/2019\/11\/los-nuevos-permisos-en-android\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.espai.es\/blog\/2019\/11\/los-nuevos-permisos-en-android\/","url":"https:\/\/www.espai.es\/blog\/2019\/11\/los-nuevos-permisos-en-android\/","name":"Los nuevos permisos en Android - Blog Escola Espai","isPartOf":{"@id":"https:\/\/www.espai.es\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.espai.es\/blog\/2019\/11\/los-nuevos-permisos-en-android\/#primaryimage"},"image":{"@id":"https:\/\/www.espai.es\/blog\/2019\/11\/los-nuevos-permisos-en-android\/#primaryimage"},"thumbnailUrl":"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/entrada.png","datePublished":"2019-11-16T10:35:46+00:00","dateModified":"2019-11-16T11:04:53+00:00","author":{"@id":"https:\/\/www.espai.es\/blog\/#\/schema\/person\/c010fc22b846036e802d1e44af2f032d"},"breadcrumb":{"@id":"https:\/\/www.espai.es\/blog\/2019\/11\/los-nuevos-permisos-en-android\/#breadcrumb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.espai.es\/blog\/2019\/11\/los-nuevos-permisos-en-android\/"]}]},{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.espai.es\/blog\/2019\/11\/los-nuevos-permisos-en-android\/#primaryimage","url":"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/entrada.png","contentUrl":"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/entrada.png","width":652,"height":339},{"@type":"BreadcrumbList","@id":"https:\/\/www.espai.es\/blog\/2019\/11\/los-nuevos-permisos-en-android\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Portada","item":"https:\/\/www.espai.es\/blog\/"},{"@type":"ListItem","position":2,"name":"Los nuevos permisos en Android"}]},{"@type":"WebSite","@id":"https:\/\/www.espai.es\/blog\/#website","url":"https:\/\/www.espai.es\/blog\/","name":"Blog Escola Espai","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.espai.es\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/www.espai.es\/blog\/#\/schema\/person\/c010fc22b846036e802d1e44af2f032d","name":"Eduard Lara","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/www.espai.es\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1db5534348ae135bc85fb3d132640340e24d22bc52283736229af84971f562a1?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1db5534348ae135bc85fb3d132640340e24d22bc52283736229af84971f562a1?s=96&d=mm&r=g","caption":"Eduard Lara"},"sameAs":["http:\/\/www.espai.es"],"url":"https:\/\/www.espai.es\/blog\/author\/eduard\/"}]}},"jetpack_featured_media_url":"https:\/\/www.espai.es\/blog\/wp-content\/uploads\/2019\/11\/entrada.png","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/posts\/8960","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/users\/18"}],"replies":[{"embeddable":true,"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/comments?post=8960"}],"version-history":[{"count":12,"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/posts\/8960\/revisions"}],"predecessor-version":[{"id":8998,"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/posts\/8960\/revisions\/8998"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/media\/8993"}],"wp:attachment":[{"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/media?parent=8960"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/categories?post=8960"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.espai.es\/blog\/wp-json\/wp\/v2\/tags?post=8960"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}