Funciones avanzadas App Inventor


A continuación se describen algunos componentes  de App Inventor que nos pueden ser muy utiles de cara a dar  una mayor funcionalidad  a nuestra próxima aplicación  móvil como son la gestion de la conexion  por bluetooth, el reconocimiento vocal, trascripcion a voz,  un scanner de códigos QR o gestionar los servicios web.

 

 

ActivityStarter

Un componente que puede poner en marcha otra de las actividades de su aplicación.

Usted se comunica con el motor de arranque de actividad mediante el establecimiento de propiedades del componente para pasar información relacionada con la actividad, incluyendo la acción y la clase de actividad. Consulte Uso de la actividad de arranque de componentes para obtener más información y ejemplos.

Actividades que pueden ser lanzados incluyen:

  • Comenzando otra App Inventor para aplicación Android. Para ello, en primer lugar determinar la clase de la otra aplicación descargando el código fuente y el uso de un explorador de archivos o descomprimir utilidad para encontrar un archivo llamado “youngandroidproject / project.properties”. La primera línea del archivo comenzará con “main =” y será seguido por el nombre de la clase; Por ejemplo,principal = com.gmail.Bitdiddle.Ben.HelloPurr.Screen1Para hacer su ActivityStarter lanzar esta aplicación, establezca las siguientes propiedades:
    • ActivityPackage al nombre de clase, dejando caer el último componente (por ejemplo, com.gmail.Bitdiddle.Ben.HelloPurr)
    • ActivityClass a todo el nombre de la clase (por ejemplo, com.gmail.Bitdiddle.Ben.HelloPurr.Screen1)
  • Inicio de una actividad que se integra en el sistema operativoAndroid, como el uso de la cámara, o al hacer una búsqueda en Internet. Puede comenzar cámara ajustando las siguientes propiedades:
    • Acción: android.intent.action.MAIN
    • ActivityPackage: com.android.camera
    • ActivityClass: com.android.camera.Camera
  • Si realiza una búsqueda web: Suponiendo que el término que desea buscar es “vampiro” (no dude en sustituir su propia elección), establezca las propiedades de:
    • Acción: android.intent.action.WEB_SEARCH
    • ExtraKey: consulta
    • ExtraValue: vampiro
    • ActivityPackage: com.google.android.providers.enhancedgooglesearch
    • ActivityClass: com.google.android.providers.enhancedgooglesearch.Launcher
  • La apertura de un navegador a una página web específica. Asumiendo la página que desee ir a es ” www.facebook.com (enlace es externo)“(no dude en sustituir su propia elección), establezca las propiedades de:

También puede iniciar las aplicaciones de terceros instaladas en el teléfono, siempre y cuando sepas las adecuadas intentos de invocar, y también se puede poner en marcha actividades que producen resultados de texto y que vuelva a utilizar en la aplicación. La forma en que estos datos se extrae depende de cómo se ha implementado la aplicación.

Propiedades

Acción: texto
Acción de la actividad que se lanzará.
ActivityClass: texto
Nombre de clase de la actividad que se lanzará.
ActivityPackage: texto
Nombre del paquete de la actividad que se lanzará.
DataType
DataURI: texto
URI pasado a la actividad que se lanzará.
ExtraKey: texto
Nombre de clave de texto pasa a la actividad.
ExtraValue: texto
Valor de texto pasa a la actividad.
Resultado: texto
Valor devuelto por la actividad que se inició.
ResultName: texto
El nombre que se utiliza para extraer el resultado devuelto por la actividad que se inició.
ResultType: texto
Escriba la información de regresar de la actividad que se inició.
ResultUri: texto
URI (o datos) información devuelta de la actividad que se inició.

Eventos

ActivityError (mensaje de texto)
Indica que se ha producido un error al usar este ActivityStarter.
AfterActivity (resultado de texto)
Llamado después de que termine la actividad.

Métodos

ResolveActivity text ()
Devuelve el nombre de la actividad que corresponde a este ActivityStarter, o una cadena vacía si se puede encontrar ninguna actividad correspondiente. Usted puede usar este antes de iniciar una aplicación externa para garantizar que la aplicación está instalada en el teléfono.
StartActivity ()
Inicie la actividad asociada a este componente.

BarcodeScanner

Este componente no visible usa la cámara del teléfono para leer un código de barras 1-dimensional o de código de barras de 2 dimensiones (código QR). Para que este componente funcione, la aplicación de escáner de código de barras de ZXing debe estar instalado en el teléfono. Esta aplicación se encuentra disponible de forma gratuita en el Android Market.

Propiedades

Resultado
El resultado de texto del último análisis acertado. Esto se obtiene después AfterScan ha señalado. Este valor también se devuelve como el valor del resultado.

Eventos

AfterScan (resultado de texto)
Llamado después de escanear extremos.

Métodos

Doscan ()
Ejecutar un análisis

BluetoothClient

Componente de cliente de Bluetooth

Propiedades

AddressesAndNames
Una lista de las direcciones y los nombres de los dispositivos Bluetooth vinculados.
Disponible
Di si Bluetooth está disponible en el dispositivo Android.
CharacterEncoding
La codificación de caracteres para utilizar al enviar y recibir texto.
DelimiterByte
El byte delimitador a utilizar cuando se pasa un número negativo para el parámetro NumberOfBytes al llamar ReceiveText, ReceiveSignedBytes o ReceiveUnsignedBytes.
Activado
Di si Bluetooth está activada.
HighByteFirst
Ya sea de 2 y 4 números de bytes deben ser enviados y recibidos con el alto (o más significativo) Byte primero. Consulte la documentación para el dispositivo con el cual su aplicación se comunica para el ajuste apropiado. Esto también se conoce como big endian.
IsConnected
Indica si una conexión Bluetooth se ha hecho.
Asegurar
Ya sea para invocar SSP (Secure Pairing simple), que es compatible con dispositivos con Bluetooth v2.1 o superior. Cuando se trabaja con dispositivos Bluetooth integrados, es posible que este inmueble que se establece en False. Para Android 2.0-2.2, se ignorará este valor de la propiedad.

Eventos

ninguno

Métodos

