Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 25/10/16, 17:16:46
Array

[xs_avatar]
garciam202 garciam202 no está en línea
Miembro del foro
 
Fecha de registro: may 2012
Mensajes: 58
Tu operador: Movistar

Notificaciones push

Aquí va mi duda:

Es posible compartir mediante notificaciones push contenido compuesto por videos, imágenes, texto...?

Me explico. Tendría ejercicios compuestos por ese contenido multimedía que desearía enviar por completo mediante notificaciones push para su visualización.

Sino es posible, que otras alternativas tendría?

Gracias de antemano.
Responder Con Cita


  #2  
Viejo 25/10/16, 22:06:07
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
El tamaño máximo que puede tener una notificación Push con FCM (o GCM) es de 4 kbs. Y 2 kbs en el caso de iOS 8+ (bien sea con APNS o con FCM).

Así que respondiendo a tu pregunta, no puedes enviarlo DENTRO de la notificación (quizás una imagen muy pequeña si). Pero si puedes hacer que el servicio que lee la notificación descargue algo de un servidor al recibirla, y mostrarla una vez descargado. Así que básicamente en la notificación envías una ruta de descarga, te la descargas, y después la muestras con el contenido ya preparado.
Responder Con Cita
  #3  
Viejo 27/10/16, 02:58:11
Array

[xs_avatar]
garciam202 garciam202 no está en línea
Miembro del foro
 
Fecha de registro: may 2012
Mensajes: 58
Tu operador: Movistar

 Cita: Originalmente Escrito por kriogeN Ver Mensaje
El tamaño máximo que puede tener una notificación Push con FCM (o GCM) es de 4 kbs. Y 2 kbs en el caso de iOS 8+ (bien sea con APNS o con FCM).

Así que respondiendo a tu pregunta, no puedes enviarlo DENTRO de la notificación (quizás una imagen muy pequeña si). Pero si puedes hacer que el servicio que lee la notificación descargue algo de un servidor al recibirla, y mostrarla una vez descargado. Así que básicamente en la notificación envías una ruta de descarga, te la descargas, y después la muestras con el contenido ya preparado.
Entiendo. Parece la mejor solución para enviar ese contenido.

Otra duda importante que tengo a raíz de esto es la siguiente:

Tengo entendido que es totalmente necesario tener instalada la App para poder recibir sus notificaciones. Pero en mi caso habría una persona tan sólo que utilizase la App y el resto solo me interesaría que recibiesen las notificaciones y pudiesen ver ese contenido mulimedía de una determinada forma. Había pensado en algo de este tipo:

Diseñar la App principal con la que realices modificaciones sobre la BBDD y otra App para los usuarios que deben recibir la notificación que se limite a mostrar ese contenido de la forma que me interese. Algo así como que los usuarios que quieran recibir las notificaciones se registren en la App "visor" y la App "principal" envié notificaciones a los primeros viendo a quien es en una BBDD compartida con el registro en el GCM o algo así.

No se si mi propuesta es viable y sino lo es que otra alternativa tendría.

Gracias.
Responder Con Cita
  #4  
Viejo 27/10/16, 08:46:12
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,202
Tu operador: -

 Cita: Originalmente Escrito por garciam202 Ver Mensaje
Algo así como que los usuarios que quieran recibir las notificaciones se registren en la App "visor" y la App "principal" envié notificaciones a los primeros viendo a quien es en una BBDD compartida con el registro en el GCM o algo así.
Las notificaciones las envías desde el servidor de la aplicación, no desde la "app principal". La app de hecho es que ni siquiera debería tener acceso directo a la base de datos por cuestiones de seguridad entre otras.

Modificar los datos, añadir ejercicios, etc. lo puedes hacer con una app, con una interfaz web o con cualquier cosa que sepa comunicarse con el servidor (yo haría la interfaz de edición web en vez de app, obligar a escribir ejercicios en un móvil es un rollete).

El servidor será el que notifique a quien tenga que notificar extrayendo los identificadores de la base de datos.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
  #5  
Viejo 27/10/16, 10:58:55
Array

[xs_avatar]
garciam202 garciam202 no está en línea
Miembro del foro
 
Fecha de registro: may 2012
Mensajes: 58
Tu operador: Movistar

 Cita: Originalmente Escrito por mocelet Ver Mensaje
Las notificaciones las envías desde el servidor de la aplicación, no desde la "app principal". La app de hecho es que ni siquiera debería tener acceso directo a la base de datos por cuestiones de seguridad entre otras.

Modificar los datos, añadir ejercicios, etc. lo puedes hacer con una app, con una interfaz web o con cualquier cosa que sepa comunicarse con el servidor (yo haría la interfaz de edición web en vez de app, obligar a escribir ejercicios en un móvil es un rollete).

