SlideShare una empresa de Scribd logo
1 de 28
Descargar para leer sin conexión
DESARROLLO DE
APLICACIONES MOVILES EN
ANDROID STUDIO CON JAVA
Docente: Juan Alvites Huamani
Ingeniero de Sistemas
Sesión 8
Permisos en Android y uso de Internet
• Sistema de Permisos
• Uso de WebView
• Uso Bluetooh
• Proyecto Sesion8
Logro de aprendizaje
Al finalizar la sesión, el estudiante conocerá el sistema de
permisos de Android para desarrollar una aplicación móvil
con acceso a varios recursos del dispositivo móvil.
Importancia
Los dispositivos móviles en la actualidad poseen una serie
de recursos o componentes que se tienen que activar
mediante permisos esto nos lleva a reconocer la importancia
de conocer y saber utilizar el sistema de permisos del
Android Studio para poderlos utilizar..
• Para proteger ciertos recursos y características especiales,
Android define un esquema de permisos. Toda aplicación que
acceda a estos recursos está obligada a declarar su intención
de usarlos. En caso de que una aplicación intente acceder a
un recurso del que no ha solicitado permiso, se generará una
excepción de permiso y la aplicación será interrumpida
inmediatamente.
• Cuando el usuario instala una aplicación, este podrá examinar
la lista de permisos que solicita la aplicación y decidir si
considera oportuno instalar dicha aplicación. A partir de la
versión 6, Android clasifica los permisos en peligrosos y
normales. Como veremos en el siguiente apartado, a partir de
esta versión, el usuario va a poder conceder o retirar los
permisos peligrosos en cualquier momento.
Esquema de permisos en Android
• Para solicitar un determinado permiso en tu aplicación, no tienes
más que incluir una etiqueta <uses-permission> en el fichero
AndroidManifest.xml de tu aplicación. En el siguiente ejemplo se
solicitan dos permisos:
• <manifest package="org.example.mi_aplicacion" >
• <uses-permission
android:name="android.permission.RECEIVE_SMS"/>
• <uses-permission
android:name="android.permission.SEND_SMS"/>
• …
• </manifest>
Esquema de permisos en Android
Almacenamiento Externo:
• WRITE_EXTERNAL_STORAGE– Modificar/eliminar almacenamiento
USB (API 4). Permite el borrado y la modificación de archivos en la
memoria externa. Lo ha de solicitar toda aplicación que necesite
escribir un fichero en la memoria externa; por ejemplo, exportar datos
en XML. Pero al permitirlo también podrán modificar/eliminar ficheros
externos creados por otras aplicaciones.
• READ_EXTERNAL_STORAGE– Leer almacenamiento USB (API
16). Permite leer archivos en la memoria externa. Este permiso se
introdujo en la versión 4.1. En versiones anteriores todas las
aplicaciones pueden leer en la memoria externa. Por lo tanto, has de
tener cuidado con la información que dejas en ella.
Permisos peligrosos
Ubicación:
• ACCESS_COARSE_LOCATION – Localización no detallada
(basada en red). Localización basada en telefonía móvil (Cell-ID)
y Wi-Fi. Aunque en la actualidad esta tecnología suele
ofrecernos menos precisión que el GPS, no siempre es así. Por
ejemplo, se está aplicando en el interior de aeropuertos y
museos con precisiones similares.
• ACCESS_FINE_LOCATION – Localización GPS detallada.
Localización basada en satélites GPS. Al dar este permiso
también estamos permitiendo la localización basada en telefonía
móvil y Wi-Fi (ACCESS_COARSE_LOCATION).
Permisos peligrosos
Teléfono:
• CALL_PHONE – Llamar a números de teléfono directamente,
Servicios por los que tienes que pagar. Permite realizar llamadas sin
la intervención del usuario. Nunca solicites este permiso en tus
aplicaciones, muchos usuarios no instalarán tu aplicación. Si has de
realizar una llamada, es mejor realizarla por medio de una intención.
READ_PHONE_STATE – Consultar identidad y estado del teléfono.
Las aplicaciones piden este permiso para ponerse en pausa cuando
recibes una llamada. También permite el acceso al número de
teléfono, IMEI (identificador de teléfono GSM), IMSI (identificador
de tarjeta SIM) y al identificador único de 64 bits que Google asigna
a cada terminal. Incluso si hay una llamada activa, podemos
conocer el número al que se conecta la llamada.
Permisos peligrosos
Teléfono:
• READ_PHONE_NUMBERS: Leer los números almacenados en el
dispositivo. Está incluido en las capacidades del permiso
READ_PHONE_STATE pero se permite su utilización independiente
en las Instant Apps.
• READ_CALL_LOG y WRITE_CALL_LOG: Leer y modificar el registro
de llamadas telefónicas. ADD_VOICEMAIL: Añadir mensajes de voz.
Permite crear nuevos mensajes de voz en el sistema.
• USE_SIP: Usar Session Initial Protocol. (API 9). Permite a tu
aplicación usar el protocolo SIP.
• PROCESS_OUTGOING_CALLS: Procesar llamadas salientes.
Permite a la aplicación controlar, modificar o abortar las llamadas
salientes.
• ANSWER_PHONE_CALLS: Contestar llamadas entrantes.
Permisos peligrosos
Mensajes de texto (SMS):
• SEND_SMS: Enviar mensaje SMS Servicios por los que tienes que
pagar. Permite a la aplicación mandar un texto SMS sin la validación del
usuario. Por iguales razones que CALL_PHONE, a no ser que tu
aplicación tenga que mandar SMS sin la intervención del usuario, resulta
más conveniente enviarlos por medio de una intención.
• RECEIVE_SMS: Recibir mensajes de texto. Permite a la aplicación
recibir y procesar SMS.
• READ_SMS: Leer mensajes de texto. Permite a la aplicación leer los
mensajes SMS entrantes.
• RECEIVE_MMS – Recibir mensajes MMS. Permite monitorizar los
mensajes multimedia entrantes, pudiendo acceder a su contenido.
• RECEIVE_WAP_PUSCH: Recibir mensajes WAP Push.
Permisos peligrosos
Contactos:
• READ_CONTACTS: Leer datos de contactos. Permite leer
información sobre los contactos almacenados (nombres, correos
electrónicos, números de teléfono). Algunas aplicaciones podrían
utilizar esta información de forma no lícita
• WRITE_CONTACTS: Escribir datos de contactos. Permite modificar
los contactos.
• GET_ACCOUNTS: Obtener Cuentas. Permiten acceder a la lista de
cuentas en el Servicio de Cuentas.
Calendario:
• READ_CALENDAR: Leer datos de contactos. Permite leer
información del calendario del usuario.
• WRITE_CONTACTS: Escribir datos de contactos. Permite escribir en
el calendario, pero no leerlo.
Permisos peligrosos
Comunicaciones:
• INTERNET: Acceso a Internet sin límites. Permite establecer
conexiones a través de Internet. Este es un permiso muy importante,
en el que hay que fijarse a quién se otorga. La mayoría de las
aplicaciones lo piden, pero no todas lo necesitan. Cualquier malware
necesita una conexión para poder enviar datos de nuestro dispositivo.
• ACCESS_NETWORK_STATE: Ver estado de red. Información sobre
todas las redes.
• CHANGE_NETWORK_STATE: Cambiar estado de red. Permite
cambiar el estado de conectividad de redes.
• TRASMIT_R – Trasmitir por infrarrojos. (API 19)
• NFC – Near field communication. (API 19) Algunos dispositivos
disponen de un trasmisor infrarrojo para el control remoto de
electrodomésticos.
Permisos normales
Conexión WIFI:
• ACCESS_WIFI_STATE: Ver estado de Wi-Fi. Permite conocer las
redes Wi-Fi disponibles.
• CHANGE_WIFI_STATE: Cambiar estado de Wi-Fi. Permite
cambiar el estado de conectividad Wi-Fi.
• CHANGE_WIFI_MULTICAST_STATE: Cambiar estado multicast
Wi-Fi (API 4). Permite pasar al modo Wi-Fi Multicast.
Bluetooth:
• BLUETOOTH: Crear conexión Bluetooth. Permite a una aplicación
conectarse con otro dispositivo Bluetooth. Antes ambos
dispositivos han de emparejarse.
• .BLUETOOTH_ADMIN: Emparejar Bluetooth. Permite descubrir y
emparejarse con otros dispositivos Bluetooth.
Permisos normales
Consumo de batería:
• WAKE_LOCK: Impedir que el teléfono entre en modo de
suspensión. Para algunas aplicaciones, como un navegador
GPS, puede ser importante que no sean suspendidas nunca.
Realmente, a lo único que puede afectar es a nuestra batería.
• FLASHLIGHT: Linterna. Permite encender el flash de la cámara.
• VIBRATE: Control de la vibración. Permite hacer vibrar al
teléfono. Los juegos suelen utilizarlo.
Audio:
• MODY_AUDIO_SETTINGS: Cambiar ajustes de audio. Permite
cambiar ajustes globales de audio, como el volumen.
Permisos normales
Ubicación:
• ACCESS_LOCATION_EXTRA_COMMANDS: Mandar comandos
extras de localización. Permite a una aplicación acceder a
comandos adicionales de los proveedores de localización. Por
ejemplo, tras pedir este permiso podríamos enviar el siguiente
comando al GPS, con el método: sendExtraCommand("gps",
"delete_aiding_data", null).
Seguridad:
• USE_FINGERPRINT: Usar huella digital(API 23). Permite usar el
hardware de reconocimiento de huella digital.
• DISABLE_KEYGUARD – Deshabilitar bloqueo de teclado. Permite
a las aplicaciones desactivar el bloqueo del teclado si no es
seguro.
Permisos normales
Configuraciones del sistema:
• SET_WALLPAPER: Poner fondo de pantalla. Permite establecer
fondo de pantalla en el escritorio.
• SET_WALLPAPER_HITS: Sugerencias de fondo de pantalla.
Permite a las aplicaciones establecer sugerencias de fondo de
pantalla.
• SET_ALARM: Establecer Alarma. Permite a la aplicación enviar
una intención para poner una alarma o temporizador en la
aplicación Reloj.
• SET_TIME_ZONE: Cambiar zona horario. Permite cambiar la zona
horaria del sistema.
• ACCESS_NOTIFICATION_POLICY: Acceso a política de
notificaciones (API 23). Permite conocer la política de notificaciones
del sistema.
Permisos normales
Aplicaciones:
• RECEIVE_BOOT_COMPLETED: Ejecución automática al
encender el teléfono. Permite a una aplicación recibir el anuncio
broadcast ACTION_BOOT_COMPLETED enviado cuando el
sistema finaliza un inicio. Gracias a esto la aplicación pondrá
ponerse en ejecución al arrancar el teléfono.
• BROADCAST_STICKY: Enviar anuncios broadcast permanentes.
Un broadcast permanente llegará a los receptores de anuncios
que actualmente estén escuchando, pero también a los que se
instancien en un futuro. Por ejemplo, el sistema emite el anuncio
broadcast ACTION_BATTERY_CHANGED de forma permanente.
De esta forma, cuando se llama a registerReceiver() se obtiene la
intención de la última emisión de este anuncio.
Permisos normales
Aplicaciones:
• KILL_ BACKGROUND_PROCESSES: Matar procesos en
Background(API 9). Permite llamar a
killBackgroundProcesses(String). Al hacer esta llamada el sistema
mata de inmediato a todos los procesos de fondo asociados con el
paquete indicado. Es el mismo método que usa el sistema cuando
necesita memoria. Estos procesos serán reiniciados en el futuro,
cuando sea necesario.
• REORDER_TASKS: Reordenar tareas. Permite a una aplicación
cambiar el orden de la lista de tareas.
• INSTALL_SHORTCUT y UNINSTALL_SHORTCUT: Instalar y
desinstalar acceso directo(API 19). Permite a una aplicación añadir
o eliminar un acceso directo a nuestra aplicación en el escritorio.
Permisos normales
Aplicaciones:
• GET_PACKAGE_SIZE: Obtener tamaño de un paquete.
Permite a una aplicación conocer el tamaño de cualquier
paquete.
• EXPAND_STATUS_BAR: Expandir barra de estado.
Permite a una aplicación expandir o contraer la barra de
estado
• FOREGROUND_SERVICE: Crear servicios en primer
plano. (API 28). Permite a una aplicación crear servicios
en primer plano.
Permisos normales
Sincronización:
• READ_SYNC_SETTINGS: Leer ajustes de sincronización.
Permite saber si tienes sincronización en segundo plano
con alguna aplicación (como con un cliente de Twitter o
Gmail).
• WRITE_SYNC_SETTINGS: Escribir ajustes de
sincronización. Permite registrar tu aplicación como
adaptador de sincronización (SyncAdapter).
• READ_SYNC_STATS: Leer estadísticas de
sincronización.
Permisos normales
 Control WebView