número BytesAvailableToReceive ()
Devuelve una estimación del número de bytes que se pueden recibir sin bloquear
boolean Connect (dirección del texto)
Conecte el dispositivo Bluetooth con la dirección especificada y el perfil de puerto serie (SPP). Devuelve true si la conexión se ha realizado correctamente. El parámetro de dirección puede contener caracteres adicionales después de la dirección MAC si hay un espacio inmediatamente después de la dirección MAC.Esto significa que usted puede pasar un elemento de la lista devuelta por la propiedad AddressesAndNames sin dividir aparte la dirección y el nombre.
boolean ConnectWithUUID (dirección del texto, uuid texto)
Conecte el dispositivo Bluetooth con la dirección y el UUID especificado. Devuelve true si la conexión se ha realizado correctamente. El parámetro de dirección puede contener caracteres adicionales después de la dirección MAC si hay un espacio inmediatamente después de la dirección MAC. Esto significa que usted puede pasar un elemento de la lista devuelta por la propiedad AddressesAndNames sin dividir aparte la dirección y el nombre.
Disconnect ()
Desconecte el dispositivo Bluetooth conectado.
boolean IsDevicePaired (dirección del texto)
Comprueba si el dispositivo Bluetooth con la dirección especificada está emparejado.
número ReceiveSigned1ByteNumber ()
Recibe un número de 1 byte con signo desde el dispositivo Bluetooth conectado.
número ReceiveSigned2ByteNumber ()
Recibe un número de 2 bytes con signo desde el dispositivo Bluetooth conectado.
número ReceiveSigned4ByteNumber ()
Recibe un número de 4 bytes con signo desde el dispositivo Bluetooth conectado.
Lista ReceiveSignedBytes (NumberOfBytes número)
Recibe múltiples valores de byte firmado desde el dispositivo Bluetooth conectado. Si NumberOfBytes es menor que 0, leer hasta que se reciba un valor de byte delimitador.
ReceiveText texto (NumberOfBytes número)
Recibir mensajes de texto desde el dispositivo Bluetooth conectado. Si NumberOfBytes es menor que 0, leer hasta que se reciba un valor de byte delimitador.
número ReceiveUnsigned1ByteNumber ()
Recibe un número de 1 byte sin signo desde el dispositivo Bluetooth conectado.
número ReceiveUnsigned2ByteNumber ()
Recibe un número de 2 bytes sin signo desde el dispositivo Bluetooth conectado.
número ReceiveUnsigned4ByteNumber ()
Recibe un número de 4 bytes sin signo desde el dispositivo Bluetooth conectado.
Lista ReceiveUnsignedBytes (NumberOfBytes número)
Recibe múltiples valores de byte sin signo desde el dispositivo Bluetooth conectado. Si NumberOfBytes es menor que 0, leer hasta que se reciba un valor de byte delimitador.
Send1ByteNumber (número de texto)
Enviar un número de 1 byte para el dispositivo Bluetooth conectado.
Send2ByteNumber (número de texto)
Enviar un número de 2 bytes al dispositivo Bluetooth conectado.
Send4ByteNumber (número de texto)
Enviar un número de 4 bytes al dispositivo Bluetooth conectado.
SendBytes (lista de la lista)
Enviar una lista de valores de byte con el dispositivo Bluetooth conectado.
SendText (texto texto)
Enviar mensajes de texto al dispositivo Bluetooth conectado.

BluetoothServer

Componente de servidor Bluetooth

Propiedades

Disponible: boolean
Di si Bluetooth está disponible en el dispositivo Android.
CharacterEncoding: texto
La codificación de caracteres para utilizar al enviar y recibir texto.
DelimiterByte: número
El byte delimitador a utilizar cuando se pasa un número negativo para el parámetro NumberOfBytes al llamar ReceiveText, ReceiveSignedBytes o ReceiveUnsignedBytes.
Habilitado: boolean
Di si Bluetooth está activada.
HighByteFirst: boolean
Ya sea de 2 y 4 números de bytes deben ser enviados y recibidos con el alto (o más significativo) Byte primero. Consulte la documentación para el dispositivo con el cual su aplicación se comunica para el ajuste apropiado. Esto también se conoce como big endian.
IsAccepting: boolean
Indica si este componente BluetoothServer está aceptando una conexión entrante.
IsConnected: boolean
Indica si una conexión Bluetooth se ha hecho.
Asegurar
Ya sea para invocar SSP (Secure Pairing simple), que es compatible con dispositivos con Bluetooth v2.1 o superior. Cuando se trabaja con dispositivos Bluetooth integrados, es posible que este inmueble que se establece en False. Para Android 2.0-2.2, se ignorará este valor de la propiedad.

Eventos

ConnectionAccepted ()
Indica que una conexión bluetooth ha sido aceptada.

Métodos

AcceptConnection (serviceName texto)
Aceptar una conexión entrante con el perfil de puerto serie (SPP).
AcceptConnectionWithUUID (serviceName texto, uuid texto)
Aceptar una conexión entrante con un UUID específico.
número BytesAvailableToReceive ()
Devuelve una estimación del número de bytes que se pueden recibir sin bloquear
Disconnect ()
Desconecte el dispositivo Bluetooth conectado.
número ReceiveSigned1ByteNumber ()
Recibe un número de 1 byte con signo desde el dispositivo Bluetooth conectado.
número ReceiveSigned2ByteNumber ()
Recibe un número de 2 bytes con signo desde el dispositivo Bluetooth conectado.
número ReceiveSigned4ByteNumber ()
Recibe un número de 4 bytes con signo desde el dispositivo Bluetooth conectado.
Lista ReceiveSignedBytes (NumberOfBytes número)
Recibe múltiples valores de byte firmado desde el dispositivo Bluetooth conectado. Si NumberOfBytes es menor que 0, leer hasta que se reciba un valor de byte delimitador.
ReceiveText texto (NumberOfBytes número)
Recibir mensajes de texto desde el dispositivo Bluetooth conectado. Si NumberOfBytes es menor que 0, leer hasta que se reciba un valor de byte delimitador.
número ReceiveUnsigned1ByteNumber ()
Recibe un número de 1 byte sin signo desde el dispositivo Bluetooth conectado.
número ReceiveUnsigned2ByteNumber ()
Recibe un número de 2 bytes sin signo desde el dispositivo Bluetooth conectado.
número ReceiveUnsigned4ByteNumber ()
Recibe un número de 4 bytes sin signo desde el dispositivo Bluetooth conectado.
Lista ReceiveUnsignedBytes (NumberOfBytes número)
Recibe múltiples valores de byte sin signo desde el dispositivo Bluetooth conectado. Si NumberOfBytes es menor que 0, leer hasta que se reciba un valor de byte delimitador.
Send1ByteNumber (número de texto)
Enviar un número de 1 byte para el dispositivo Bluetooth conectado.
Send2ByteNumber (número de texto)
Enviar un número de 2 bytes al dispositivo Bluetooth conectado.
Send4ByteNumber (número de texto)
Enviar un número de 4 bytes al dispositivo Bluetooth conectado.
SendBytes (lista de la lista)
Enviar una lista de valores de byte con el dispositivo Bluetooth conectado.
SendText (texto texto)
Enviar mensajes de texto al dispositivo Bluetooth conectado.
StopAccepting ()
Deje de aceptar una conexión entrante.