El servidor será el que notifique a quien tenga que notificar extrayendo los identificadores de la base de datos.
Es una aplicación para tablet. Los ejercicios no requerirían de mucha escritura.

Los identificadores a los que debe comunicar el servidor deben estar previamente registrados desde la app no?

Entonces entiendo que si sería posible mi propuesta si ambas apps, tanto la "principal" como el "visor" comparten servidor no?

Perdon sino te he entendido bien.
Responder Con Cita
  #6  
Viejo 27/10/16, 12:05:23
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,202
Tu operador: -

Correcto, cuando la app se registra en el servicio de notificaciones recibe un identificador y ese identificador se lo pasas al servidor para que lo guarde en la base de datos y pueda recuperarlo cuando necesite enviarle una notificación a ese usuario.

Sobre tener apps principal y visor siempre puedes tener la misma donde las funciones de edición solo estén disponibles para usuarios autenticados con el rol de profesor o similar. Eso ya depende de lo que sea más fácil para ti y para los usuarios.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
  #7  
Viejo 27/10/16, 13:10:44
Array

[xs_avatar]
garciam202 garciam202 no está en línea
Miembro del foro
 
Fecha de registro: may 2012
Mensajes: 58
Tu operador: Movistar

 Cita: Originalmente Escrito por mocelet Ver Mensaje
Correcto, cuando la app se registra en el servicio de notificaciones recibe un identificador y ese identificador se lo pasas al servidor para que lo guarde en la base de datos y pueda recuperarlo cuando necesite enviarle una notificación a ese usuario.

Sobre tener apps principal y visor siempre puedes tener la misma donde las funciones de edición solo estén disponibles para usuarios autenticados con el rol de profesor o similar. Eso ya depende de lo que sea más fácil para ti y para los usuarios.
Había pensado también en esa opción de distinguir en función del rol. El problema es que debería capar bastante funcionalidad, aunque no lo descarto. En principio la opción que más me atraía en caso de ser viable es la de dos apps aunque no se si es muy elegante o la opción que tu me propones es mejor.

Tu entonces me recomendarías el tema roles no?

Gracias por tu ayuda.
Responder Con Cita
  #8  
Viejo 27/10/16, 13:31:12
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,202
Tu operador: -

Desde la ignorancia del contexto de la app, entiendo que si hay ejercicios habrá alumnos que estarán autenticados en el sistema. Y docentes que serán lo que propongan los ejercicios o incluso los corrijan, que también tendrán que estar autenticados incluso si tienes una app separada para editar (¿no va a poder editar cualquiera que se baje la app de edición, no?)

Tener roles y permisos parece lo más natural, pero vamos, que ya depende de los detalles de lo que estés haciendo. Si es matar moscas a cañonazos igual no compensa.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
  #9  
Viejo 27/10/16, 13:38:47
Array

[xs_avatar]
garciam202 garciam202 no está en línea
Miembro del foro
 
Fecha de registro: may 2012
Mensajes: 58
Tu operador: Movistar

 Cita: Originalmente Escrito por mocelet Ver Mensaje
Desde la ignorancia del contexto de la app, entiendo que si hay ejercicios habrá alumnos que estarán autenticados en el sistema. Y docentes que serán lo que propongan los ejercicios o incluso los corrijan, que también tendrán que estar autenticados incluso si tienes una app separada para editar (¿no va a poder editar cualquiera que se baje la app de edición, no?)

Tener roles y permisos parece lo más natural, pero vamos, que ya depende de los detalles de lo que estés haciendo. Si es matar moscas a cañonazos igual no compensa.
En otro contexto pero si es lo que comentas. Te situó un poco:

Habrá un entrenador que diseñe ejercicios y unos jugadores que deben recibirlos y solo poder visualizarlos con todo su contenido de una determinada forma.

Imagino que lo de los roles encaja mejor aquí no?

Los jugadores se registrarían con alguna condición de manera que aparecerían en la app como eso, jugadores y el entrenador tendría todos los permisos. No?
Responder Con Cita
  #10  
Viejo 27/10/16, 13:52:02
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,202
Tu operador: -

Encaja totalmente
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
  #11  
Viejo 27/10/16, 14:43:04
Array

[xs_avatar]
garciam202 garciam202 no está en línea
Miembro del foro
 
Fecha de registro: may 2012
Mensajes: 58
Tu operador: Movistar

 Cita: Originalmente Escrito por mocelet Ver Mensaje
Encaja totalmente
Gracias por tu ayuda.

Una última duda (espero jaja) y no te molesto más.

