Autore Topic: Schermata richiesta consenso utilizzo applicazione  (Letto 1169 volte)

Offline Agosteeno

  • Utente normale
  • ***
  • Post: 152
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson - Xperia Neo
  • Sistema operativo:
    Ubuntu 11.04
Schermata richiesta consenso utilizzo applicazione
« il: 30 Agosto 2012, 10:07:47 CEST »
0
Ciao a tutti, in una mia app devo inserire una schermata (pensavo una finestra di dialogo in realta') che chiede all'utente il consenso ad utilizzare l'app stessa. Gli fornisce cioe' alcune informazioni che deve accettare se vuole utilizzare l'applicazione. Siccome non ho troppa esperienza pensavo di fare appunto un Dialog con il testo in questione, che comanda una variabile condivisa da tutta la app (tramite un singleton). Se l'utente accetta la setto a true e dunque passo alla schermata iniziale, altrimenti la setto a false e chiudo la app.
In fase di "partenza" della app stessa controllo questa variabile, se e' true vado direttamente alla schermata iniziale, altrimenti restituisco un errore all'utente. Ci sara' naturalmente un'altra variabile per gestire il fatto che l'operazione sia stata effettuata o meno.
La mia domanda e' questa: sapete se c'e' qualche strumento apposito per questa operazione, oppure se esiste un particolare standard che sarebbe opportuno seguire?
Risparmia l'acqua, bevi birra...

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:Schermata richiesta consenso utilizzo applicazione
« Risposta #1 il: 30 Agosto 2012, 10:15:40 CEST »
0
Cerca "EulaHelper android" su google e trovi il codice bello e pronto, ormai è uno standard! ;)

Offline Agosteeno

  • Utente normale
  • ***
  • Post: 152
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson - Xperia Neo
  • Sistema operativo:
    Ubuntu 11.04
Re:Schermata richiesta consenso utilizzo applicazione
« Risposta #2 il: 30 Agosto 2012, 12:03:27 CEST »
0
Grazie mille per l'aiuto. Ho avuto solo un problemino: se creo una classe Eula ho dei problemi con la creazione del dialog. In pratica nell'oncreate dell'activity chiamo il metodo statico della classe appena creata "hasAcceptedEula" e se questo e false mostro il dialog e successivamente faccio la start activity della prossima schermata. Il problema e' che il dialog lo mostra solo dopo che chiudo la schermata successiva. Ho risolto il problema spostando i metodi dalla classe creata all'activity stessa (dunque la startactivity la faccio nel codice del metodo showEula in base a quanto selezionato dall'utente. Questa soluzione, per quanto funzionante non mi piace molto, ma altrimenti non riesco ad ottenere quello che voglio.
Sono io che mi son perso qualcosa nel mezzo?
Risparmia l'acqua, bevi birra...

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:Schermata richiesta consenso utilizzo applicazione
« Risposta #3 il: 30 Agosto 2012, 12:13:24 CEST »
0
Posta il codice.

Offline Agosteeno

  • Utente normale
  • ***
  • Post: 152
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson - Xperia Neo
  • Sistema operativo:
    Ubuntu 11.04
Re:Schermata richiesta consenso utilizzo applicazione
« Risposta #4 il: 30 Agosto 2012, 12:59:13 CEST »
0
Il codice che ho cercato di fare in precedenza era questo (dove la classe Eula e' quella che dicevi tu, trovata tramite google):

Codice (Java): [Seleziona]
public class MyActivity extends Activity {
...
@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.main); 
                Log.d(Costanti.DEBUG, "MyActivity started");
               
        /**
         * Display the GPLv3 licence
         */

        if (!Eula.hasAcceptedEula(this)) {
            Eula.showEula(false, this);
        }
               
        Log.d(Costanti.DEBUG, "MyActivity: inizio");
        Intent i = new Intent(this.getApplicationContext(), HomeActivity.class);
        startActivity(i);
}

Solo che appunto esegue la startActivity prima di visualizzare il Dialog.
Risparmia l'acqua, bevi birra...

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:Schermata richiesta consenso utilizzo applicazione
« Risposta #5 il: 30 Agosto 2012, 13:53:49 CEST »
0
Ma il codice dell'eula va messo dentro HomeActivity, non devi creare una activity solo per l'eula.

Offline Agosteeno

  • Utente normale
  • ***
  • Post: 152
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson - Xperia Neo
  • Sistema operativo:
    Ubuntu 11.04
Re:Schermata richiesta consenso utilizzo applicazione
« Risposta #6 il: 30 Agosto 2012, 14:23:16 CEST »
0
Infatti e' quello che ho fatto alla fine. Pero' prima Eula era una classe che stava sotto un package util ma non estendeva activity. Era una classe normale. Ho fatto cosi' perche' avevo trovato degli esempi che facevano in questo modo, ma evidentemente mi sono perso qualcosa.
Risparmia l'acqua, bevi birra...

Offline MarcoDuff

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 1073
  • Respect: +202
    • Google+
    • marcoduff
    • Mostra profilo
    • MarcoDuff's Blog
  • Dispositivo Android:
    Samsung Galaxy Nexus
  • Play Store ID:
    MarcoDuff
  • Sistema operativo:
    Windows 7
Re:Schermata richiesta consenso utilizzo applicazione
« Risposta #7 il: 30 Agosto 2012, 14:27:25 CEST »
0
Secondo me Eula deve essere una classe normale e non una Activity! ;)

Offline Agosteeno

  • Utente normale
  • ***
  • Post: 152
  • Respect: +2
    • Mostra profilo
  • Dispositivo Android:
    Sony Ericsson - Xperia Neo
  • Sistema operativo:
    Ubuntu 11.04
Re:Schermata richiesta consenso utilizzo applicazione
« Risposta #8 il: 30 Agosto 2012, 14:29:29 CEST »
0
Infatti era quello che volevo fare, ma allora si presenta quel problema che dicevo.

Ora e' una cosa del genere
Codice (Java): [Seleziona]
...
        /**
         * Display the GPLv3 licence
         */

        if (!hasAcceptedEula(this)) {
            showEula(false, this);
        } else {
               
                Log.d(Costanti.DEBUG, "MyApplicationApp: inizio");
                intent = new Intent(this.getApplicationContext(), HomeActivity.class);
                startActivity(intent);
        }
       

dove i metodi "hasAcceptedEula" e "showEula" ora sono all'interno dell'activity iniziale e funziona correttamente.
Risparmia l'acqua, bevi birra...