Notificador

Un notificador es un componente no visible que puede mostrar tipos verious de alertas y puede registrar la información. Utilice un notificador para mostrar los avisos y alertas a los usuarios de su aplicación, así como para registrar la información que puede ayudarle a depurar su aplicación.

Propiedades

ninguno

Eventos

AfterChoosing (selección de texto)
Signaled vez que el usuario ha hecho una elección en respuesta a ShowChooseDialog. El argumento es el texto en el botón que el usuario intervenido.
AfterTextInput (respuesta de texto)
Señalizadas por una vez el usuario ha respondido a ShowTextDialog. El argumento es el texto en el botón que el usuario ha introducido.

Métodos

ShowMessageDialog (mensaje de texto, el título del texto, texto buttonText)
Aparece un aviso que se mantiene hasta que el usuario toca un botón con el texto dado. Los argumentos son el mensaje que se muestra, el título de la convocatoria, y la etiqueta del botón.
ShowChooseDialog (mensaje de texto, el título del texto, button1Text Texto, Texto button2Text, cancelable boolean)
Aparece un aviso que el usuario debe responder a pulsando uno de los dos botones con el texto dado. Los argumentos son el mensaje que se muestra, el título de la convocatoria, y las etiquetas de los botones izquierdo y derecho, respectivamente. El evento AfterChoosing se señala después el usuario toca una de las teclas.
ShowTextDialog (mensaje de texto, el título del texto, cancelable boolean)
Aparece un aviso que el usuario debe responder a mediante la introducción de un texto. Los argumentos son el mensaje que se muestra y el título de la convocatoria. El evento AfterTextInput se señaliza después de que el usuario entra en el texto.
ShowAlert (mensaje de texto)
Aparece un aviso de temporal, que desaparece después de unos segundos. El argumento es el texto del anuncio.
LogError (mensaje de texto)
Loginfo (mensaje de texto)
LogWarning (mensaje de texto)
Estos métodos son para uso en la depuración. Ellos escriben mensajes a los diversos registros en el dispositivo Android. Los registros se pueden leer con el uso de herramientas de depuración para Android, como el Puente de depuración Android (ADB).

SpeechRecognizer

Utilizar un componente de reconocimiento de voz para escuchar el discurso de usuario y convertir el sonido hablado en texto utilizando la función de reconocimiento de voz de Android.

Propiedades

Resultado
El último texto producido por el reconocedor.

Eventos

AfterGettingText (resultado de texto)
Signaled después de que el reconocedor ha producido texto. El argumento es el resultado del texto que fue producido.
BeforeGettingText ()
Marcó justo antes se llama el reconocedor.

Métodos

GetText ()
Pregunta al usuario a hablar, y convierte la voz en texto. Las señales de evento AfterGettingText cuando el resultado está disponible.

TextToSpeech

Utilizar un componente de conversión de texto a voz para que el texto hable dispositivo audible.

Para que este componente funcione, el dispositivo debe tener el TTS Extended aplicación Servicio por el Proyecto Ojos libres instalado. Puede descargarlo desde http://code.google.com/p/eyes-free/downloads/list(enlace es externo)

El componente de conversión de texto a voz tiene propiedades que puede establecer para guiar la pronunciación del texto que se habla. Estas propiedades utilizan códigos de tres letras para especificar el idioma y el país donde se habla esa lengua. Por ejemplo, puede especificar Británico o Inglés EE.UU.. Para Inglés británico, el código del idioma es eng y el código de país es GBR , mientras que para EE.UU. Inglés, el código del idioma es eng y el código de país esEE.UU. . La lista completa se encuentra a continuación.

Propiedades

País
El código de país para la producción del habla.
Idioma
El código de idioma para la producción del habla.
Resultado

Eventos

AfterSpeaking (resultado de texto)
Signaled después se habla el texto. El argumento es el resultado del texto que fue producido.
BeforeSpeaking ()
Marcó justo antes se habla el texto.

Métodos

Speak (mensaje de texto)
Habla el texto dado.

Estos son los códigos de idioma y país que puede utilizar. Los códigos se organizaron por primera vez por el lenguaje; entonces, en cada unidad lingüística es una lista de posibles códigos de país:

  • ces (Rep.Chec)
    • CZE
  • spa (Español)
    • ESP
    • EE.UU.
  • deu (alemán)
    • AUT
    • BEL
    • CHE
    • DEU
    • LIE
    • LUX
  • fra (francés)
    • BEL
    • CAN
    • CHE
    • FRA
    • LUX
  • nld (holandés)
    • BEL
    • NLD
  • ita (italiano)
    • CHE
    • ITA
  • pol (polaco)
    • POL
  • eng (Inglés)
    • AUS
    • BEL
    • BWA
    • BLZ
    • CAN
    • GBR
    • HKG
    • IRL
    • IND
    • JAM
    • MHL
    • MLT
    • NAM
    • NZL
    • PHL
    • PAK
    • SGP
    • TTO
    • EE.UU.
    • VIR
    • ZAF
    • ZWE

TinyWebDB

Componente no visible que se comunica con un servicio Web para almacenar y recuperar información.