Permite mostrar páginas web; con ayuda de la clase WebView podemos crear
nuestro propio navegador y como podrás imaginarte utiliza el motor de WebKit.
¿La clase WebView es un navegador?
WebView no es un navegador ya que no cuenta con elementos presentes en
navegadores como barra de direcciones u otros controles de navegación;
solamente permite mostrar una página web en una aplicación nativa Android.
Aunque con la clase WebView podemos decidir si queremos mostrar el
contenido dentro de la aplicación o en un navegador web como veremos más
adelante.
Construyendo Web Apps con WebView
Para agregar un WebView en nuestra aplicación Android debemos de realizar
una serie de configuraciones que veremos a continuación:
Habilitar permiso a Internet en el AndroidManifest para que la aplicación pueda
conectarse a Internet y poder descargar el contenido HTML:
<uses-permission android:name="android.permission.INTERNET" />
Android: comunicaciones
 Comunicaciones
 La API de Android aporta mecanismos para realizar
comunicación entre dispositivos o a través de la red.
 Estos sistemas estarán disponibles dependiendo del
hardware del teléfono
 Existen distintos tipos de comunicación:
 Red (conexión directa, wifi…)
 Telefonía
 Bluetooth
 Otros
Android: Bluetooth
 Bluetooth y Android
 La API de Android soporta Bluetooth
