<?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>AndroidApps &#187; ASE</title>
	<atom:link href="http://androidapps.es/tag/ase/feed/" rel="self" type="application/rss+xml" />
	<link>http://androidapps.es</link>
	<description>Todo lo que necesitas para tu Android</description>
	<lastBuildDate>Fri, 28 May 2010 07:00:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>ASE: un gran desconocido.</title>
		<link>http://androidapps.es/2009/11/07/ase-un-gran-desconocido/</link>
		<comments>http://androidapps.es/2009/11/07/ase-un-gran-desconocido/#comments</comments>
		<pubDate>Sat, 07 Nov 2009 21:59:30 +0000</pubDate>
		<dc:creator>michel</dc:creator>
				<category><![CDATA[Desarrollo - SDK]]></category>
		<category><![CDATA[Tutoriales]]></category>
		<category><![CDATA[Android Scripting Environment]]></category>
		<category><![CDATA[ASE]]></category>

		<guid isPermaLink="false">http://androidapps.es/?p=2669</guid>
		<description><![CDATA[Android Scripting Environment (ASE) es un lenguaje de guiones (scripts) que puede ser directamente interpretado en un móvil Android. No deben confundirse los scripts y los apk (Android PacKage) simplemente porque un guión no sustituye un programa pero sí es cierto que resulta muy útil para crear utilidades y pequeñas aplicaciones. El entorno ASE permite [...]]]></description>
			<content:encoded><![CDATA[<p><em><strong>Android Scripting Environment</strong></em> (ASE) es un <strong>lenguaje de guiones</strong> (<em>scripts</em>) que puede ser directamente interpretado en un móvil Android. No deben confundirse los <em>scripts</em> y los <em>apk</em> (Android PacKage) simplemente porque un guión no sustituye un programa pero sí es cierto que resulta <strong>muy útil para crear utilidades y pequeñas aplicaciones</strong>.</p>
<p><strong>El entorno <em>ASE</em> permite la creación y ejecución de  código</strong> utilizando varios lenguajes interpretados entre los cuales <strong>todavía falta  Javascript (aunque la versión r14 lo soporta vía Rhino)</strong> pero ya están disponibles los siguientes: (entre paréntesis las actuales versiones)</p>
<ul>
<li>Python (2.6.2)</li>
<li>Perl (5.10.0)</li>
<li>Rhino (1.7R2)</li>
<li>JRuby (1.2.0RC1)</li>
<li>Lua (5.1.4)</li>
<li>BeanShell (2.0b4)</li>
<li>shell</li>
</ul>
<p><strong><em>ASE</em> es potente porque puede acceder a varias APIs</strong> como hacen las aplicaciones convencionales para:</p>
<ul>
<li>Manejar &#8220;intents&#8221;.</li>
<li>Iniciar &#8220;activities&#8221;.</li>
<li>Realizar llamadas telefónicas.</li>
<li>Enviar mensajes de texto.</li>
<li>Escanear códigos de barras.</li>
<li>Obtener ubicaciones y datos de sensores.</li>
<li>Utilizar el sintetizador de voz (text-to-speech).</li>
<li>etc.</li>
</ul>
<p><span id="more-2669"></span><strong>Procedimiento básico</strong>:</p>
<ol>
<li>Descargar <em>ASE</em> (actualmente: <strong>r14</strong>)</li>
<li>Ejecutar <em>ASE</em> y descargar el intérprete que necesitemos (o todos los disponibles).</li>
<li>Introducir el script.</li>
<li>Ejecutar el script.</li>
</ol>
<p class="descarga"><strong>Descarga</strong>: <a href="http://android-scripting.googlecode.com/files/ase_r14.apk">ASE</a> (r14)</p>
<div class="qrback">
<div class="qrcode"><a href="http://android-scripting.googlecode.com/files/ase_r14.apk"><img src="http://qrcode.kaywa.com/img.php?s=5&amp;d=http://android-scripting.googlecode.com/files/ase_r14.apk" alt="QR Download" width="79" height="79" /></a></div>
<div class="qrp">
<h4>Descarga la aplicación directamente a tu Android.</h4>
<p>Para la lectura de este <strong>Código QR</strong> te recomendamos:<br />
<a href="http://androidapps.es/2009/05/24/barcode-scanner-lector-de-codigos-de-barras-y-qr/"><strong>Barcode Scanner</strong></a></div>
</div>
<p><strong>Saltándome todas las reglas del buen programador</strong> creo que lo mejor será empezar directamente con un ejemplo de iniciación que encima sea práctico o sea que, si os parece, vamos al grano.</p>
<p><strong><span style="text-decoration: underline">Ejemplo práctico</span></strong>: &#8220;Autosilenciador&#8221;<br />
<strong>Utilidad</strong>: silenciar el móvil girándolo con la pantalla hacia abajo (y viceversa).<br />
<strong>Intérprete</strong>: Lua.</p>
<ol>
<li>Abrimos: <em>ASE</em>.</li>
<li>Pulsamos la tecla &#8220;menu&#8221;.</li>
<li>Pulsamos &#8220;Add&#8221; para añadir intérpretes.</li>
<li>Elegimos &#8220;Lua&#8221; (actualmente: 5.1.4)</li>
<li>Introducimos el código siguiente:<code>-- autosilenciador.lua<br />
-- autor: michel para AndroidApps<br />
-- Modo silencio: poner la pantalla hacia abajo (vibra durante 150ms)<br />
-- Modo normal:  poner la pantalla hacia arriba (avisa vocalmente)<br />
require "android"<br />
android.startSensing()<br />
android.sleep(1)<br />
silent = false<br />
while true do<br />
s = android.readSensors()<br />
haciabajo = s.result and s.result.zforce and s.result.zforce &lt; -5<br />
if haciabajo and not silent then<br />
android.vibrate(150)<br />
android.setRingerSilent(true)<br />
silent = true<br />
elseif not haciabajo and silent then<br />
android.speak("Modo normal activado!")<br />
android.setRingerSilent(false)<br />
silent = false<br />
end<br />
android.sleep(1)<br />
end</code><br />
<span style="text-decoration: underline">Notas</span>: las 4 primeras líneas son comentarios y pueden ser eliminadas pero <strong>el archivo debe grabarse con extensión &#8220;.lua&#8221; para que el intérprete lo reconozca</strong>. Por otra parte aclarar que el sintetizador de voz (TTS), con la r14 de ASE, solo funcionará a partir de Donut.</li>
<li>Los que prefieran teclearlo pueden saltarse este paso y los que no quieran teclearlo pueden escanearlo a continuación:
<p style="text-align: center"><a href="http://androidapps.es/wp-content/uploads/2009/11/autosilenciador.png" rel="lightbox[2669]"><img class="alignnone size-full wp-image-2716" src="http://androidapps.es/wp-content/uploads/2009/11/autosilenciador.png" alt="autosilenciador.lua" width="120" height="120" /></a><br />
<em> autosilenciador.lua</em></p>
<p><strong>El código QR debe ser escaneado desde <em>ASE</em></strong>. Para ello basta pulsar la tecla &#8220;menu&#8221;, luego &#8220;Add&#8221; y seleccionar &#8220;Scan Barcode&#8221; (escáner de códigos de barra). <em>ASE</em> lo escaneará y lo integrará en su lista de <em>scripts</em> con el nombre: &#8220;<strong>- &#8211; autosilenciador.lua</strong>&#8221; pero, antes de ejecutarlo, hay que eliminar los dos guiones iniciales renombrándolo como: <strong>autosilenciador.lua</strong>.</li>
<li><strong>Desde <em>ASE</em> seleccionar &#8220;autosilenciador.lua&#8221;</strong> de la lista de <em>scripts</em> que se crea en el propio entorno. Al pulsar el cursor de bola se ejecutará el <em>script</em> y aparecerá un terminal con la secuencia mostrada a continuación.
<p style="text-align: center"><a href="http://androidapps.es/wp-content/uploads/2009/11/autosilenciador-iniciado1.png" rel="lightbox[2669]"><img class="alignnone size-full wp-image-2729" src="http://androidapps.es/wp-content/uploads/2009/11/autosilenciador-iniciado1.png" alt="autosilenciador-iniciado" width="320" height="89" /></a><br />
<em> Script autosilenciador ejecutándose.</em></li>
<li><span style="color: #ff0000"><strong>Ya podemos probarlo&#8230;</strong></span> Le damos la vuelta al terminal (con la pantalla hacia abajo) y el móvil vibrará brevemente para indicarnos que está en modo silencio (al mismo tiempo el icono del altavoz tachado hará su aparición en la barra de estado). Volvemos a darle la vuelta, <strong>el sintetizador de voz nos dirá &#8220;Modo normal activado!&#8221;</strong> y el icono mencionado desaparecerá. <strong>Si coincide con una llamada entrante también sonará el tono asignado.</strong> Podemos voltear la pantalla en todo momento conmutando alternativamente de modo (silencio / tono). <strong>Si queremos dejar el script trabajando (en <em>background</em>) basta con pulsar &#8220;<em>home</em>&#8221; y usar el móvil normalmente</strong> aunque es cierto que, según lo que se haga, el <em>script</em> puede morir sin preaviso (algo que abría que estudiar para darle un uso realmente pragmático). <strong>Si queremos detener el <em>script</em> manualmente basta con pulsar la tecla &#8220;<strong>atrás</strong>&#8221; desde <em>ASE</em></strong> y la tarea &#8220;morirá&#8221; instantáneamente.</li>
</ol>
<p><span style="text-decoration: underline">Para saber más</span> (en inglés): <a href="http://code.google.com/p/android-scripting/">android-scripting</a>, <a href="http://docs.google.com/present/embed?id=dc4xcdp_23m58xdqch">presentación oficial</a>.</p>
<p><strong>Espero que esta introducción os motive para seguir creando códigos útiles y los compartais a través de este blog.</strong> <img src='http://androidapps.es/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<div id="crp_related"><div class="related" id="crp_related"><h2>Artículos relacionados:</h2><ul><li><a href="http://androidapps.es/2010/05/26/chrome-to-phone-que-es-y-como-activarlo/" rel="bookmark" class="crp_title">Chrome to Phone: Que es y como activarlo.</a></li><li><a href="http://androidapps.es/2009/12/31/la-galeria-de-android-2-1-portada-a-2-0/" rel="bookmark" class="crp_title">La galería de Android 2.1 portada a 2.0</a></li><li><a href="http://androidapps.es/2009/11/08/photoshop-mobile-android/" rel="bookmark" class="crp_title">Photoshop Mobile disponible para Android.</a></li><li><a href="http://androidapps.es/2010/01/28/samsung-galaxy-2-%c2%bfpara-el-mwc/" rel="bookmark" class="crp_title">Samsung Galaxy 2 ¿para el MWC?.</a></li><li><a href="http://androidapps.es/2009/12/09/mewbox-la-primera-tienda-musical-para-android/" rel="bookmark" class="crp_title">Mewbox: la primera tienda musical para Android.</a></li></ul></div></div>]]></content:encoded>
			<wfw:commentRss>http://androidapps.es/2009/11/07/ase-un-gran-desconocido/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