Consulte Creación de un servicio TinyWebDB personalizada .

Propiedades

ServiceURL

Eventos

GotValue (texto tagFromWebDB, cualquier valueFromWebDB)
Indica que una petición del servidor GetValue ha tenido éxito.
ValueStored ()
Evento que indica que una solicitud del servidor StoreValue ha tenido éxito.
WebServiceError (mensaje de texto)
Indica que la comunicación con el servicio Web de un error es

Métodos

GetValue (etiqueta de texto)
GetValue pide el servicio web para obtener el valor almacenado en la etiqueta dada. Corresponde al servicio web lo que se devuelve si no hay un valor almacenado en la etiqueta. Este componente sólo acepta lo que sea devuelto.
StoreValue (etiqueta de texto, cualquier valueToStore)
Pide al servicio Web para almacenar el valor dado bajo la etiqueta dada

Web

Componente no visible que proporciona funciones para HTTP GET, POST, PUT y DELETE peticiones.

Propiedades

AllowCookies
Si las cookies de respuesta deben ser guardados y utilizados en las solicitudes posteriores. Las cookies sólo se admiten en la versión Android 2.3 o superior.
RequestHeaders
Las cabeceras de petición, como una lista de sublistas de dos elementos. El primer elemento de cada lista secundaria representa el nombre de cabecera de las peticiones. El segundo elemento de cada lista secundaria representa los valores de los campos de encabezado de la solicitud, ya sea un único valor o una lista que contiene varios valores.
ResponseFileName
El nombre del archivo donde se guardará la respuesta. Si SaveResponse es verdadera y ResponseFileName está vacío, entonces se generará un nuevo nombre de archivo.
SaveResponse
Ya sea que la respuesta debe ser guardado en un archivo.
Url
La dirección URL de la solicitud Web.

Eventos

GotFile (url texto, número responseCode, responseType texto, nombre de archivo de texto)
Evento que indica que una solicitud ha terminado.
GotText (url texto, número responseCode, responseType texto, responseContent texto)
Evento que indica que una solicitud ha terminado.

Métodos

texto BuildRequestData (lista de la lista)
Convierte una lista de sublistas de dos elementos, que representan pares nombre-valor, a una cadena con formato como application /-form-urlencoded x-www tipo de medio, adecuado para pasar a PostText.
ClearCookies ()
Borra todas las cookies de este componente Web.
Eliminar ()
Realiza una solicitud DELETE HTTP utilizando la propiedad Url y recupera la respuesta. Si la propiedad SaveResponse es cierto, la respuesta se guardará en un archivo y el evento GotFile se disparará. La propiedad ResponseFileName se puede utilizar para especificar el nombre del archivo. Si la propiedad SaveResponse es falsa, el evento GotText se disparará.
Get ()
Realiza una solicitud GET HTTP utilizando la propiedad Url y recupera la respuesta.
Si la propiedad SaveResponse es cierto, la respuesta se guardará en un archivo y el evento GotFile se disparará. La propiedad ResponseFileName se puede utilizar para especificar el nombre del archivo.
Si la propiedad SaveResponse es falsa, el evento GotText se disparará.
HtmlTextDecode texto (htmlText texto)
Decodifica el valor de texto HTML dado. Entidades HTML carácter tales como &, <,>, “, y” se cambian a &, ‘, y “. Entidades como hhhh, y nnnn se cambian a los caracteres apropiados.
JsonTextDecode texto (texto jsonText)
Decodifica el valor de texto JSON dado. Si el texto JSON dada está entre comillas, se eliminarán las comillas.
POSTFILE (trayecto de texto)
Realiza una petición POST HTTP mediante la propiedad Url y los datos desde el archivo especificado.
Si la propiedad SaveResponse es cierto, la respuesta se guardará en un archivo y el evento GotFile se disparará. La propiedad ResponseFileName se puede utilizar para especificar el nombre del archivo.
Si la propiedad SaveResponse es falsa, el evento GotText se disparará.
PostText (texto texto)
Realiza una petición POST HTTP mediante la propiedad Url y el texto especificado.
Los caracteres del texto se codifican utilizando codificación UTF-8.
Si la propiedad SaveResponse es cierto, la respuesta se guardará en un archivo y el evento GotFile se disparará. La propiedad responseFileName se puede utilizar para especificar el nombre del archivo.
Si la propiedad SaveResponse es falsa, el evento GotText se disparará.
PostTextWithEncoding (texto texto, codificación de texto)
Realiza una petición POST HTTP mediante la propiedad Url y el texto especificado.
Los caracteres del texto se codifican utilizando la codificación determinada.
Si la propiedad SaveResponse es cierto, la respuesta se guardará en un archivo y el evento GotFile se disparará. La propiedad ResponseFileName se puede utilizar para especificar el nombre del archivo.
Si la propiedad SaveResponse es falsa, el evento GotText se disparará.
PutFile (trayecto de texto)
Realiza una solicitud HTTP PUT mediante la propiedad Url y los datos desde el archivo especificado.
Si la propiedad SaveResponse es cierto, la respuesta se guardará en un archivo y el evento GotFile se disparará. La propiedad ResponseFileName se puede utilizar para especificar el nombre del archivo.
Si la propiedad SaveResponse es falsa, el evento GotText se disparará.
PutText (texto texto)
Realiza una solicitud HTTP PUT mediante la propiedad Url y el texto especificado.
Los caracteres del texto se codifican utilizando codificación UTF-8.
Si la propiedad SaveResponse es cierto, la respuesta se guardará en un archivo y el evento GotFile se disparará. La propiedad responseFileName se puede utilizar para especificar el nombre del archivo.
Si la propiedad SaveResponse es falsa, el evento GotText se disparará.
PutTextWithEncoding (texto texto, codificación de texto)
Realiza una solicitud HTTP PUT mediante la propiedad Url y el texto especificado.
Los caracteres del texto se codifican utilizando la codificación determinada.
Si la propiedad SaveResponse es cierto, la respuesta se guardará en un archivo y el evento GotFile se disparará. La propiedad ResponseFileName se puede utilizar para especificar el nombre del archivo.
Si la propiedad SaveResponse es falsa, el evento GotText se disparará.
UriEncode texto (texto de texto)
Codifica el valor de texto dada de modo que se puede utilizar en una dirección URL.
Fuente  aqui
Anuncios