desde la versión 2.0
 Con Bluetooth se permite:
 Buscar otros dispositivos bluetooth.
 Consultar si está emparejado con
un dispositivo bluetooth concreto.
 Establecer canales RFCOMM.
 Conectar con otros dispositivos a través
del servicio de descubrimiento de
dispositivos.
 Realizar transferencia de datos entre
otros dispositivos de forma
bidireccional.
 Manejar múltiples conexiones
Android: Bluetooth
Clases API Bluetooth
 BluetoothAdapter
 Representa el adaptador bluetooth local, es decir, el dispositivo físico. Ésta
clase el es entry point para toda la infraestructura bluetooth de nuestra
aplicación.
 BluetoothDevice
 Representa a un dispositivo bluetooth remoto. Se utiliza para solicitar
una conexión con dicho dispositivo
 BluetoothSocket
 Representa una interfaz con otro dispositivo bluetooth en forma de socket.
 BluetoothServerSocket
 BluetoothServerSocket representa a un socket escuchando en el lado de
la aplicación servidora.
 BluetoothClass
 Ésta clase contiene un conjunto de propiedades (de solo lectura) que definen
las características del dispositivo bluetooth al que representan.
Android: Bluetooth
Ejemplo de uso de Bluetooh
BluetoothBasics
Ejemplo que busca dispositivos al alcance del radio de
acción del dispositivo
BluetoothChat
Ejemplo que muestra como realizar un chat entre
dos dispositivos móviles utilizando Bluetooth
Ejemplo Sesion8
Preguntas y Dudas…?
Gracias

