Spanish Utilizar Google Play para actualizar programa de empresa

Espinosa4

Active Member
Licensed User
Longtime User
Hola a todos,

Estoy realizando una aplicación para mi trabajo. El programa lo dejo en Dropbox y la gente se lo baja si quiere y se lo instala. El tema es el siguiente... ¿Sería posible usar Google Play pagando lo que corresponda como plataforma de actualizaciones y demás pero sólo mis compañeros y yo podemos acceder a ella? Lo digo porque un particular que vea la aplicación no tiene mucho sentido.

Un saludo
Y gracias
 

Heppy

Active Member
Licensed User
Longtime User
Que yo sepa, no puedes elegir usuarios. Programa usuarios y contraseñas en tu aplicación y solucionado.
Solo puedes elegir los paises.
Se pagan 25 euros (creo recordar) para poder empezar a subir APK.
Lo de las actualizaciones va muy bien, te dicen que se cargará en unas horas y pasados unos minutos ya está la nueva versión disponible.
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola

Google Play es una plataforma abierta a todos los usuarios, dudo mucho que aun pagando quieran restringir el bajarse un programa ya que rompe con la filosofia de ellos. Puedes preguntarselo a ellos directamente y te sacaran de dudas.

No entiendo que problema seria que cualquiera pudiera bajarse esa aplicación, si no les vale de nada creo que no te afectará y tu tendras un medio que te hace la distribución y la actualización de tu programa gratis ;).

pero sólo mis compañeros y yo podemos acceder a ella
No se si quieres decir con esto si el acceso al control de las actualizaciones lo quieres hacer tu y tus compañeros o es a la aplicación. En el caso que sea para el acceso a las actualizaciones , entras con mail y cotraseña, por lo tanto no tendrias ese problema, puedes ver como se sube una aplicacion al Google Play en un post que conteste a Desof:
http://www.b4x.com/android/forum/threads/ayuda-en-español-para-registrarme-en-google-play.30097/

Tambien tienes otras formas de restringir o de actualizar tu aplicativo:

1) Pon una contraseña que la pases solo a los usuarios que TU quieras, y si me apuras, cuando te hagan esa petición, que puede ser automatica desde tu programa enviando el id y pidiendo el email de donde quiere que se envie la contraseña, lee y envia un id del dispositivo, o el IMEI, y crea esa contraseña partiendo de ese dato. Puedes ver estos dos post:

http://www.b4x.com/android/forum/threads/leer-el-imei-de-un-móvil.36782/
http://www.b4x.com/android/forum/th...ificador-único-de-un-dispositivo-móvil.36910/

2) Sigue utilizando Dropbox y envia un mensaje Push para decir que hay una versión nueva, lo que no se, es si Google te permitirá hacerlo si la aplicación no está en el Google Play, es cuestion de probar.
http://www.b4x.com/android/forum/th...ion-gcm-framework-and-tutorial.19226/#content

3) Sigue utilizando Dropbox, y cuando quieras actualizar, envia un email al mismo email que enviaste la contraseña.

Saludos
 

Espinosa4

Active Member
Licensed User
Longtime User
Gracias por vuestras respuestas.
El tema es que hay datos privados que no quiero compartir con el público aunque igual puedo usar los servicios de Google y la base de datos la cuelgo por otro lado.

Saludos
 
D

Deleted member 30048

Guest
Creo recordar que si la subes como beta puedes elegir la gente que la puede descargar. Súbelo como beta aunque no sea y listo.

Por cierto, acabo de subir a google play el juego llamado memorama, si lo quereis descargar visitad la sección "Share Your Creations" ;-).
 

Espinosa4

Active Member
Licensed User
Longtime User
Gracias cbc551 por tu ayuda!
Le pego un vistazo a eso que dices.

Saludos

Por cierto, me instalé tu juego memorama y está muy bien. Enhorabuena!
 

IdasI4A

Active Member
Licensed User
Longtime User
Hola, yo lo que hago es subir a un servidor propio el apk. Cuando entro en la app, le pido al servidor el número de la última apk si es mayor que el tengo, me bajo el apk y lo instalo con
B4X:
     Dim iIntent As Intent

     iIntent.Initialize(iIntent.ACTION_VIEW,"file://" & Fichero) ' "file:///sdcard/PruebaActualiza.apk")
     iIntent.SetType("application/vnd.android.package-archive")
     StartActivity(iIntent)
No sé si es muy correcto, pero a mi me fuciona.
 

jsanchezc

Member
Licensed User
Longtime User
También puedes enviar el APK por email,
en el móvil activas las opciones de desarrollo,
aceptar origenes desconocidos y al abrir el email
te pedirá permiso para instalar la App.
 

Espinosa4

Active Member
Licensed User
Longtime User
Muchas gracias jsanchezc!

Interesante opción. Probaré a ver. El problema es que la aplicación ocupa 35 megas y quizás algunos correos no soporten ese tamaño de email.

Saludos
 

Octavio Diaz

Member
Licensed User
Longtime User
Hola, yo lo que hago es subir a un servidor propio el apk. Cuando entro en la app, le pido al servidor el número de la última apk si es mayor que el tengo, me bajo el apk y lo instalo con
B4X:
     Dim iIntent As Intent

     iIntent.Initialize(iIntent.ACTION_VIEW,"file://" & Fichero) ' "file:///sdcard/PruebaActualiza.apk")
     iIntent.SetType("application/vnd.android.package-archive")
     StartActivity(iIntent)
No sé si es muy correcto, pero a mi me fuciona.

Hola IdasI4A, tienes mas informacion de esto que realizas, no comprendo aun como controlas la version de la apk?, es suficiente con el codigo que escribes arriba para que el usuario obtenga un mensaje y baje en ese momento la actualizacion de la apk? gracias !!!
 

IdasI4A

Active Member
Licensed User
Longtime User
Cada vez que lanzo una nueva version cambio en #Region Module Attributes el valor de #VersionCode: 1
El apk lo pongo en mi servidor renombradolo a MiPrograma_n.txt pues si lo dejaba con .apk me daba problemas, una vez que lo tenga en el android le cambio la extensión.

En Activity_Create llamo a la función: chkVersion. Lo que hace es llamar a un servicio en mi servidor para saber que version esta en el servidor. Cuando le responde el servidor si la version del servidor en mayor que la que tengo progento al usuario que hay una nueva version y si la quiere actualizar, si eso me la bajo y a continuación la instalación.

B4X:
#Region Actualizar
Sub chkVersion
   Dim miJob As HttpJob
   Dim s As String
   Dim pM As PackageManager
   Dim Version As Int
   
   Version=pM.GetVersionCode("nombre del paquete") ' lo ponemos en Project->Package name 
   lblVersion.Text="Version " & Version
   ' Borro si existen MiPrograma.apk y MiPrograma.txt
   If File.Exists(File.DirRootExternal,"MiPrograma_" & Version & ".apk") Then
     File.Delete(File.DirRootExternal,"MiPrograma_" & Version & ".apk")
   End If
   If File.Exists(File.DirRootExternal,"MiPrograma_" & Version & ".txt") Then
     File.Delete(File.DirRootExternal,"MiPrograma_" & Version & ".txt")
   End If
   
   miJob.Initialize("Version",Me)
   miJob.PostString(miApp.ServidorCGI,Array As String("Accion","VERSION")) 'Llamo al cgi con el número de version que tengo
End Sub

Sub JobDone(Job As HttpJob)
   Dim s As String ',SQLstr,Registros(), Campos() As String
   
   If Job.JobName="Version" Then
     s=Job.GetString2("ISO-8859-1")
     sbVersion(s)
   Else If Job.JobName="Actualiza" Then
     Dim Fichero As String     
     Dim iIntent As Intent
     Fichero=Job.Fichero.Replace(".txt",".apk") ' lo bajo con extension txt pues con apk no me lo dejaba bajar
     File.Copy(Job.FicheroCarpeta,Job.Fichero,Job.FicheroCarpeta,Fichero)
     Fichero=File.Combine(Job.FicheroCarpeta,Fichero)
     iIntent.Initialize(iIntent.ACTION_VIEW,"file://" & Fichero) 
     iIntent.SetType("application/vnd.android.package-archive")
     StartActivity(iIntent)     
     Return
   End If
   Job.Release
End Sub

Sub sbVersion(s As String)
   Dim miJob As HttpJob
   Dim Pm As PackageManager
   Dim Fichero As String
   Dim VersionWeb, VersionActual, I As Int
   
   If s.SubString2(0,2)<>"OK" Then Return ' si todo va bien devuelve OKn donde n es el número de version que hay en el servidor
   
   Try
     VersionWeb=s.SubString(2)
   Catch
     VersionWeb=0
   End Try
   
   VersionActual=Pm.GetVersionCode("nombre del paquete")
   If VersionWeb<=VersionActual Then
     Log("No actualizo version Actual " & VersionActual & " VersionWeb " & VersionWeb)
     Return
   End If
   Log("Actualizo version Actual " & VersionActual & " VersionWeb " & VersionWeb)
   
   I=Msgbox2("Hay una nueva versión de la app" & CRLF & "¿Desea actulizarla?","Actualizacion","Sí","","No",Null)
   If I<>DialogResponse.POSITIVE Then Return
       
   ProgressDialogShow("Actualizando...") ' me bajo la nueva versión

   miJob.Initialize("Actualiza" ,Me)
   miJob.Temporizador=False ' Activa un temporizador cada segundo para ver lo ue se va bajando. Util para grandes ficheros.

   Fichero="Miprograma_" & VersionWeb & ".txt"
   miJob.Fichero=Fichero 'Nombre del fichero en el android
   miJob.FicheroCarpeta=File.DirRootExternal 'Carpeta para dejar elfichero en el android
   miJob.Download("http://www.miservidor.es/cgi-bin/Actualizaciones/" & Fichero) ' ruta del fichero en internet 
   
End Sub

#End Region

Espero que te sirva.
 
Top