Nuevas funciones APP Inventor


En este post , vamos a tratar  nuevas funciones novedosas    incorporadas en  Mit App Inventor 2, como son la funcion File que puede utilizar para almacenar y recuperar archivos,  FusiontablesControl que  permite almacenar, compartir, consultar y visualizar tablas de datos, TiniDb   que es un  componente no visible que almacena los datos de una aplicación y por ultimo  TiniWebDb ,componente no visible que se comunica con un servicio Web para almacenar y recuperar información del que ya hemos hablado aqui

File

Componente no visible para almacenar y recuperar archivos. Utilice este componente para escribir o leer archivos de su dispositivo. El comportamiento por defecto es para escribir archivos en el directorio de datos privada asociada a su aplicación. El Companion es especial entubado para escribir archivos en / sdcard / AppInventor / datos para facilitar la depuración. Si la ruta del archivo comienza con una barra (/), a continuación, se crea el archivo relativo a / sdcard.

Por ejemplo se escribe un fichero en / miArchivo.txt escribirá el archivo en / sdcard / miArchivo.txt.

Propiedades

ninguno

Eventos

GotText (texto texto)
Evento que indica que el contenido del archivo se han leído.

Métodos

AppendToFile (texto texto, nombre de archivo de texto)
Anexa texto al final de un almacenamiento de archivos, crear el archivo si no existe. Véase el texto de ayuda en virtud de SaveFile para obtener información acerca de dónde se escriben los archivos.
Eliminar (nombre de archivo de texto)
Elimina un archivo de almacenamiento. Prefijar el nombre de archivo con / para borrar un archivo específico en la tarjeta SD, por ejemplo / miArchivo.txt. se eliminará el archivo / sdcard / miArchivo.txt. Si el archivo no comienza por /, entonces se eliminará el archivo que se encuentra en los programas de almacenamiento privado. Inicio del expediente de / / es un error porque los archivos de activos no se pueden borrar.
ReadFrom (fileName texto)
Lee texto de un archivo en el almacenamiento. Prefijar el nombre de archivo con / para leer desde un archivo específico en la tarjeta SD. por ejemplo / miArchivo.txt leerá el archivo / sdcard / miArchivo.txt. Para leer los bienes envasados ​​con una aplicación (también funciona para el Companion) iniciar el nombre de archivo con / / (dos barras). Si un nombre de archivo no comienza con una barra, que se leerá de la aplicaciones de almacenamiento privado (para las aplicaciones empaquetadas) y desde / sdcard / AppInventor / datos para el Companion.
SaveFile (texto texto, nombre de archivo de texto)
Guarda el texto en un archivo. Si el nombre del archivo comienza con una barra (/) el archivo se escribe en la sdcard. Por ejemplo escribiendo a / miArchivo.txt escribirá el archivo en / sdcard / miArchivo.txt. Si el nombre de archivo no comienza con una barra, que se escribirá en el directorio de datos privada de programas en los que no se podrá acceder a otros programas en el teléfono. Hay una excepción especial para el compañero de AI en las que estos archivos se escriben en / sdcard / AppInventor / datos para facilitar la depuración. Tenga en cuenta que este bloque se sobrescribirá un archivo si ya existe. Si desea agregar contenido a un archivo, utilice el bloque de datos anexados.

FusiontablesControl

 

Google Fusion Tables le permite almacenar, compartir, consultar y visualizar tablas de datos; este componente que permite la consulta, crear y modificar estas tablas, utilizando la API V1.0 Fusion Tables .

Para utilizar el componente, definir una consulta, llame SendQuery para ejecutar la consulta y GotResult le entregará el resultado cuando esté listo.

Tenga en cuenta que usted no tiene que preocuparse acerca de la consulta codificación UTF-. Pero usted tiene que asegurarse de que la consulta sigue la sintaxis que se describe en el manual de referencia , lo que significa que cosas como la capitalización de los nombres de los asuntos columnas, y que las comillas simples deben ser utilizados alrededor de los nombres de columna si hay espacios en las mismas.

Los resultados de la consulta generalmente se devuelven en valores separados por comas (CSV) , y se pueden convertir a la lista de formato usando la “lista de la tabla csv” o “lista de csv fila” bloques.

Uso del componente FusiontablesControl

Obtener una clave de API

Para utilizar el componente FusiontablesControl que necesita para adquirir una clave Google Aplicaciones de interfaz de programación (API), una Google API Key . Para obtener una clave de API, siga estas instrucciones:

  1. Vaya a la consola de las API de Google y acceder si es necesario.
  2. Seleccione el Servicios de elemento en el menú de la izquierda.
  3. Elija el Fusion Tables servicio de la lista proporcionada y vuelva a encenderlo.
  4. Volver al menú principal y seleccionar el acceso API artículo.

Su clave de API estará en la parte inferior de dicho panel en la sección llamada “Acceso simple API”. Usted proporcionará la clave como el valor de la ApiKeypropiedad en todas sus aplicaciones Fusiontables.

Creación de Fusion Tables

Es probable que desee crear sus propias tablas dinámicas a experimentar con lo que usted está desarrollando sus aplicaciones. Esto es tan fácil como crear un documento de Google, si usted está familiarizado con el proceso. Estos son los pasos:

  1. En la web, acceder a su cuenta de Gmail o cualquier otro servicio de Google (por ejemplo, Drive, YouTube).
  2. Seleccione la información> Aún más menú y desplácese hasta la parte inferior de la página de los servicios de Google, donde se encuentra el Fusion Tables servicio.
  3. Es posible que desee ver algunos de los ejemplos y trabajar a través de un tutorial para aprender lo básico.
  4. Haga clic en el Ver mis cuadros botón (arriba a la derecha de la página). Esto le llevará a su propia página.
  5. Usted debe ver una lista de sus propios cuadros o tablas que se han compartido con usted (posiblemente ninguno).
  6. Utilice el Crear botón para crear una nueva tabla. Dale un poco de nombres de columna. Y guardarlo.
  7. Haga clic en el Compartir botón (arriba a la derecha) para modificar los permisos de la tabla.

