Home Menu

Menu



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 14/10/15, 16:11:10
Avatar de gonza28
gonza28 gonza28 no está en línea
Desarrollador
Mensajes: 4,191
 
Fecha de registro: feb 2012
Localización: INTERESA?
Mensajes: 4,191
Modelo de smartphone: Samsung Galaxy Note 4
Versión de ROM: Android Lollipop 5.1.1
Tu operador: Personal
Mencionado: 6 comentarios
Tagged: 0 hilos
Lanzar una actividad cada vez que cambia el version code

Hola.
Podrian darme una mano?
Estoy necesitando poner un mini tutorial a una app. Algo instructivo debido a que no siempre se trata de gente jovenes dominantes de la tecnologia. Tambien hay gente mayor.

Pero encontré una libreria que me gustó mucho: appIntro.
Es algo como Tapatalk, si lguien tiene tapatalk se dará cuenta que cada vez que se actualiza, la abres, pasas por un mini tuto con una actividad y un par de fragmentos. Con la libreria ya lo tengo todo.
Pero necesito lanzar esta actividad cada vez que la app se actualiza o como ultimo recurso, lanzarla por unica vez, la primera vez que se abre la app.

Ojalá alguien sepa como hacerlo.

Muchas gracias. Saludos.

Última edición por gonza28 Día 14/10/15 a las 22:55:43
Responder Con Cita


  #2  
Viejo 14/10/15, 18:27:06
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
Yo tenía una app que también tenía tutorial inicial, lo que hacía era almacenar un booleano en una SharedPreference con el nombre "vistoTutorial".

Si por alguna razón ese tutorial cambiaba en alguna versión posterior de la app (a lo mejor pasaban 2 o 3 versiones sin tenerlo que cambiar pero en la 4ª aparecía una opción nueva que si que era suficientemente novedosa como para explicarla) entonces modificaba el nombre a "vistoTutorial2".

Luego además ya al final rizaba el rizo, y es que los Fragments involucrados en una versión ya vista no los añadía al ViewPager (lo hacía con un ViewPager).
Responder Con Cita
Gracias de parte de:
  #3  
Viejo 14/10/15, 21:30:02
Avatar de gonza28
gonza28 gonza28 no está en línea
Desarrollador
Mensajes: 4,191
 
Fecha de registro: feb 2012
Localización: INTERESA?
Mensajes: 4,191
Modelo de smartphone: Samsung Galaxy Note 4
Versión de ROM: Android Lollipop 5.1.1
Tu operador: Personal
Mencionado: 6 comentarios
Tagged: 0 hilos
Cita:
Originalmente Escrito por kriogeN Ver Mensaje
Yo tenía una app que también tenía tutorial inicial, lo que hacía era almacenar un booleano en una SharedPreference con el nombre "vistoTutorial".

Si por alguna razón ese tutorial cambiaba en alguna versión posterior de la app (a lo mejor pasaban 2 o 3 versiones sin tenerlo que cambiar pero en la 4ª aparecía una opción nueva que si que era suficientemente novedosa como para explicarla) entonces modificaba el nombre a "vistoTutorial2".

Luego además ya al final rizaba el rizo, y es que los Fragments involucrados en una versión ya vista no los añadía al ViewPager (lo hacía con un ViewPager).
Ya tengo la actividad y los fragmentos funcionando. Si lanzas la actividad desde un botón, todo funciona perfectamente.

Pero lo que necesito es llamar a esa actividad si el versión code cambia. Y llamarla por única vez. Hasta que el versión code vuelva a cambiar.
O de otra manera cualquiera.
Si ves algo parecido por ahí, hazme saber por favor.


Enviado desde mi SM-N910U mediante Tapatalk
Responder Con Cita
  #4  
Viejo 14/10/15, 22:15:52
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
El Version Code se obtiene así:

getPackageManager().getPackageInfo(context.getPack ageName(), 0).versionCode

A partir de ahí, es lo mismo que te he dicho antes pero almacenando el Version Code en una SharedPreference, si es distinto del que tenías almacenado antes lanzas la Activity.
Responder Con Cita
Gracias de parte de:
  #5  
Viejo 14/10/15, 22:53:54
Avatar de gonza28
gonza28 gonza28 no está en línea
Desarrollador
Mensajes: 4,191
 
Fecha de registro: feb 2012
Localización: INTERESA?
Mensajes: 4,191
Modelo de smartphone: Samsung Galaxy Note 4
Versión de ROM: Android Lollipop 5.1.1
Tu operador: Personal
Mencionado: 6 comentarios
Tagged: 0 hilos
Lo tengo. Con tu ultimo mensaje, recordé un viejo proyecto de tematizacion cuando creabamos temas para Nova Launcher. alli tenia algo. este tema queda marcado como solucionado para alguno que tenga el mismo problema.

En la actividad principal o en mi caso en la clase splash: Bienvenido.class

[PHP]public class MainActivity extends AppCompatActivity {


private SharedPreferences prefs;



@override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);


prefs = getSharedPreferences(getResources().getString(R.st ring.app_name), 0);
checkBuild();

...............


}
public void checkBuild() {
int buildNum = prefs.getInt("Build Number", 1);
int currentVersion = 0;

try {
currentVersion = getPackageManager()
.getPackageInfo(getPackageName(), 0).versionCode;
}
catch (NameNotFoundException e) {
e.printStackTrace();
}
if(currentVersion > buildNum) {
Intent intent = new Intent(MainActivity.this, Prueba.class);
startActivity(intent);
finish();
SharedPreferences.Editor editor = prefs.edit();
editor.putInt("Build Number", currentVersion);
editor.commit();
}
}

.............[/PHP]

Cada vez que el versionCode cambia por una actualizacion, se lanzará la actividad, o un dialogo o lo que sea.

A modo de prueba, basta con lanzar una Snackbar

[PHP]public void checkBuild() {
int buildNum = prefs.getInt("Build Number", 1);
int currentVersion = 0;

try {
currentVersion = getPackageManager()
.getPackageInfo(getPackageName(), 0).versionCode;
}
catch (NameNotFoundException e) {
e.printStackTrace();
}
if(currentVersion > buildNum) {
Snackbar.make(
findViewById(R.id.coordinatorLayout), R.string.cargando_datos,
Snackbar.LENGTH_LONG)
.show();
SharedPreferences.Editor editor = prefs.edit();
editor.putInt("Build Number", currentVersion);
editor.commit();
}
}

.............[/PHP]

Gracias y saludos.
Responder Con Cita
  #6  
Viejo 15/10/15, 00:06:17
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
Sólo un apunte, el valor por defecto de la SharedPreference debería ser 0, y no 1. Porque si no en la primera versión de tu app no saldrá el tutorial, lo hará a partir de la segunda versión.
Responder Con Cita
Gracias de parte de:
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: 22:31:13 (GMT +1)

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