Más contenido relacionado

Similar a Sesion8 Aplicaciones Moviles.pdf

Similar a Sesion8 Aplicaciones Moviles.pdf (20)

Tallerso. andrea pamela
Tallerso. andrea pamelaTallerso. andrea pamela
Tallerso. andrea pamela
 
Android manifest
Android manifestAndroid manifest
Android manifest
 
rojas landa vanessa.pdf
rojas landa vanessa.pdfrojas landa vanessa.pdf
rojas landa vanessa.pdf
 
Sistemas operativos
Sistemas operativosSistemas operativos
Sistemas operativos
 
S.O..pdf
S.O..pdfS.O..pdf
S.O..pdf
 
SISTEMA OPERATIVO ANDROID
SISTEMA OPERATIVO ANDROIDSISTEMA OPERATIVO ANDROID
SISTEMA OPERATIVO ANDROID
 
Seguridad en redes
Seguridad en redesSeguridad en redes
Seguridad en redes
 
Android blog
Android blogAndroid blog
Android blog
 
Seguridad en servidores
Seguridad en servidoresSeguridad en servidores
Seguridad en servidores
 
Análisis de malware en Android -.Bsides Chile 2014
Análisis de malware en Android -.Bsides Chile 2014Análisis de malware en Android -.Bsides Chile 2014
Análisis de malware en Android -.Bsides Chile 2014
 
Headless Applications
Headless ApplicationsHeadless Applications
Headless Applications
 
2015 10 - Curso Cliente @firma INAP día 3
2015 10 - Curso Cliente @firma INAP día 32015 10 - Curso Cliente @firma INAP día 3
2015 10 - Curso Cliente @firma INAP día 3
 
Aplicaciones
AplicacionesAplicaciones
Aplicaciones
 
Sistemas operativos y Licencias
Sistemas operativos y LicenciasSistemas operativos y Licencias
Sistemas operativos y Licencias
 
Trabajo practico n°2 lucas lopez
Trabajo practico n°2 lucas lopezTrabajo practico n°2 lucas lopez
Trabajo practico n°2 lucas lopez
 
software libre duayen
software libre duayensoftware libre duayen
software libre duayen
 
Android reversing 101.pdf
Android reversing 101.pdfAndroid reversing 101.pdf
Android reversing 101.pdf
 
Lorena bernal trabajo
Lorena bernal trabajoLorena bernal trabajo
Lorena bernal trabajo
 
Hardware para hacking (2011)
Hardware para hacking (2011)Hardware para hacking (2011)
Hardware para hacking (2011)
 
Segunda evaluación
Segunda evaluaciónSegunda evaluación
Segunda evaluación
 

Más de fispari1

Diagrama de Ciclo de vida M.A (3).ppt
Diagrama de Ciclo de vida M.A (3).pptDiagrama de Ciclo de vida M.A (3).ppt
Diagrama de Ciclo de vida M.A (3).pptfispari1
 
1. Descubrimiento de datos con Power Query-Continuación.pdf
1. Descubrimiento de datos con Power Query-Continuación.pdf1. Descubrimiento de datos con Power Query-Continuación.pdf
1. Descubrimiento de datos con Power Query-Continuación.pdffispari1
 
androiddd.pdf
androiddd.pdfandroiddd.pdf
androiddd.pdffispari1
 
P-COR-SIG-003 Procedimiento de No Conformidades y Acciones Correctivas V00.pdf
P-COR-SIG-003 Procedimiento de No Conformidades y Acciones Correctivas V00.pdfP-COR-SIG-003 Procedimiento de No Conformidades y Acciones Correctivas V00.pdf
P-COR-SIG-003 Procedimiento de No Conformidades y Acciones Correctivas V00.pdffispari1
 
Mapeo Procesos Antapite Nivel 0 RevDic21.pptx
Mapeo Procesos Antapite Nivel 0 RevDic21.pptxMapeo Procesos Antapite Nivel 0 RevDic21.pptx
Mapeo Procesos Antapite Nivel 0 RevDic21.pptxfispari1
 
GOBIERNO vs GESTION EN TI.pptx
GOBIERNO vs GESTION EN TI.pptxGOBIERNO vs GESTION EN TI.pptx
GOBIERNO vs GESTION EN TI.pptxfispari1
 
expresion-regular.pdf
expresion-regular.pdfexpresion-regular.pdf
expresion-regular.pdffispari1
 
PPT Sesión 09 - PBI Python.pdf
PPT Sesión 09 - PBI Python.pdfPPT Sesión 09 - PBI Python.pdf
PPT Sesión 09 - PBI Python.pdffispari1
 
PPT Sesión 08 - PBI Python.pdf
PPT Sesión 08 - PBI Python.pdfPPT Sesión 08 - PBI Python.pdf
PPT Sesión 08 - PBI Python.pdffispari1
 