Creación de una aplicación Fusiontables

Al arrastrar el FusiontablesControl componente en el Diseñador, no se olvide de establecer su ApiKey propiedad, que está inicialmente en blanco. Le recomendamos que copie esta información de su consola API de Google y péguelo en el campo de la propiedad.

Propiedades

ApiKey : texto (sólo lectura)
Copie y pegue la clave de API de Google en esta propiedad.Para el desarrollo de aplicaciones que utilizan Fusiontables, debe obtener una clave de API de Google. Para obtener una clave, siga estas instrucciones.

  1. Vaya a la consola de las API de Google y acceder si es necesario.
  2. Seleccione el Servicios de elemento en el menú de la izquierda.
  3. Elija el Fusiontables servicio de la lista proporcionada y vuelva a encenderlo.
  4. Volver al menú principal y seleccionar el acceso API artículo.

Su clave de API estará cerca de la parte inferior de dicho panel en la sección llamada “Acceso simple API”.

Query : texto (sólo lectura)
La consulta para enviar a la API de Google Fusion Tables.Para formatos de consulta legales y ejemplos, consulte la Fusión Tablas API V1.0 manual de referencia.Tenga en cuenta que usted no tiene que preocuparse por que codifica para la consulta, pero usted tiene que asegurarse de que se sigue la sintaxis descrita en el manual de referencia, lo que significa que cosas como la capitalización de los nombres de los asuntos columnas, y que las comillas simples deben ser utilizados alrededor de los nombres de columna que contienen.

Eventos

GotResult (resultado de texto)
Indica que la consulta Fusion Tables haya finalizado el proceso, con un resultado. El resultado de la consulta en general, se devuelve en formato CSV, y se puede convertir a la lista de formato usando la “lista de la tabla csv” o “lista de csv fila” bloques.

Métodos

SendQuery ()
Enviar la consulta al servidor de Fusion Tables.
ForgetLogin ()
Descarta nombre de cuenta del usuario, lo que obligó a volver a autenticarse al acceder a una tabla Fusion.

TinyDB

TinyDB es un componente no visible que almacena los datos de una aplicación.

Aplicaciones creadas con App Inventor se inicializan cada vez que se ejecuta: si la aplicación establece el valor de una variable y el usuario sale de la aplicación, el valor de esa variable no será recordado la próxima vez que la aplicación se ejecute. Por el contrario, TinyDB es un persistente almacén de datos de la aplicación, es decir, los datos almacenados allí estarán disponibles cada vez que la aplicación se ejecute. Un ejemplo podría ser un juego que guarda la puntuación más alta y recupera cada vez que el juego se juega.

Los elementos de datos son cadenas almacenadas en las etiquetas . Para guardar un elemento de datos, se especifica la etiqueta debe ser almacenado bajo.Posteriormente, puede recuperar los datos que se almacena en una etiqueta determinada.

Sólo hay un almacén de datos por aplicación. Incluso si usted tiene múltiples componentes TinyDB, van a utilizar el mismo almacén de datos. Para conseguir el efecto de tiendas independientes, utilizar diferentes claves. Además, cada aplicación tiene su propio almacén de datos. No se puede utilizar TinyDB para pasar los datos entre dos aplicaciones diferentes en el teléfono, aunque usted puede utilizar para TinyDB comparte datos entre las diferentes pantallas de una aplicación multi-pantalla.

Cuando está desarrollando aplicaciones utilizando el Companion AI, todas las aplicaciones que utilizan ese compañero compartirán la misma TinyDB. Ese intercambio desaparecerá una vez que las aplicaciones se empaquetan. Pero, durante el desarrollo, se debe tener cuidado para despejar el TinyDB cada vez que comience a trabajar en una nueva aplicación.

 

Propiedades

ninguno

Eventos

ninguno

Métodos

ClearAll ()
Borrar toda la memoria de datos
ClearTag (etiqueta de texto)
Borre la entrada con la etiqueta dada
cualquier GetTags ()
Devuelve una lista de todas las etiquetas en el almacén de datos
cualquier GetValue (etiqueta de texto, cualquier valueIfTagNotThere)
Recuperar el valor almacenado en la etiqueta dada. Si no hay tal etiqueta, a continuación, volver valueIfTagNotThere.
StoreValue (etiqueta de texto, cualquier valueToStore)
Almacenar el valor dado bajo la etiqueta dada. El almacenamiento continúa en el teléfono cuando se reinicia la aplicación.

TinyWebDB

Componente no visible que se comunica con un servicio Web para almacenar y recuperar información.

Consulte Creación de un servicio TinyWebDB personalizada.

Propiedades

ServiceURL

Eventos

GotValue (texto tagFromWebDB, cualquier valueFromWebDB)
Indica que una petición del servidor GetValue ha tenido éxito.
ValueStored ()
Evento que indica que una solicitud del servidor StoreValue ha tenido éxito.
WebServiceError (mensaje de texto)
Indica que la comunicación con el servicio Web de un error es

Métodos

GetValue (etiqueta de texto)
GetValue pide el servicio web para obtener el valor almacenado en la etiqueta dada. Corresponde al servicio web lo que se devuelve si no hay un valor almacenado en la etiqueta. Este componente sólo acepta lo que sea devuelto.
StoreValue (etiqueta de texto, cualquier valueToStore)
Pide al servicio Web para almacenar el valor dado bajo la etiqueta dada
Fuente aqui

Construir Aplicaciones Android que interactuen con la web


Crear una API

TinyWebDB es un componente App Inventor que le permite acceder a la web desde una aplicación para Android. Usted puede utilizar TinyWebDB para acceder a una fuente de datos (API) o para almacenar los datos de la aplicación de forma persistente en una base de datos web. Estas notas le indican cómo hacer lo primero-crear una-Inventor compatible App API que devuelve los datos a una aplicación App Inventor. A menudo, el servicio se escribe sólo servirá como un proxy y llamara a algún otro servicio de datos existente (por ejemplo, Twitter, Amazon, Yahoo Finance).

Aunque puede crear un Inventor-compatible-App API en muchos lenguajes y entornos, estas instrucciones se describe una API escrita en Python y utilizar el servicio de cloud computing libre App Engine de Google.

Para seguir estas instrucciones, usted tendrá que tener algunos conocimientos de programación y estar familiarizado con Python y servicios web (API).

Sneak Peak 

Vas a descargar un código de ejemplo a continuación. Su  código HTML y Python se puede implementar en la nube de Google usando App Engine. Sin embargo, para mostrar lo fácil que es crear una API App Inventor-conforme, vamos a echar un vistazo al código que usted realmente tiene que mirar y cambiar. La parte adaptable está en el archivo  main.py  y específicamente en la función GetValueHandler.get_value:

def get_value(self, tag):

value = “hola” + tag 
value = “\” “+ valor +” \ “”

si self.request.get (‘fmt’) == “html”:

WriteToWeb (auto, etiqueta, valor)

más:

WriteToPhone (auto, etiqueta, valor)

Para crear su propio servicio, usted simplemente cambie las líneas enfatizadas con cualquier código que te gustaría. Tal vez llamar a otro servicio web y retransmitir los datos a la aplicación. Tal vez usted va a realizar algunos cálculos. Usted puede hacer cualquier cosa, con la única limitación de que establece el “valor” variable a una cadena o una lista. Los datos que usted deposita en “valor” se envía a la aplicación que solicita sobre una solicitud TinyWebDB.GetValue.

Tenga en cuenta que la línea críptica debajo de la que va a cambiar:

value = “\” “+ valor +” \ “”

simplemente pone entre comillas el valor. Esto es necesario cuando se devuelva una cadena como valor y que la cadena cuenta con más de una palabra. Si devuelve una lista, que no es necesario añadir comillas, aunque puede que tenga que añadir alrededor de cada cadena en la lista.

App Inventor Protocolo TinyWebDB

TinyWebDB proporciona dos funciones clave: StoreValue (etiqueta, valor) y GetValue (tag) que permiten una aplicación para almacenar y recuperar los pares de etiquetas de valor. Para responder a la solicitud de la aplicación, una-Inventor compatible App servicio debe manejar peticiones POST como se define a continuación:

TinyWebDB Cliente Call Solicitud API
StoreValue (etiqueta, valor) store_value (etiqueta, valor)
GetValue (tag) obtiene_valor (tag)

Si la API no está proporcionando un almacenamiento de base de datos, y que acaban de volver de datos, basta con responder a get_Value (etiqueta) las solicitudes, como en el pico del chivato arriba.

Hola Tag ejemplo de la API

Puede descargar el API Tag Hola aquí: 

Este código de ejemplo es una versión básica de un servicio Web de App-Inventor-Compliant. Responde a get_Value (etiqueta) peticiones con “tag hola”. La muestra:

  • Proporciona tanto una página web y la interfaz API. Puede probar el servicio con la interfaz de la página web. Tu App Inventor App hablará con la interfaz API.
  • Implementa sólo la operación GetValue, no el StoreValue. No debe llamar StoreValue de su aplicación, si usted está utilizando este servicio.

Cuando se descarga la muestra, podrás ver que tiene los siguientes archivos:

  • main.py – El código del controlador de Python, esta es la carne de la API.
  • index.html – La plantilla de la página web para la interfaz web de la API.
  • archivo config App Engine – app.yaml
Una vez que haya agregado el código personalizado, puede probar y desplegar el servicio siguiendo estas instrucciones:
  • Si no lo tienes, descárgalo App Engine para Python enhttp://code.google.com/appengine/ . Después de instalarlo, ejecute el GoogleAppEngineLauncher haciendo clic en su icono.
  • En el GoogleAppEngineLauncher, seleccione Archivo | Agregar aplicación existente. Vaya a establecer la ruta a la carpeta con tus code.Then haga clic en el botón Ejecutar. Esto lanzará un servicio web de prueba que se ejecuta en el equipo local.
  • Puede probar el servicio abriendo un navegador y entrar en “localhost: 8080” como la dirección URL. Verá la interfaz de la página web para su servicio web. El objetivo final de este servicio es para comunicarse con una aplicación móvil creada con App Inventor. Pero el servicio proporciona una interfaz de página Web para el servicio para ayudar a los programadores con la depuración. Puede invocar las operaciones get y tiendas a mano, ver las entradas existentes, así como eliminar entradas individuales
  • Su aplicación no está aún en la web, y por lo tanto aún no puede acceder a una aplicación App Inventor. Para llegar allí, tienes que subirlo a los servidores de Google App Engine.
  • En el GoogleAppEngineLauncher, seleccione Panel. Ingresa tu información de cuenta de Google y usted será llevado a un panel de control de App Engine.
  • Elija Crear una aplicación. Tendrá que especificar una aplicación identificador único global. Recuerde que el identificador de aplicación, ya que lo necesitará más adelante. Proporcione un nombre a tu aplicación y haga clic en Crear solicitud a presentar. Si el identificador es único, ahora tiene una nueva aplicación, vacía en los servidores de Google.
  • Abra un editor de texto del equipo local y abrir la app.yaml archivo dentro de la carpeta del proyecto. Modifique la primera línea para que la aplicación coincide con el identificador de la aplicación se establece en Google.
  • En GoogleAppEngineLauncher, seleccione Desplegar y siga los pasos para implementar su aplicación.
  • Prueba para ver si su aplicación se está ejecutando en la web. En un explorador, introduzca myapp.appspot.com, sólo sustituir el identificador de la aplicación de “frontend”. La aplicación debe ser la misma que cuando se ejecutó en el servidor de prueba local. Sólo que ahora, está en la web y se puede acceder a él desde su App Inventor para aplicación Android.

Aplicaciones App Inventor Cliente

Una vez que usted tiene una “-App Inventor-compliant” servicio web, puede crear aplicaciones Inventor de la aplicación que accedan al mismo. Para la muestra que acaba de crear, haga lo siguiente:

  • Arrastre en un componente TinyWebDB en el Diseñador de componentes.
  • Modifique la propiedad ServiceURL del predeterminado (http://appinvtinywebdb.appspot.com/ ) a la URL de su servicio.
  • En el editor de bloques, llame TinyWebDB.getValue con una adecuada llave de su servicio.

Así es como los bloques buscan una llamada a la API de la muestra:

La aplicación recibe la entrada del usuario desde TagTextBox y lo envía como la etiqueta en la llamada GetValue del TinyWebDB. Esto desencadena una solicitud obtiene_valor API. El API devuelve el valor (hola: tag) en el teléfono. Cuando llegan los datos, el evento TinyWebDB.GotValue se dispara y la aplicación sólo muestra el valor en el valueLabel.

 

Fuente   aqui

Crear una base de datos Web (Python 2.7)


Estas instrucciones son para la creación de una base de datos utilizando TinyWebDB Python2.7 y Google App Engine( este último el servicio PaaS de Google) .
Dado que  Python 2.5 está obsoleto en App Engine, estas instrucciones  que se basan en Python 2.7  y  el código de ejemplo son la mejor manera de empezar
TinyWebDB es un componente de App Inventor que le permite acceder a la web desde una aplicación para Android. Usted puede utilizar TinyWebDB para acceder a una fuente de datos (API) o para almacenar los datos de la aplicación de forma persistente en una base de datos web.
Estas notas le indican cómo hacer el último creado una base de datos web, y ponerlo en la nube utilizando el servicio App Engine gratuito de Google.
Con el código de ejemplo proporcionado aquí, usted puede configurar una base de datos web que se aloje  en los servidores de Google en cuestión de minutos, y usted no necesita ser un programador para hacerlo.
Tenga en cuenta que la aplicación App  Inventor también proporciona un componente TinyDB accediendo a datos directamente en el teléfono siendo fácil de usar. TinyWebDB sólo es necesario si los datos necesitan ser compartidos entre los teléfonos y aplicaciones (por ejemplo, aplicaciones sociales, juegos multi-jugador).
Por defecto, los TinyWebDB almacena componentes de datos en un servicio de prueba proporcionado por la aplicación Inventor, http://appinvtinywebdb.appspot.com/ . Este servicio es útil para las pruebas, pero es compartido por todos los usuarios de App Inventor, y tiene un límite de 1.000 entradas. Si usted utiliza, sus datos serán sobrescritos con el tiempo.
Para un ambiente realo, tendrá que crear un servicio web personalizado que no se comparta con otras aplicaciones y programadores de App Inventor. Usted no tiene que ser un programador para hacerlo, sólo tiene que seguir las instrucciones a continuación y usted tendrá su propio servicio en cuestión de minutos.

Para crear su propio servicio Web, siga estas instrucciones:

  • Descargue App Engine para Python en http://code.google.com/appengine/ .Asegúrese que descargue el SDK de App Engine para Python. Después de instalarlo, ejecute el GoogleAppEngineLauncher haciendo clic en su icono.
  • Descargue esta muestra de código de base de datos web . Se trata de un archivo zip que contiene el código fuente de su servicio de base de datos web a medida
  • Descomprimir el archivo zip descargado. Se creará una carpeta con el nombre appinventordb. Usted puede cambiar el nombre si lo desea.
  • En el GoogleAppEngineLauncher, seleccione Archivo | Agregar aplicación existente. Vaya a establecer la ruta a la carpeta appinventordb simplemente que  ha descomprimido. Luego haga clic en el botón Ejecutar. Esto lanzará un servicio web de prueba que se ejecuta en el equipo local.
  • Este código está configurado para funcionar con App Engine usando Python 2.7, así que tendrá que tener instalado  Python 2.7 en el equipo y asegúrarese de que App Engine está configurado para usarlo (en App Engine Lanzador, seleccione Preferencias y luego poner en el camino la ruta hacia Python2.7)
  • Puede probar el servicio abriendo un navegador e  ingresando  “localhost: 8080” como la dirección URL (el número de puerto puede ser algo diferente de 8080, comprobar los registros). Verá la interfaz de la página web para su servicio web.El objetivo final de este servicio es  comunicarse con una aplicación móvil creada con App Inventor. Pero el servicio proporciona una interfaz de página Web para el servicio para ayudar a los programadores con la depuración. Puede invocar las operaciones get y post a mano, ver las entradas existentes, así como eliminar entradas individuales
  • Su aplicación no está aún en la web, y por lo tanto aún no puede acceder a una aplicación App Inventor. Para llegar allí, tiene que subirlo a los servidores de Google App Engine.
  • En  GoogleAppEngineLauncher, seleccione Panel. Ingrese su información de cuenta de Google y usted será llevado a un panel de control de App Engine.
  • Elija Crear una aplicación. Tendrá que especificar  identificador único global para su aplicacion. Recuerde que el identificador de aplicación, ya que lo necesitará más adelante. Proporcione un nombre a su aplicación y haga clic en Crear solicitud a presentar. Si el identificador es único, ahora tendra una nueva aplicación, vacía en los servidores de Google.
  • Abra un editor de texto del equipo local y abra el archivo  app.yaml dentro de la carpeta appinventordb qeu ha descomprimido. Modifique la primera línea para que la aplicación coincide con el identificador de la aplicación se establece en Google.
  • En GoogleAppEngineLauncher, seleccione Desplegar y siga los pasos para implementar su aplicación.
  • Prueba para ver si su aplicación se está ejecutando en la web. En un explorador, introduzca myapp.appspot.com,  sustituyendo  logicamente  el identificador de la aplicación de “frontend”. La aplicación debe ser la misma que cuando se ejecutó en el servidor de prueba local.,sólo que ahora, está en la web y se puede acceder a él desde su App Inventor para aplicación Android.

Aplicaciones App Inventor Cliente

Una vez que usted tiene una “Inventor compatible App” base de datos web, puede crear aplicaciones Inventor de la aplicación que accedan al mismo. Para la muestra que acaba de crear, haga lo siguiente:

  • Arrastre en un componente TinyWebDB en el Diseñador de componentes.
  • Modifique la propiedad ServiceURL del predeterminadohttp://appinvtinywebdb.appspot.com/ a la URL de su servicio.
  • Cualquier operación StoreValue (bloques) almacenará los datos a su servicio, y cualquier operación GetValue recuperará de su servicio.

Aquí hay algunos bloques que almacenan y recuperan datos:

Fuente aqui