Yo como entrenador, solo querría que mis ejercicios se enviasen a mis jugadores y no a todos los que se registren en la app con rol jugador.
Para esto requeriría un registro especial para que el GCM supiese a quien enviárselo?
Responder Con Cita
  #12  
Viejo 27/10/16, 15:03:29
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,202
Tu operador: -

Tienes que autenticar a tus usuarios (jugadores) y en la base de datos guardar qué identificador de GCM/FCM le corresponde a cada usuario.

Al GCM le da igual a quién avises, cuando tengas que notificar tendrás que darle una ristra de identificadores.

El registro es igual, lo que sí es importante es que tengas guardado a quién pertenece cada identificador para que las cosas lleguen a quien tiene que llegar.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
  #13  
Viejo 27/10/16, 15:48:12
Array

[xs_avatar]
garciam202 garciam202 no está en línea
Miembro del foro
 
Fecha de registro: may 2012
Mensajes: 58
Tu operador: Movistar

 Cita: Originalmente Escrito por mocelet Ver Mensaje
Tienes que autenticar a tus usuarios (jugadores) y en la base de datos guardar qué identificador de GCM/FCM le corresponde a cada usuario.

Al GCM le da igual a quién avises, cuando tengas que notificar tendrás que darle una ristra de identificadores.

El registro es igual, lo que sí es importante es que tengas guardado a quién pertenece cada identificador para que las cosas lleguen a quien tiene que llegar.
Muchísimas gracias. Me ha quedado todo clarisimo. De momento esto es todo.
Responder Con Cita
  #14  
Viejo 27/10/16, 15:56:14
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
 Cita: Originalmente Escrito por mocelet Ver Mensaje
Tienes que autenticar a tus usuarios (jugadores) y en la base de datos guardar qué identificador de GCM/FCM le corresponde a cada usuario.

Al GCM le da igual a quién avises, cuando tengas que notificar tendrás que darle una ristra de identificadores.

El registro es igual, lo que sí es importante es que tengas guardado a quién pertenece cada identificador para que las cosas lleguen a quien tiene que llegar.
Una de las novedades de FCM es crear "listas de notificación", envías una notificación a una lista y automáticamente notifica a todos los que están suscritos a esa lista. Quizás para este caso puede ser interesante.
Responder Con Cita
  #15  
Viejo 28/10/16, 00:07:18
Array

[xs_avatar]
Dexafree Dexafree no está en línea
Mr. FAQMan
· Votos compra/venta: (1)
 
Fecha de registro: dic 2008
Mensajes: 8,021
Modelo de smartphone: Samsung Galaxy S i9000 + Galaxy Tab 10.1 WiFi
Tu operador: Movistar
 Cita: Originalmente Escrito por kriogeN Ver Mensaje
Una de las novedades de FCM es crear "listas de notificación", envías una notificación a una lista y automáticamente notifica a todos los que están suscritos a esa lista.
En la traducción a español que han hecho desde Firebase creo que lo han llamado "Temas", pero sigues necesitando un servidor que lance las notificaciones a ese tema (o manualmente).
No se cuán escalable será (ni cuantos te permitirán en el plan gratuito), pero la verdad es que suena a caso de uso bastante a tener en cuenta para el caso que comenta el compañero (no deja de ser un select con joins de las tablas de usuarios, pero si la propia plataforma te lo da hecho, mejor que mejor).
Responder Con Cita
  #16  
Viejo 28/10/16, 12:11:24
Array

[xs_avatar]
garciam202 garciam202 no está en línea
Miembro del foro
 
Fecha de registro: may 2012
Mensajes: 58
Tu operador: Movistar

Me apunto vuestro comentario.

En la app yo tendría guardados unos usuarios que serían los jugadores que luego se registrarían en ela GCM para recibir las notificaciones. Con lo cual solo habría que enviar las notificaciones a los que yo tengo almacenados.

Lo de la lista que comentáis quizá me facilite tener que hacer ese "join" entre mis jugadores almacenados y los registrados en el GCM no?

Última edición por garciam202 Día 28/10/16 a las 12:14:44.
Responder Con Cita
  #17  
Viejo 01/11/16, 19:24:29
Array

[xs_avatar]
garciam202 garciam202 no está en línea
Miembro del foro
 
Fecha de registro: may 2012
Mensajes: 58
Tu operador: Movistar

 Cita: Originalmente Escrito por mocelet Ver Mensaje
Tienes que autenticar a tus usuarios (jugadores) y en la base de datos guardar qué identificador de GCM/FCM le corresponde a cada usuario.

Al GCM le da igual a quién avises, cuando tengas que notificar tendrás que darle una ristra de identificadores.