PPT Sesión 07 - PBI Python.pdf
PPT Sesión 07 - PBI Python.pdfPPT Sesión 07 - PBI Python.pdf
PPT Sesión 07 - PBI Python.pdffispari1
 
PPT Sesión 05- PBI Python.pdf
PPT Sesión 05- PBI Python.pdfPPT Sesión 05- PBI Python.pdf
PPT Sesión 05- PBI Python.pdffispari1
 
PPT Sesión 04- PBI Python.pdf
PPT Sesión 04- PBI Python.pdfPPT Sesión 04- PBI Python.pdf
PPT Sesión 04- PBI Python.pdffispari1
 
PPT Sesión 03 - PBI Python.pdf
PPT Sesión 03 - PBI Python.pdfPPT Sesión 03 - PBI Python.pdf
PPT Sesión 03 - PBI Python.pdffispari1
 
PPT sesion 01.pdf
PPT sesion 01.pdfPPT sesion 01.pdf
PPT sesion 01.pdffispari1
 
PPT clase preámbulo.pdf
PPT clase preámbulo.pdfPPT clase preámbulo.pdf
PPT clase preámbulo.pdffispari1
 
Rutas y Controladores.pdf
Rutas y Controladores.pdfRutas y Controladores.pdf
Rutas y Controladores.pdffispari1
 
1 Rutas.pdf
1 Rutas.pdf1 Rutas.pdf
1 Rutas.pdffispari1
 

Más de fispari1 (17)

Diagrama de Ciclo de vida M.A (3).ppt
Diagrama de Ciclo de vida M.A (3).pptDiagrama de Ciclo de vida M.A (3).ppt
Diagrama de Ciclo de vida M.A (3).ppt
 
1. Descubrimiento de datos con Power Query-Continuación.pdf
1. Descubrimiento de datos con Power Query-Continuación.pdf1. Descubrimiento de datos con Power Query-Continuación.pdf
1. Descubrimiento de datos con Power Query-Continuación.pdf
 
androiddd.pdf
androiddd.pdfandroiddd.pdf
androiddd.pdf
 
P-COR-SIG-003 Procedimiento de No Conformidades y Acciones Correctivas V00.pdf
P-COR-SIG-003 Procedimiento de No Conformidades y Acciones Correctivas V00.pdfP-COR-SIG-003 Procedimiento de No Conformidades y Acciones Correctivas V00.pdf
P-COR-SIG-003 Procedimiento de No Conformidades y Acciones Correctivas V00.pdf
 
Mapeo Procesos Antapite Nivel 0 RevDic21.pptx
Mapeo Procesos Antapite Nivel 0 RevDic21.pptxMapeo Procesos Antapite Nivel 0 RevDic21.pptx
Mapeo Procesos Antapite Nivel 0 RevDic21.pptx
 
GOBIERNO vs GESTION EN TI.pptx
GOBIERNO vs GESTION EN TI.pptxGOBIERNO vs GESTION EN TI.pptx
GOBIERNO vs GESTION EN TI.pptx
 
expresion-regular.pdf
expresion-regular.pdfexpresion-regular.pdf
expresion-regular.pdf
 
PPT Sesión 09 - PBI Python.pdf
PPT Sesión 09 - PBI Python.pdfPPT Sesión 09 - PBI Python.pdf
PPT Sesión 09 - PBI Python.pdf
 
PPT Sesión 08 - PBI Python.pdf
PPT Sesión 08 - PBI Python.pdfPPT Sesión 08 - PBI Python.pdf
PPT Sesión 08 - PBI Python.pdf
 
PPT Sesión 07 - PBI Python.pdf
PPT Sesión 07 - PBI Python.pdfPPT Sesión 07 - PBI Python.pdf
PPT Sesión 07 - PBI Python.pdf
 
PPT Sesión 05- PBI Python.pdf
PPT Sesión 05- PBI Python.pdfPPT Sesión 05- PBI Python.pdf
PPT Sesión 05- PBI Python.pdf
 
PPT Sesión 04- PBI Python.pdf
PPT Sesión 04- PBI Python.pdfPPT Sesión 04- PBI Python.pdf
PPT Sesión 04- PBI Python.pdf
 
PPT Sesión 03 - PBI Python.pdf
PPT Sesión 03 - PBI Python.pdfPPT Sesión 03 - PBI Python.pdf
PPT Sesión 03 - PBI Python.pdf
 
PPT sesion 01.pdf
PPT sesion 01.pdfPPT sesion 01.pdf
PPT sesion 01.pdf
 
PPT clase preámbulo.pdf
PPT clase preámbulo.pdfPPT clase preámbulo.pdf
PPT clase preámbulo.pdf
 
Rutas y Controladores.pdf
Rutas y Controladores.pdfRutas y Controladores.pdf
Rutas y Controladores.pdf
 
1 Rutas.pdf
1 Rutas.pdf1 Rutas.pdf
1 Rutas.pdf
 

Último

Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxLolaBunny11
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfJulian Lamprea
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudianteAndreaHuertas24
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 

Último (13)

Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
Presentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptxPresentación guía sencilla en Microsoft Excel.pptx
Presentación guía sencilla en Microsoft Excel.pptx
 
Desarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdfDesarrollo Web Moderno con Svelte 2024.pdf
Desarrollo Web Moderno con Svelte 2024.pdf
 
9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante9egb-lengua y Literatura.pdf_texto del estudiante
9egb-lengua y Literatura.pdf_texto del estudiante
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 

Sesion8 Aplicaciones Moviles.pdf

  • 1. DESARROLLO DE APLICACIONES MOVILES EN ANDROID STUDIO CON JAVA Docente: Juan Alvites Huamani Ingeniero de Sistemas
  • 2. Sesión 8 Permisos en Android y uso de Internet • Sistema de Permisos • Uso de WebView • Uso Bluetooh • Proyecto Sesion8
  • 3. Logro de aprendizaje Al finalizar la sesión, el estudiante conocerá el sistema de permisos de Android para desarrollar una aplicación móvil con acceso a varios recursos del dispositivo móvil. Importancia Los dispositivos móviles en la actualidad poseen una serie de recursos o componentes que se tienen que activar mediante permisos esto nos lleva a reconocer la importancia de conocer y saber utilizar el sistema de permisos del Android Studio para poderlos utilizar..
  • 4. • Para proteger ciertos recursos y características especiales, Android define un esquema de permisos. Toda aplicación que acceda a estos recursos está obligada a declarar su intención de usarlos. En caso de que una aplicación intente acceder a un recurso del que no ha solicitado permiso, se generará una excepción de permiso y la aplicación será interrumpida inmediatamente. • Cuando el usuario instala una aplicación, este podrá examinar la lista de permisos que solicita la aplicación y decidir si considera oportuno instalar dicha aplicación. A partir de la versión 6, Android clasifica los permisos en peligrosos y normales. Como veremos en el siguiente apartado, a partir de esta versión, el usuario va a poder conceder o retirar los permisos peligrosos en cualquier momento. Esquema de permisos en Android
  • 5. • Para solicitar un determinado permiso en tu aplicación, no tienes más que incluir una etiqueta <uses-permission> en el fichero AndroidManifest.xml de tu aplicación. En el siguiente ejemplo se solicitan dos permisos: • <manifest package="org.example.mi_aplicacion" > • <uses-permission android:name="android.permission.RECEIVE_SMS"/> • <uses-permission android:name="android.permission.SEND_SMS"/> • … • </manifest> Esquema de permisos en Android
  • 6. Almacenamiento Externo: • WRITE_EXTERNAL_STORAGE– Modificar/eliminar almacenamiento USB (API 4). Permite el borrado y la modificación de archivos en la memoria externa. Lo ha de solicitar toda aplicación que necesite escribir un fichero en la memoria externa; por ejemplo, exportar datos en XML. Pero al permitirlo también podrán modificar/eliminar ficheros externos creados por otras aplicaciones. • READ_EXTERNAL_STORAGE– Leer almacenamiento USB (API 16). Permite leer archivos en la memoria externa. Este permiso se introdujo en la versión 4.1. En versiones anteriores todas las aplicaciones pueden leer en la memoria externa. Por lo tanto, has de tener cuidado con la información que dejas en ella. Permisos peligrosos
  • 7. Ubicación: • ACCESS_COARSE_LOCATION – Localización no detallada (basada en red). Localización basada en telefonía móvil (Cell-ID) y Wi-Fi. Aunque en la actualidad esta tecnología suele ofrecernos menos precisión que el GPS, no siempre es así. Por ejemplo, se está aplicando en el interior de aeropuertos y museos con precisiones similares. • ACCESS_FINE_LOCATION – Localización GPS detallada. Localización basada en satélites GPS. Al dar este permiso también estamos permitiendo la localización basada en telefonía móvil y Wi-Fi (ACCESS_COARSE_LOCATION). Permisos peligrosos
  • 8. Teléfono: • CALL_PHONE – Llamar a números de teléfono directamente, Servicios por los que tienes que pagar. Permite realizar llamadas sin la intervención del usuario. Nunca solicites este permiso en tus aplicaciones, muchos usuarios no instalarán tu aplicación. Si has de realizar una llamada, es mejor realizarla por medio de una intención. READ_PHONE_STATE – Consultar identidad y estado del teléfono. Las aplicaciones piden este permiso para ponerse en pausa cuando recibes una llamada. También permite el acceso al número de teléfono, IMEI (identificador de teléfono GSM), IMSI (identificador de tarjeta SIM) y al identificador único de 64 bits que Google asigna a cada terminal. Incluso si hay una llamada activa, podemos conocer el número al que se conecta la llamada. Permisos peligrosos
  • 9. Teléfono: • READ_PHONE_NUMBERS: Leer los números almacenados en el dispositivo. Está incluido en las capacidades del permiso READ_PHONE_STATE pero se permite su utilización independiente en las Instant Apps. • READ_CALL_LOG y WRITE_CALL_LOG: Leer y modificar el registro de llamadas telefónicas. ADD_VOICEMAIL: Añadir mensajes de voz. Permite crear nuevos mensajes de voz en el sistema. • USE_SIP: Usar Session Initial Protocol. (API 9). Permite a tu aplicación usar el protocolo SIP. • PROCESS_OUTGOING_CALLS: Procesar llamadas salientes. Permite a la aplicación controlar, modificar o abortar las llamadas salientes. • ANSWER_PHONE_CALLS: Contestar llamadas entrantes. Permisos peligrosos
  • 10. Mensajes de texto (SMS): • SEND_SMS: Enviar mensaje SMS Servicios por los que tienes que pagar. Permite a la aplicación mandar un texto SMS sin la validación del usuario. Por iguales razones que CALL_PHONE, a no ser que tu aplicación tenga que mandar SMS sin la intervención del usuario, resulta más conveniente enviarlos por medio de una intención. • RECEIVE_SMS: Recibir mensajes de texto. Permite a la aplicación recibir y procesar SMS. • READ_SMS: Leer mensajes de texto. Permite a la aplicación leer los mensajes SMS entrantes. • RECEIVE_MMS – Recibir mensajes MMS. Permite monitorizar los mensajes multimedia entrantes, pudiendo acceder a su contenido. • RECEIVE_WAP_PUSCH: Recibir mensajes WAP Push. Permisos peligrosos
  • 11. Contactos: • READ_CONTACTS: Leer datos de contactos. Permite leer información sobre los contactos almacenados (nombres, correos electrónicos, números de teléfono). Algunas aplicaciones podrían utilizar esta información de forma no lícita • WRITE_CONTACTS: Escribir datos de contactos. Permite modificar los contactos. • GET_ACCOUNTS: Obtener Cuentas. Permiten acceder a la lista de cuentas en el Servicio de Cuentas. Calendario: • READ_CALENDAR: Leer datos de contactos. Permite leer información del calendario del usuario. • WRITE_CONTACTS: Escribir datos de contactos. Permite escribir en el calendario, pero no leerlo. Permisos peligrosos
  • 12. Comunicaciones: • INTERNET: Acceso a Internet sin límites. Permite establecer conexiones a través de Internet. Este es un permiso muy importante, en el que hay que fijarse a quién se otorga. La mayoría de las aplicaciones lo piden, pero no todas lo necesitan. Cualquier malware necesita una conexión para poder enviar datos de nuestro dispositivo. • ACCESS_NETWORK_STATE: Ver estado de red. Información sobre todas las redes. • CHANGE_NETWORK_STATE: Cambiar estado de red. Permite cambiar el estado de conectividad de redes. • TRASMIT_R – Trasmitir por infrarrojos. (API 19) • NFC – Near field communication. (API 19) Algunos dispositivos disponen de un trasmisor infrarrojo para el control remoto de electrodomésticos. Permisos normales
  • 13. Conexión WIFI: • ACCESS_WIFI_STATE: Ver estado de Wi-Fi. Permite conocer las redes Wi-Fi disponibles. • CHANGE_WIFI_STATE: Cambiar estado de Wi-Fi. Permite cambiar el estado de conectividad Wi-Fi. • CHANGE_WIFI_MULTICAST_STATE: Cambiar estado multicast Wi-Fi (API 4). Permite pasar al modo Wi-Fi Multicast. Bluetooth: • BLUETOOTH: Crear conexión Bluetooth. Permite a una aplicación conectarse con otro dispositivo Bluetooth. Antes ambos dispositivos han de emparejarse. • .BLUETOOTH_ADMIN: Emparejar Bluetooth. Permite descubrir y emparejarse con otros dispositivos Bluetooth. Permisos normales
  • 14. Consumo de batería: • WAKE_LOCK: Impedir que el teléfono entre en modo de suspensión. Para algunas aplicaciones, como un navegador GPS, puede ser importante que no sean suspendidas nunca. Realmente, a lo único que puede afectar es a nuestra batería. • FLASHLIGHT: Linterna. Permite encender el flash de la cámara. • VIBRATE: Control de la vibración. Permite hacer vibrar al teléfono. Los juegos suelen utilizarlo. Audio: • MODY_AUDIO_SETTINGS: Cambiar ajustes de audio. Permite cambiar ajustes globales de audio, como el volumen. Permisos normales
  • 15. Ubicación: • ACCESS_LOCATION_EXTRA_COMMANDS: Mandar comandos extras de localización. Permite a una aplicación acceder a comandos adicionales de los proveedores de localización. Por ejemplo, tras pedir este permiso podríamos enviar el siguiente comando al GPS, con el método: sendExtraCommand("gps", "delete_aiding_data", null). Seguridad: • USE_FINGERPRINT: Usar huella digital(API 23). Permite usar el hardware de reconocimiento de huella digital. • DISABLE_KEYGUARD – Deshabilitar bloqueo de teclado. Permite a las aplicaciones desactivar el bloqueo del teclado si no es seguro. Permisos normales
  • 16. Configuraciones del sistema: • SET_WALLPAPER: Poner fondo de pantalla. Permite establecer fondo de pantalla en el escritorio. • SET_WALLPAPER_HITS: Sugerencias de fondo de pantalla. Permite a las aplicaciones establecer sugerencias de fondo de pantalla. • SET_ALARM: Establecer Alarma. Permite a la aplicación enviar una intención para poner una alarma o temporizador en la aplicación Reloj. • SET_TIME_ZONE: Cambiar zona horario. Permite cambiar la zona horaria del sistema. • ACCESS_NOTIFICATION_POLICY: Acceso a política de notificaciones (API 23). Permite conocer la política de notificaciones del sistema. Permisos normales
  • 17. Aplicaciones: • RECEIVE_BOOT_COMPLETED: Ejecución automática al encender el teléfono. Permite a una aplicación recibir el anuncio broadcast ACTION_BOOT_COMPLETED enviado cuando el sistema finaliza un inicio. Gracias a esto la aplicación pondrá ponerse en ejecución al arrancar el teléfono. • BROADCAST_STICKY: Enviar anuncios broadcast permanentes. Un broadcast permanente llegará a los receptores de anuncios que actualmente estén escuchando, pero también a los que se instancien en un futuro. Por ejemplo, el sistema emite el anuncio broadcast ACTION_BATTERY_CHANGED de forma permanente. De esta forma, cuando se llama a registerReceiver() se obtiene la intención de la última emisión de este anuncio. Permisos normales
  • 18. Aplicaciones: • KILL_ BACKGROUND_PROCESSES: Matar procesos en Background(API 9). Permite llamar a killBackgroundProcesses(String). Al hacer esta llamada el sistema mata de inmediato a todos los procesos de fondo asociados con el paquete indicado. Es el mismo método que usa el sistema cuando necesita memoria. Estos procesos serán reiniciados en el futuro, cuando sea necesario. • REORDER_TASKS: Reordenar tareas. Permite a una aplicación cambiar el orden de la lista de tareas. • INSTALL_SHORTCUT y UNINSTALL_SHORTCUT: Instalar y desinstalar acceso directo(API 19). Permite a una aplicación añadir o eliminar un acceso directo a nuestra aplicación en el escritorio. Permisos normales
  • 19. Aplicaciones: • GET_PACKAGE_SIZE: Obtener tamaño de un paquete. Permite a una aplicación conocer el tamaño de cualquier paquete. • EXPAND_STATUS_BAR: Expandir barra de estado. Permite a una aplicación expandir o contraer la barra de estado • FOREGROUND_SERVICE: Crear servicios en primer plano. (API 28). Permite a una aplicación crear servicios en primer plano. Permisos normales
  • 20. Sincronización: • READ_SYNC_SETTINGS: Leer ajustes de sincronización. Permite saber si tienes sincronización en segundo plano con alguna aplicación (como con un cliente de Twitter o Gmail). • WRITE_SYNC_SETTINGS: Escribir ajustes de sincronización. Permite registrar tu aplicación como adaptador de sincronización (SyncAdapter). • READ_SYNC_STATS: Leer estadísticas de sincronización. Permisos normales
  • 21.  Control WebView Permite mostrar páginas web; con ayuda de la clase WebView podemos crear nuestro propio navegador y como podrás imaginarte utiliza el motor de WebKit. ¿La clase WebView es un navegador? WebView no es un navegador ya que no cuenta con elementos presentes en navegadores como barra de direcciones u otros controles de navegación; solamente permite mostrar una página web en una aplicación nativa Android. Aunque con la clase WebView podemos decidir si queremos mostrar el contenido dentro de la aplicación o en un navegador web como veremos más adelante. Construyendo Web Apps con WebView Para agregar un WebView en nuestra aplicación Android debemos de realizar una serie de configuraciones que veremos a continuación: Habilitar permiso a Internet en el AndroidManifest para que la aplicación pueda conectarse a Internet y poder descargar el contenido HTML: <uses-permission android:name="android.permission.INTERNET" />
  • 22. Android: comunicaciones  Comunicaciones  La API de Android aporta mecanismos para realizar comunicación entre dispositivos o a través de la red.  Estos sistemas estarán disponibles dependiendo del hardware del teléfono  Existen distintos tipos de comunicación:  Red (conexión directa, wifi…)  Telefonía  Bluetooth  Otros
  • 23. Android: Bluetooth  Bluetooth y Android  La API de Android soporta Bluetooth desde la versión 2.0  Con Bluetooth se permite:  Buscar otros dispositivos bluetooth.  Consultar si está emparejado con un dispositivo bluetooth concreto.  Establecer canales RFCOMM.  Conectar con otros dispositivos a través del servicio de descubrimiento de dispositivos.  Realizar transferencia de datos entre otros dispositivos de forma bidireccional.  Manejar múltiples conexiones
  • 24. Android: Bluetooth Clases API Bluetooth  BluetoothAdapter  Representa el adaptador bluetooth local, es decir, el dispositivo físico. Ésta clase el es entry point para toda la infraestructura bluetooth de nuestra aplicación.  BluetoothDevice  Representa a un dispositivo bluetooth remoto. Se utiliza para solicitar una conexión con dicho dispositivo  BluetoothSocket  Representa una interfaz con otro dispositivo bluetooth en forma de socket.  BluetoothServerSocket  BluetoothServerSocket representa a un socket escuchando en el lado de la aplicación servidora.  BluetoothClass  Ésta clase contiene un conjunto de propiedades (de solo lectura) que definen las características del dispositivo bluetooth al que representan.
  • 25. Android: Bluetooth Ejemplo de uso de Bluetooh BluetoothBasics Ejemplo que busca dispositivos al alcance del radio de acción del dispositivo BluetoothChat Ejemplo que muestra como realizar un chat entre dos dispositivos móviles utilizando Bluetooth