Python – Android – Ejercicios Presentación
Indice ● Ejemplos básicos ● Ejemplos avanzados ● Ejercicio
Ejemplos: Hola Mundo import android droid = android.Android() droid.makeToast('Hello, Android!') print 'Hello world!'
Ejemplos: Entrada de datos import android droid = android.Android() texto = droid.dialogGetInput("Escriba su nombre","Nombre:") droid.makeToast('Hola %s' %texto[1])
Ejemplos: Entrada de datos
Ejemplos: Notificación import android droid = android.Android() droid.notify('Prueba', 'Hola Mundo 3!')
Ejemplos: Notificación
Ejemplos: Botones #!/usr/bin/env python import android droid = android.Android() title = 'Alerta' message = ('Esta alerta tiene 3 botones y' 'se espera que presione uno') droid.dialogCreateAlert(title, message) droid.dialogSetPositiveButtonText('Si') droid.dialogSetNegativeButtonText('No') droid.dialogSetNeutralButtonText('Cancelar') droid.dialogShow() response = droid.dialogGetResponse() droid.makeToast('El resultado de la ejecucion del boton es: %s' %response[1]['which'])
Ejemplos: Botones
Ejemplos: Menús import android droid=android.Android() droid.addOptionsMenuItem("Si","si",None,"star_on") droid.addOptionsMenuItem("No","no","No","star_off") droid.addOptionsMenuItem("Salir","off",None,"ic_menu_revert") print "Presiona el menu para ver opciones extra.." print "En 10 segundos se saldra si no hace nada" while True: # Wait for events from the menu. response=droid.eventWait(10000).result if response==None: break print response if response["name"]=="off": break print "Hecho."
Ejemplos: Enviar import android droid = android.Android() asunto = "Prueba de envio de correo desde Android con un script de python" para = cuerpo_correo = "Esta es una prueba de envio de correo\n El tiempo en el reloj es: %s\n \n Curso de Python\n" %time.ctime() #Se llama a la funcion send con los datos necesarios. #Esto llama a la aplicacion de envio de correo de forma grafica con la #informacion que se pasa en la funcion. droid.send (para,asunto,cuerpo_correo) #Se finaliza la instancia de la clase. droid.exit()
Ejemplos: Enviar SMS #Importando el módulo android y el módulo time import android,time #Creando la instancia droid del objeto Android droid = android.Android() #Asignando el número de teléfono y mensaje telefono =" " mensaje = "Esta es una prueba de envio de sms a la hora %s" %time.ctime() #Enviar mensaje a la pantalla de android con la info del número y mensaje droid.makeToast("enviando mensaje a %s, con el siguiente contenido: %s" %(telefono,mensaje)) #Enviando el mensaje de texto droid.smsSend(telefono,mensaje)
Ejemplos: Llamar #Importando el módulo android y el módulo time import android #Creando la instancia droid del objeto Android droid = android.Android() #Asignando el número de teléfono telefono =" " #Llamando al numero de telefono dado droid.phoneCallNumber(telefono)
Ejemplos: Propone llamar #Importando el módulo android y el módulo time import android #Creando la instancia droid del objeto Android droid = android.Android() #Asignando el número de teléfono y mensaje telefono =" " #Propone llamar al numero de telefono dado droid.phoneDialNumber(telefono)
Ejemplos: Geolocalización import android from time import sleep #Se crea la instancia de la clase Android droid = android.Android() #Se inicia la localizacion droid.startLocating() #Se espera 15 segunfos sleep(15) #Se presenta en la consola la información de la localización #Se maneja la información de un diccionario. print "Altitud: ",droid.readLocation().result["network"]["altitude"] print "Proveedor: ",droid.readLocation().result["network"]["provider"] print "Latitud: ",droid.readLocation().result["network"]["latitude"] print "Longitud: ",droid.readLocation().result["network"]["longitude"] print "Tiempo: ",droid.readLocation().result["network"]["time"] print "Velocidad: ",droid.readLocation().result["network"]["speed"] print "Precisión: ",droid.readLocation().result["network"]["accuracy"] #Se detiene la localización droid.stopLocating()
Ejemplos: Chat por bluetooth I import android import time droid = android.Android() droid.toggleBluetoothState(True) droid.dialogCreateAlert('¿Eres el servidoe?') droid.dialogSetPositiveButtonText('Si') droid.dialogSetNegativeButtonText('No') droid.dialogShow() result = droid.dialogGetResponse() is_server = result.result['which'] == 'positive' if is_server: droid.bluetoothMakeDiscoverable() droid.bluetoothAccept() else: droid.bluetoothConnect()
Ejemplos: Chat por bluetooth II if is_server: result = droid.getInput('Chat', 'Pon tu mensaje').result if result is None: droid.exit() droid.bluetoothWrite(result + '\n') while True: message = droid.bluetoothReadLine().result droid.dialogCreateAlert('Chat recibido', message) droid.dialogSetPositiveButtonText('Ok') droid.dialogShow() droid.dialogGetResponse() result = droid.getInput('Chat', 'Pon tu mensaje').result if result is None: break droid.bluetoothWrite(result + '\n') droid.exit()
Ejemplos: Hacer una foto import android droid = android.Android() droid.cameraCapturePicture('/sdcard/foo.jpg')
Ejemplos: Text-To-Speech import android droid = android.Android() message = droid.dialogGetInput('TTS', '¿Que quieres decir?').result droid.ttsSpeak(message)
Ejemplos: Mensajería I import android import xmpp _SERVER = 'talk.google.com', 5223 def log(droid, message): print message self.droid.ttsSpeak(message) class SayChat(object): def __init__(self): self.droid = android.Android() username = self.droid.dialogGetInput('Usuario').result password = self.droid.dialogGetInput('Password').result jid = xmpp.protocol.JID(username) self.client = xmpp.Client(jid.getDomain(), debug=[]) self.client.connect(server=_SERVER) self.client.RegisterHandler('message', self.message_cb)
Ejemplos: Mensajería II if not self.client: log('Ha fallado la conexion!') return auth = self.client.auth(jid.getNode(), password, 'botty') if not auth: log('Ha fallado la autentificacion!') return self.client.sendInitPresence() def message_cb(self, session, message): jid = xmpp.protocol.JID(message.getFrom()) username = jid.getNode() text = message.getBody() self.droid.ttsSpeak('%s dice %s' % (username, text)) def run(self): try: while True: self.client.Process(1) except KeyboardInterrupt: pass saychat = SayChat() saychat.run()
Ejemplos: Batería I #!/usr/bin/env python2.6 # -*- coding: utf-8 -*- import android droid = android.Android() #Se monitoriza la bateria droid.batteryStartMonitoring() #Se captura la información de la bateria bateriaHealth = droid.batteryGetHealth()[1] if bateriaHealth == 2: print "La bateria está bien" elif bateriaHealth == 1: print "Salud de la Bateria desconocido" elif bateriaHealth == 3: print "La bateria tiene sobrecarga" elif bateriaHealth == 4: print "La bateria está muerta" elif bateriaHealth == 5: print "La bateria tiene sobrevoltaje" else: print "falla desconocida"
Ejemplos: Batería II #Se captura el tipo de conexión que usa el dispositivo tipoConexion = droid.batteryGetPlugType()[1] if tipoConexion == 0: print "Cable desconectado" elif tipoConexion == 1: print "Fuente de alimentación: cargador AC" elif tipoConexion == 2: print "Fuente de alimentación: cable USB" else: print "Desconocido" #Se captura lel estatus de la bateria estatus = droid.batteryGetStatus()[1] if estatus == 2: print "Bateria cargandose" elif estatus == 3: print "Bateria descargandose" elif estatus == 4: print "Bateria no se está cargando" elif estatus == 5: print "Bateria full de carga"
Ejemplos: Batería III print "Tipo de tecnología: ",droid.batteryGetTechnology()[1] print "Temperatura: ",droid.batteryGetTemperature()[1] print "voltaje: ",droid.batteryGetVoltage()[1] #Se deja de monitorizar la bateria droid.batteryStopMonitoring()
Más ejemplos Más ejemplos en la página oficial ●
Ejercicio: Mandar la posición cada hora por ● Que escuche los SMS ● Si le llega un SMS con la palabra “GPS” ● Hacer que capture la posición GPS del móvil ● Que la envíe por aun contacto ● Que la meta como evento en el Google Calendar
Ejercicio: Paso 1 ● Crear un “servicio” que se quede siempre en ejecución.
Ejercicio: Paso 2 ● Hacer que el servicio escuche los mensajes SMS entrantes y saque un Toast con el número y texto del mensaje. ● Habrá que buscar como poder emular el envío de SMS al emulador.
Ejercicio: Paso 3 ● Hacer que solo coja los que tengan el texto “GPS” y que además los marque como leídos.
Ejercicio: Paso 4 ● Hacer que envie un “vacio” indicando en el titulo del que ha recibido un mensaje “GPS” y desde que número lo ha recibido. ● Posible mejora: Si lo ha recibido de un contacto de la agenda sacar también su nombre.
Ejercicio: Paso 5 ● Hacer que geolocalice la posición del móvil. Tanto si esta el GPS conectado como si no. ● Crear una url del Google Maps con la latitud y longitud. ● Enviar esa url en el cuerpo del . ● Si no se envía al emulador la simulación de un cambio de posición GPS se queda esperando bloqueado
Ejercicio: Paso 6 ● Añadir que ademas de enviar el también cree en el Google Calendar un evento para ese momento indicando esa posición.