IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Session sous Android


Sujet :

Android

  1. #1
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 273
    Points : 150
    Points
    150
    Par défaut Session sous Android
    bonjour,

    j'ai développé un petit système de inscription/connexion sous android ( json php mysql ) avec comme option, un enregistrement des données tapés, dans une bbd sqlite ( pour ne pas avoir a retaper a chaque fois son identifiant et mot de passe )
    mais je voudrai maintenant faire a la place, que même si l'utilisateur quitte l'application, ( ou même la ferme complètement ) que l'application se connecte automatiquement dés l'ouverture de l'application ( sauf si il clique sur le bouton déconnexion ) ( je sais que c'est en rapport avec les threads, mais je rame un peu sur la manière avec laquelle je pourrai l’implémenter dans mon application )

    merci d'avance

  2. #2
    Membre averti Avatar de Neolex
    Homme Profil pro
    Recherche emploi Securité informatique
    Inscrit en
    Avril 2011
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Recherche emploi Securité informatique

    Informations forums :
    Inscription : Avril 2011
    Messages : 243
    Points : 333
    Points
    333
    Par défaut
    Tu peux faire ça avec les SharedPreference , j'ai fais un petit truc à toi de l'adapter .
    Mon code demande un mot de passe si aucun n'est dans les préférences , puis l'enregistre et se connecte lorsqu'on clique sur le bouton .
    La prochaine fois qu'on ouvrir l'application , l'activity SecondActivity se lancera direct avec le dernier password enregistré .
    J'aurais du mettre "login" au lieu de password , le mot est mal utilisé .
    Il ne te reste plus qu'a adapter ça à ton code et à créer la fonction de déconnexion
    voici le code :

    Password.java :
    Code JAVA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    public class Password extends Activity implements OnClickListener
    {
    	Button submitButton;
    	EditText passwordEditText;
    	public static final String PREFS_PRIVATE = "PREFS_PRIVATE";
    	public static final String KEY_PRIVATE = "KEY_PRIVATE";
    	public static final String PREFS_READ = "PREFS_READ";
    	public static final String KEY_READ = "KEY_READ";
    	public static final String PREFS_WRITE = "PREFS_WRITE";
    	public static final String KEY_WRITE = "KEY_WRITE";
    	public static final String PREFS_READ_WRITE = "PREFS_READ_WRITE";
    	public static final String KEY_READ_WRITE = "KEY_READ_WRITE";
     
    	// L'identifiant pour envoyer le password avec l'intent
    	public static final String PASSWORD = "ID_PASSWORD";
     
    	public void onCreate(Bundle savedInstanceState)
    	{
    	    super.onCreate(savedInstanceState);
    	    setContentView(R.layout.pass);
    	    // On recupere le bouton graĉe à son id
    	    Button submitButton = (Button) findViewById(R.id.submitButton);
    	    // ajout de la methode "onClick" lors d'un clique sur le bouton
    	    submitButton.setOnClickListener(this);
    	    // On recupere l'editext 
    	    EditText passwordEditText = (EditText) findViewById(R.id.passwordEditText);
     
    	    // On recupere les SharedPreference avec le nom "prefs_file" et le MODE_PRIVATE 
    	    // le mode private permet au fichier de n'être accéssible qu'à l'application qui l'a créé
    	    SharedPreferences prefs = this.getApplicationContext().getSharedPreferences("prefs_file",MODE_PRIVATE);
    	    // on récupere le password si il y en à un d'enregistré
    	    String password = prefs.getString("password","");
    	    // Si le password n'est pas vide ( "" ) on lance StartMain 
    	    if(!"".equals(password))
    	    {
    	             StartMain(password);
    	    }
     
    	}
    	// Methode lancée lors du clique sur le bouton "submitButton"
    	public void onClick(View v)
    	{ 
    		// On Récupere l'editText
    	    EditText passwordEditText = (EditText) findViewById(R.id.passwordEditText);
    	    // on recuperer le password dans l'editText
    	    String password = passwordEditText.getText().toString();
     
    	    // on ouvre les SharedPreference comme plus haut
    	    SharedPreferences prefs = this.getApplicationContext().getSharedPreferences("prefs_file",MODE_PRIVATE);
     
    	    // on ouvre un Editor pour pouvoir modifier ou ajouter des couples dans le SharedPreferences
    	     Editor edit = prefs.edit();
    	     // On ajoute la String password , avec l'identifiant "password"
    	     edit.putString("password",password);
    	     // on enregistre les changement 
    	     edit.commit();
    	     // Si le password n'est pas vide ( "" ) on lance StartMain
    	     if(!password.equals(""))
    	     {
    	    	 StartMain(password);
    	     }
     
    	}
     
    		// StartMain lance la "SecondActivity" grâce à un intent en lui envoyant le password utilisé
    		public void StartMain(String password)
    		{
    			// Creatin de l'intent pour lancer la "SecondActivity" depuis celle où l'on est "this"
    		     Intent intent = new Intent(this, SecondActivity.class);
    		     // on ajoute le password en extra avec l'identifiant PASSWORD crée plus haut
    		     // pour que la SecondActivity puisse connaitre avec quelle password elle a été lancée
    		     intent.putExtra(PASSWORD, password);
    		     // On lance l'activité avec l'intent
    		     startActivity(intent);
    		}
    }


    SecondActivity.java :
    Code JAVA : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    public class SecondActivity extends Activity {
     
    	Button bouton = null ;	
    	TextView textview = null ;
     
     
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.seconde);
     
    		// On recupere le textview a l'aide de son ID
    		textview = (TextView)findViewById(R.id.text);
    		// on récupere l'intent avec la quelle l'activité à été lancée
    		Intent i = getIntent();
    		// on recupere les extras dans un bundle
    		Bundle extras = i.getExtras();
     
    		// on récupere l'extra password avec l'identifiant déclaré dans la classe Password
    		String password = extras.getString(Password.PASSWORD);
    		// on affiche avec quel password l'activité à été lancée
    		textview.setText("Vous êtes connecté avec le password : " + password );
             }
     
    // Bouton de deconnexion que je te laisse trouver par toi même
    }


    Edit : je te laisse faire le bouton de déconnexion , avec ce que j'ai mis tu devrais savoir le faire , n'hésite pas à poser des questions si tu bloque

  3. #3
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 273
    Points : 150
    Points
    150
    Par défaut
    est ce que tu pourrai ajouter des commentaires a ton code

    merci

  4. #4
    Membre averti Avatar de Neolex
    Homme Profil pro
    Recherche emploi Securité informatique
    Inscrit en
    Avril 2011
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Recherche emploi Securité informatique

    Informations forums :
    Inscription : Avril 2011
    Messages : 243
    Points : 333
    Points
    333
    Par défaut
    Voilà j'ai édité mon post et y ai ajouté des commentaires , j’espère qu'ils t'aideront à comprendre .

  5. #5
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 273
    Points : 150
    Points
    150
    Par défaut
    j'ai testé ton code et il marche tres bien, merci beaucoup, je suis en train de l’implémenter dans mon application,
    mais par contre est ce que tu saurai comment faire pour que dès que l'utilisateur clique sur le bouton retour du terminal, que ça ne le redirige pas vers la premiere
    activité ( celle qui contient le editText )

    merci

  6. #6
    Membre averti Avatar de Neolex
    Homme Profil pro
    Recherche emploi Securité informatique
    Inscrit en
    Avril 2011
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Recherche emploi Securité informatique

    Informations forums :
    Inscription : Avril 2011
    Messages : 243
    Points : 333
    Points
    333
    Par défaut
    Tu voudrais qu'il se passe quoi à la place de retourner sur la première activité ?

  7. #7
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 273
    Points : 150
    Points
    150
    Par défaut
    que l'application se referme directement, de manière a ce que l'utilisateur puisse re-accéder a l'editText seulement après avoir cliqué sur le bouton de déconnexion

  8. #8
    Membre averti Avatar de Neolex
    Homme Profil pro
    Recherche emploi Securité informatique
    Inscrit en
    Avril 2011
    Messages
    243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Recherche emploi Securité informatique

    Informations forums :
    Inscription : Avril 2011
    Messages : 243
    Points : 333
    Points
    333
    Par défaut
    C'est ce que j'essayais de faire hier soir ( enfin cette nuit ) sans réussir , je continues de réfléchir là dessus et si je trouve une solution je la partage !
    Espérons que quelqu'un qui sait comment le faire tombe sur le sujet .

  9. #9
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 273
    Points : 150
    Points
    150
    Par défaut
    alors quand même, merci beaucoup pour le code que tu m'a fourni, j'ai pour le moment quelque difficultés a l’implémenter dans mon code, mais j'y travaille

  10. #10
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Points : 5 072
    Points
    5 072
    Par défaut
    Il faut jouer avec les cycles de vies des activités pour ça.

    Si ton cheminement est :
    A -> B
    et que tu désirs B -> "retour" -> rien.
    Il faut que tu kill A avec un finish(); une fois que tu as lancé B.

    Ce genre de chose n'est, par contre, pas recommandé, Android ayant une ergonomie particulière basée sur le bouton "retour".
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  11. #11
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 273
    Points : 150
    Points
    150
    Par défaut
    est ce que tu pourrai être plus clair concernant ta réponse

    merci

  12. #12
    Membre éclairé
    Avatar de LeBzul
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Décembre 2008
    Messages : 381
    Points : 832
    Points
    832
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    // StartMain lance la "SecondActivity" grâce à un intent en lui envoyant le password utilisé
    		public void StartMain(String password)
    		{
    			// Creatin de l'intent pour lancer la "SecondActivity" depuis celle où l'on est "this"
    		     Intent intent = new Intent(this, SecondActivity.class);
    		     // on ajoute le password en extra avec l'identifiant PASSWORD crée plus haut
    		     // pour que la SecondActivity puisse connaitre avec quelle password elle a été lancée
    		     intent.putExtra(PASSWORD, password);
    		     // On lance l'activité avec l'intent
    		     startActivity(intent);
    		}
    Il suffit d'ajouter un finish(); après le startActivity.
    Le finish va tuer ton activité en cours, sur la second activité lorsque tu vas faire retour, comme il n'auras plus d'activité dans la pile l'appli va quitté.
    "Quand la lune n'est pas là, la nuit mène une existence obscure"

  13. #13
    Membre habitué
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    273
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2013
    Messages : 273
    Points : 150
    Points
    150
    Par défaut
    je viens d'essayer et ça marche parfaitement

    merci

  14. #14
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 25
    Points : 26
    Points
    26
    Par défaut
    Bonjour,

    j'ai utilisé ce code et j'ai eu quelque erreurs. Le password renvoyé valait "null".
    J'ai juste fait quelques modifications et maintenant ça fonctionne.
    Si quelqu'un rencontre le même problème, voici ce que j'ai modifié :

    Dans l'activity principale, j'ai remplacé la ligne de déclaration de PASSWORD :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	// L'identifiant pour envoyer le password avec l'intent
    	public static final String PASSWORD = "ID_PASSWORD";
    Par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    	// L'identifiant pour envoyer le password avec l'intent
    	public static final String PASSWORD = "password";
    Et dans la SecondActivity j'ai mis cette ligne pour la récupération
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    password = extras.getString("password");
    Tout simplement. Et attention aussi de ne pas oublier de déclarer chaque activité que l'on crée dans le AndroidManifest.xml. C'est une erreur que l'on fait facilement lorsque l'on est débutant, moi même je n'y est pas échappé.
    Enfin, j'avais eu une erreur avec le OnClickListener, suffisait d'importer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    import android.view.View.OnClickListener;
    En espérant avoir aidé quelques-uns.
    En tout cas merci pour ton code, il fonctionne très bien.

  15. #15
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 25
    Points : 26
    Points
    26
    Par défaut
    Encore moi
    Voilà un code fonctionnel pour la déconnexion, à ajouter dans la seconde Activité après avoir créé un bouton "bouton_deconnexion".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    	  //Bouton activités
    	  final Button deconnexionButton = (Button) findViewById(R.id.bouton_deconnexion);
    	  deconnexionButton.setOnClickListener(new OnClickListener() {
     
    		  @Override
    		  public void onClick(View v) {
     
    				// Creation de l'intent pour lancer la "SecondActivity" depuis celle où l'on est "this" 
    		     	Intent i = new Intent(getApplicationContext(), Connexion.class);
     
    			    // on ouvre un Editor pour pouvoir modifier ou ajouter des couples dans le SharedPreferences
    			     Editor edit = prefs.edit();
     
    			     // On ajoute la String password , avec l'identifiant "password"
    			     edit.putString("login","");
     
    			     // On ajoute la String password , avec l'identifiant "password"
    			     edit.putString("password","");
     
    			     // on enregistre les changement 
    			     edit.commit();
     
    		     // On lance l'activité avec l'intent
    		     startActivity(i);
     
    	  		}
    	  	});

Discussions similaires

  1. Equivalent des sessions PHP sous Android
    Par verso61 dans le forum Android
    Réponses: 7
    Dernier message: 02/08/2012, 23h47
  2. Probléme d'ouverture de session sous Windows 2000 server
    Par Orameur dans le forum Windows XP
    Réponses: 1
    Dernier message: 25/02/2006, 19h15
  3. [navigateur]Problême de pertes de sessions sous IE (.js)
    Par Invité4 dans le forum Général JavaScript
    Réponses: 26
    Dernier message: 21/11/2005, 17h53
  4. [Servlet - JSP] bean session sous was
    Par piwai dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 08/08/2005, 10h00
  5. Problème de session sous Konqueror
    Par Escuzze dans le forum Applications et environnements graphiques
    Réponses: 4
    Dernier message: 06/07/2004, 11h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo