Home Menu

Menu



Avisos

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


 
Herramientas
  #1  
Viejo 08/10/14, 17:18:52
Avatar de Guixe94
Guixe94 Guixe94 no está en línea
Desarrollador
Mensajes: 900
 
Fecha de registro: abr 2012
Localización: Barcelona, Catalunya
Mensajes: 900
Modelo de smartphone: HTC ONE y Galaxy Note 3
Versión de ROM: Ultima Orange Stock
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
Ejecutar acción al pasar x dias?

Hola,

Vengo de aqui --> http://www.htcmania.com/showthread.php?t=902277

Ya consegui que me funcionase, y ahora pues genero unos codigos que permiten a la gente provar la versión pro.. Hasta ahora pues pulsaba el boton "codigo" ponia el codigo etc y se activivava, entonces el boton "codigo" lo cambiaba por uno que se llama reset y me vuelve a la versión normal. es un boton del menu utilizo esto simplemente:

[PHP] public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_upgrade) {
launchRedeemFlow();
return true;
} else if (id == R.id.action_reset) {
Verifier.reset(this);
invalidateOptionsMenu();
setMessage();
return true;
}
return super.onOptionsItemSelected(item);
}[/PHP]

Bueno, hasta aqui esta todo ok, el problema viene ahora, claro si no pulsan el botón reset se quedan la versión pro pues.. toda la vida vamos xd..
Me gustaria saber como hacer para que por ejemplo a los 5 dias de ejecutar la accion de actualizar a la version pro (pongan el codigo) pues que se ejecute directamente la accion reset.

Alguna ayudita?

Tengo mas o menos una idea por lo que he mirado he creado esto asi:

[PHP]
public static void app_launched(Context mContext) {
SharedPreferences prefs = mContext.getSharedPreferences("apprater", 0);
if (prefs.getBoolean("dontshowagain", false)) {
return;
}

SharedPreferences.Editor editor = prefs.edit();

// Get date of first launch
Long date_firstLaunch = prefs.getLong("date_firstlaunch", 0);
if (date_firstLaunch == 0) {
date_firstLaunch = System.currentTimeMillis();
editor.putLong("date_firstlaunch", date_firstLaunch);
}

// Wait at least n days before opening
if (launch_count >= LAUNCHES_UNTIL_PROMPT) {
if (System.currentTimeMillis() >= date_firstLaunch +
(DAYS_UNTIL_PROMPT * 24 * 60 * 60 * 1000)) {
showRateDialog(mContext, editor);
}
}
editor.commit();
}[/PHP]

Pero no sabria como declarar eso en el oncreate.. alguien me puede ayudar? Merci
Responder Con Cita


  #2  
Viejo 08/10/14, 17:32:18
Avatar de Dexafree
Dexafree Dexafree no está en línea
Mr. FAQMan
Mensajes: 8,021
Compra y venta: (1)
 
Fecha de registro: dic 2008
Mensajes: 8,021
Modelo de smartphone: Samsung Galaxy S i9000 + Galaxy Tab 10.1 WiFi
Versión de ROM: Android 4.1.1 Jelly Bean
Versión de Radio: KF1
Tu operador: Movistar
Mencionado: 65 comentarios
Tagged: 2 hilos
No pienses en que se ejecute la acción pasados X dias, ya que a ti el momento en el que se realice te es indiferente, solo te importa que tras pasar 5 dias la aplicación vuelva a su estado normal

Puedes poner una comprobación al inicio de la aplicación para que compruebe si es premium (han pasado los 5 días, comprobando con el segundo código que has puesto) o no, la cual se lanzará a cada inicio (imagino que no requiere de red ni nada parecido, ya que según parece lo estás almacenando todo como SharedPreferences).
Responder Con Cita
  #3  
Viejo 08/10/14, 20:40:49
Avatar de Guixe94
Guixe94 Guixe94 no está en línea
Desarrollador
Mensajes: 900
 
Fecha de registro: abr 2012
Localización: Barcelona, Catalunya
Mensajes: 900
Modelo de smartphone: HTC ONE y Galaxy Note 3
Versión de ROM: Ultima Orange Stock
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por Dexafree Ver Mensaje
No pienses en que se ejecute la acción pasados X dias, ya que a ti el momento en el que se realice te es indiferente, solo te importa que tras pasar 5 dias la aplicación vuelva a su estado normal

Puedes poner una comprobación al inicio de la aplicación para que compruebe si es premium (han pasado los 5 días, comprobando con el segundo código que has puesto) o no, la cual se lanzará a cada inicio (imagino que no requiere de red ni nada parecido, ya que según parece lo estás almacenando todo como SharedPreferences).
El problema es que el premium esta administrador por google, por lo tanto yo al poner el codigo no hago que se vuelva premium si no que directamente le muestro la pantalla de premium y no la normal.. por eso me interesa que se haga al poner el codigo, ya que si no por ejemplo si uno compra el premium a los 5 dias se le quitaria no?

No se, nunca he tocado esto de los tiempos y me cuesta un poco pillarlo..
Responder Con Cita
  #4  
Viejo 08/10/14, 22:49:57
Avatar de Dexafree
Dexafree Dexafree no está en línea
Mr. FAQMan
Mensajes: 8,021
Compra y venta: (1)
 
Fecha de registro: dic 2008
Mensajes: 8,021
Modelo de smartphone: Samsung Galaxy S i9000 + Galaxy Tab 10.1 WiFi
Versión de ROM: Android 4.1.1 Jelly Bean
Versión de Radio: KF1
Tu operador: Movistar
Mencionado: 65 comentarios
Tagged: 2 hilos
Cita:
Originalmente Escrito por Guixe94 Ver Mensaje
El problema es que el premium esta administrador por google
Cada vez que quieres comprobar el premium tiras de la comprobacion con el servidor de Google?

Creo que ya se recomendo en otro post, puedes guardar algo que solo tu conozcas en la memoria del telefono, y que mediante eso puedas comprobar si el usuario es premium (ej: Una palabra que solo tu conozcas, el IMEI del terminal, lo cifras con una clave que tambien solo tu conozcas, y el contenido lo guardas en un archivo)

Haciendo eso podrías hacer la comprobación:
1.- Más rapido
2.- Aunque no haya conexión de red
Responder Con Cita
  #5  
Viejo 08/10/14, 22:51:39
Avatar de Guixe94
Guixe94 Guixe94 no está en línea
Desarrollador
Mensajes: 900
 
Fecha de registro: abr 2012
Localización: Barcelona, Catalunya
Mensajes: 900
Modelo de smartphone: HTC ONE y Galaxy Note 3
Versión de ROM: Ultima Orange Stock
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
Ya. Pero es que muchas de las cosas que utilizo en el premium necesitas conexion a internet ya que cargan datos externos.. por eso no lo hice asi al final..
Responder Con Cita
Respuesta

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


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 19:25:03 (GMT +1)

Cookies
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007