El registro es igual, lo que sí es importante es que tengas guardado a quién pertenece cada identificador para que las cosas lleguen a quien tiene que llegar.
Entiendo.

El GCM aparte de distribuir la información y enviar notificaciones a quien lo requiere, podría indicarle que a su vez actualizase un calendario "interno" en la aplicación?

El entrenador daría de alta un entrenamiento y esta notificación se enviaría a todos los jugadores registrados en el GCM que pertenezcan a la plantilla y ademas su calendario se actualizara con el entrenamiento dado de alta por el entrenador y podrían ver su contenido. El GCM seria capaz de realizar esa acción o solo permite notificar pero no actualizar información dentro de la app?
Responder Con Cita
  #18  
Viejo 01/11/16, 19:37:50
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,202
Tu operador: -

GCM es solo para notificar algo a un usuario de la app, no es una base de datos ni guarda nada.

El escenario típico es que tengas un servidor con su base de datos MySQL o similar y ahí guardes los eventos, entrenamientos o lo que sea.

El entrenador sube los eventos y los usuarios los consultan, y residen en la base de datos.

GCM solo te ayudaría a notificar de novedades a los usuarios para que la app se conecte al servidor y se baje los ejercicios nuevos o simplemente decirle al usuario que hay ejercicios nuevos y bajarlos cuando se abra la app.

Si no necesitas un aviso instantáneo te puedes ahorrar usar GCM y que la app se conecte al servidor al abrirla para ver si hay datos nuevos, igual que si entraras a una web para ver si hay novedades. Ya depende del escenario.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
  #19  
Viejo 01/11/16, 19:40:08
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
 Cita: Originalmente Escrito por garciam202 Ver Mensaje
Entiendo.

El GCM aparte de distribuir la información y enviar notificaciones a quien lo requiere, podría indicarle que a su vez actualizase un calendario "interno" en la aplicación?

El entrenador daría de alta un entrenamiento y esta notificación se enviaría a todos los jugadores registrados en el GCM que pertenezcan a la plantilla y ademas su calendario se actualizara con el entrenamiento dado de alta por el entrenador y podrían ver su contenido. El GCM seria capaz de realizar esa acción o solo permite notificar pero no actualizar información dentro de la app?
El GCM por si mismo no hace nada, simplemente envía información al móvil, con un tamaño máximo de 4 kbs. Ni siquiera muestra la notificación por si mismo (cosa que iOS si hace, pero en contrapartida no puedes ejecutar servicios en segundo plano hasta que no inicias la app mediante la notificación)

Cuando el móvil recibe esa información se despierta y ejecuta un servicio, ese servicio (que programas tú) es el encargado de leer la información y hacer lo que te de la gana, el 99% de las veces crear la notificación y mostrarla.

Así que básicamente, si se puede, si la información cabe en 4 kbs. Y si no cabe, siempre puedes simplemente notificar al móvil para que lea del servidor el entrenamiento y se actualice. No olvides que si el trabajo va a ser costoso tendrás que iniciar un WakeLock y cerrarlo al terminar.

EDIT: Se adelantó mocelet.
Responder Con Cita


  #20  
Viejo 01/11/16, 20:22:10
Array

[xs_avatar]
garciam202 garciam202 no está en línea
Miembro del foro
 
Fecha de registro: may 2012
Mensajes: 58
Tu operador: Movistar

 Cita: Originalmente Escrito por mocelet Ver Mensaje
GCM es solo para notificar algo a un usuario de la app, no es una base de datos ni guarda nada.

El escenario típico es que tengas un servidor con su base de datos MySQL o similar y ahí guardes los eventos, entrenamientos o lo que sea.

El entrenador sube los eventos y los usuarios los consultan, y residen en la base de datos.

GCM solo te ayudaría a notificar de novedades a los usuarios para que la app se conecte al servidor y se baje los ejercicios nuevos o simplemente decirle al usuario que hay ejercicios nuevos y bajarlos cuando se abra la app.

Si no necesitas un aviso instantáneo te puedes ahorrar usar GCM y que la app se conecte al servidor al abrirla para ver si hay datos nuevos, igual que si entraras a una web para ver si hay novedades. Ya depende del escenario.
El aviso lo necesito.

En resumen. Tengo un servidor con mi base de datos MySQL que almacena los entrenamientos que da de alta el entrenador. Una vez dado de alta se envía la notificación a los jugadores mediante GCM indicando que existe una modificación en la app. El jugador accede a la app y esta se comunica con el servidor donde tengo almacenados los entrenamientos y en función de eso actualiza su calendario "reconstruyendo" la información necesaria.
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 05:50:56 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /